ĐỒ ÁN TỐT NGHIỆP ĐIỆN tử TÌM HIỂU VI ĐIỀU KHIỂN H8 RENESAS ỨNG DỤNG LẬP TRÌNH XE MCR BÁM LINE
NỘI DUNG ĐỒ ÁN
ĐỒ ÁN TỐT NGHIỆP
TÌM HIỂU VI ĐIỀU KHIỂN H8 RENESAS ỨNG DỤNG LẬP TRÌNH XE MCR BÁM LINE
Tên đề tài:
TÌM HIỂU VI ĐIỀU KHIỂN H8 RENESAS ỨNG DỤNG LẬP TRÌNH XE MCR BÁM LINE
Nhiệm vụ cụ thể:
- Tìm hiểu phần cứng của vi điều khiển H8 Renesas dòng H8/3048F-ONE.
- Tìm hiểu tập lệnh của vi điều khiển dòng H8/3048F-ONE.
- Nghiên cứu cấu tạo và cách vận hành xe MCR.
- Nghiên cứu và ứng dụng phần mềm biên dịch “High_Performance Embedded Workshop”. Sử dụng phần mềm nạp “CPUWrite”.
- Lập trình cho xe MCR bám line.
LỜI CẢM ƠN
Trong quá trình thực hiện đề tài, người thực hiện đã gặp rất nhiều khó khăn. Nhưng với sự hướng dẫn và giúp đỡ tận tình của giảng viên hướng dẫn, đề tài đã hoàn thành theo đúng thời gian quy định.
Qua đây, người thực hiện xin gởi lời cảm ơn chân thành đến Thầy Lê Tấn Cường, giảng viên bộ môn Cơ - Điện tử, khoa Cơ khí chế tạo máy, trường Đại học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh, người trực tiếp hướng dẫn và giúp đỡ cũng như tạo mọi điều kiện thuận lợi cho người thực hiện hoàn thành đề tài.
Bên cạnh cạnh đó, người thực hiện xin cảm ơn tất cả các quý thầy cô giảng viên của trường Đại học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh, đặc biệt là các giảng viên bộ môn Cơ - Điện tử, khoa Cơ khí chế tạo máy, đã trang bị cho người thực hiện kiến thức đại cương và chuyên ngành quý giá, là nền tảng để người thực hiện hoàn thành đề tài.
Ngoài ra, người thực hiện xin cảm ơn Câu lạc bộ Khoa Học Trẻ, trường Đại học Sư Phạm Kỹ Thuật TP. Hồ Chí Minh, đã hỗ trợ cho người thực hiện mô hình xe MCR cũng như giúp đỡ người thực hiện trong quá trình thực hiện đề tài.
Người thực hiện xin cảm ơn gia đình và bạn bè đã động viên và giúp đỡ trong suốt quá trình thực hiện đề tài.
TÓM TẮT ĐỒ ÁN
Mục tiêu của đề tài là tìm hiểu phần cứng và tập lệnh của dòng vi điều khiển H8/3048. Từ đó ứng dụng để viết chương trình điều khiển cho xe MCR bám line, sử dụng phần mềm High_Performance Embedded Workshop V.4.00 để soạn thảo và biên dịch chương trình. Sau khi biên dịch, sử dụng phần mềm CPUWrite để nạp chương trình cho vi điều khiển.
Nội dung đề tài bao gồm năm chương:
- Chương 1: Giới thiệu vi điều khiển H8/3048F-ONE.
- Chương 2: Giới thiệu tập lệnh của vi điều khiển H8/3048F-ONE.
- Chương 3: Mô hình xe MCR.
- Chương 4: Giới thiệu các phần mềm sử dụng trong đề tài.
- Chương 5: Lập trình cho xe.
ABSTRACT
- The aim of this final year project examines hardware and instruction deck of microcomputer H8/3048 series, and one of application of microcomputer H8/3048 series is micom car rally. How to use the software which names High_Performane Embedded Workshop V.4.00 to edit and compile the C source program. After compiling, CPUWrite software, which is provided by manufactoring, is used as the program loader.
- This project contains five chapters:
- Chapter 1: Introduce microcomputer H8/3048F-ONE’s hardware.
- Chapter 2: Introduce instruction deck of microcomputer H8/3048F-ONE.
- Chapter 3: The construction of Micom Car Rally.
- Chapter 4: Software user manual.
- Chapter 5: Program and explaination.
MỤC LỤC
TrangTrang bìa ................................................................................................................................... i
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP. ii
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN.. iii
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN.. iv
LỜI CẢM ƠN.. v
TÓM TẮT ĐỒ ÁN.. vi
ABSTRACT. vii
MỤC LỤC.. viii
DANH MỤC HÌNH VẼ.. xi
DANH MỤC BẢNG BIỂU.. xii
DANH MỤC TỪ VIẾT TẮT. xiii
CHƯƠNG 1 GIỚI THIỆU VI ĐIỀU KHIỂN H8/3048F-ONE.. 1
1.1 Lịch sử phát triển của vi xử lý. 1
1.1.1 Tóm tắt lịch sử phát triển của vi xử lý. 1
1.1.2 Các khái niệm cơ bản về cấu trúc của vi xử lý. 1
1.1.3 Tốc độ làm việc. 1
1.1.4 Các thanh ghi của vi xử lý. 1
1.2 Giới thiệu vi điều khiển H8/3048. 2
1.2.1 Tổng quan. 2
1.2.2 Sơ đồ khối của vi điều khiển. 3
1.2.3 Sơ đồ chân của vi điều khiển. 4
1.2.4 Cấu trúc bộ nhớ của vi điều khiển. 5
1.3 Các chế độ hoạt động của vi điều khiển. 6
1.3.1 Thanh ghi điều khiển chế độ hoạt động (MDCR – Mode Control Register). 6
1.3.2 Các chế độ hoạt động. 6
1.4 Ngõ vào ra ( I/O Port) 7
1.4.1 Tổng quan. 7
1.4.2 Port 1. 7
1.4.3 Port 2. 8
1.4.4 Port 3. 8
1.4.5 Port 4. 9
1.4.6 Port 5. 9
1.4.7 Port 6: Kết nối với DIP Switch. 10
1.4.8 Port 7: Ngõ vào tín hiệu cảm biến dò line. 10
1.4.9 Port 8. 11
1.4.10 Port 9. 11
1.4.11 Port A.. 12
1.4.12 Port B: Ngõ ra điều khiển động cơ. 12
1.5 Khảo sát TIMER của vi điều khiển H8. 14
1.5.1 Thanh ghi ITU0_TCR.. 15
1.5.2 Thanh ghi ITU0_IER.. 16
1.5.3 Thanh ghi ITU0_TSR.. 16
1.5.4 Thanh ghi ITU_STR.. 17
CHƯƠNG 2 GIỚI THIỆU TẬP LỆNH VI ĐIỀU KHIỂN H8/3048F-ONE.. 18
2.1 Các thanh ghi của vi điều khiển. 18
2.1.1 Thanh ghi thông thường và thanh ghi mở rộng (General, Extended Register) 18
2.1.2 Thanh ghi bộ đếm chương trình (Control Register): 18
2.1.3 Thanh ghi mã điều kiện (Condition Code Register). 19
2.2 Định dạng dữ liệu trên các thanh ghi 20
2.3 Giới thiệu về tập lệnh của vi điều khiển. 21
2.4 Khảo sát một số lệnh trong trong tập lệnh của vi điều khiển. 22
2.4.1 Lệnh ADD.. 22
2.4.2 Lệnh AND.. 22
2.4.3 Lệnh BAND (And bit) 23
2.4.4 Lệnh BCLR (Clear bit) 23
2.4.5 Lệnh BLD (Load bit) 24
2.4.6 Lệnh BNOT (Not bit) 24
2.4.7 Lệnh BSET (Set bit) 25
2.4.8 Lệnh CMP (Compare) 25
2.4.9 Lệnh EEPMOVE (Move data to EEPROM) 25
2.4.10 Lệnh INC (Increment) 26
2.4.11 Lệnh JMP (Jump) 26
2.4.12 Lệnh MOVE.. 26
2.4.13 Lệnh POP. 26
2.4.14 Lệnh PUSH.. 27
2.4.15 Lệnh ROT (Rotate) 27
CHƯƠNG 3 GIỚI THIỆU MÔ HÌNH XE MCR.. 28
3.1 Lịch sử phát triển xe MCR.. 28
3.1.1 JMCR (Japan Micom Car Rally) 28
3.1.2 VMCR (Vietnam Micom Car Rally) 30
3.2 Cấu tạo xe MCR: 31
3.2.1 Bộ xử lý trung tâm (CPU board): 31
3.2.2 Cảm biến dò line (Sensor board): 31
3.2.3 Phần điều khiển động cơ (Motor drive board): 32
CHƯƠNG 4 PHẦN MỀM BIÊN DỊCH VÀ PHẦN MỀM NẠP. 34
4.1 HIGH-PERFORMANCE EMBEDDED WORKSHOP V4.00. 34
4.1.1 Giới thiệu phần mềm.. 34
4.1.2 Sử dụng chương trình. 38
4.2 CPUWRITE.. 38
CHƯƠNG 5 LẬP TRÌNH CHO XE MCR.. 39
5.1 Sơ đồ khối của chương trình: 39
5.2 Chương trình “kit05.c”. 40
5.3 Giải thích chương trình “kit05.c”. 57
5.3.1 Phần bắt đầu: 57
5.3.2 Truy xuất file có sẵn. 57
5.3.3 Định nghĩa các kí hiệu sử dụng trong chương trình. 58
5.3.4 Phương pháp lập trình mẫu (Pattern Method) 60
5.3.5 Pattern 11 : đường chạy bình thường. 61
5.3.6 Đọc tín hiệu cảm biến. 62
5.3.7 Đọc tín hiệu DIP switch. 64
5.4 Giải thích chương trình “kit05start.scr”. 66
5.4.1 Chương trình: 66
5.4.2 CPU command: 68
5.4.3 Thiết lập các tham chiếu bên ngoài: 68
5.4.4 Khai báo địa chỉ các vector 68
5.4.5 Khai báo Section P. 69
5.4.6 Kết thúc khai báo: 69
5.5 Giải thích chương trình kit05.sub. 70
5.5.1 Chương trình. 70
5.5.2 Lệnh “input”: mô tả tên các file liên kết 70
5.5.3 Lệnh “lib”. 70
5.5.4 Lệnh “output”: mô tả file sau khi biên dịch (file.mot). 70
5.5.5 Lệnh “start”: định địa chỉ bắt đầu cho các vùng nhớ. 70
5.6 Cơ chế biên dịch chương trình. 71
KẾT LUẬN – KIẾN NGHỊ. 72
TÀI LIỆU THAM KHẢO.. 73
DANH MỤC HÌNH VẼ
Hình 1. 1 Sơ đồ khối của vi điều khiển. 3
Hình 1. 2 Sơ đồ chân của vi điều khiển. 4
Hình 1. 3 Cấu trúc bộ nhớ của vi điều khiển (Mode 7). 5
Hình 1. 4 Thanh ghi MDCR. 6
Hình 1. 5 Thanh ghi ITU0_TCR. 15
Hình 1. 6 Thanh ghi ITU0_IER. 16
Hình 1. 7 Thanh ghi ITU0_TSR. 16
Hình 1. 8 Điều kiện xảy ra ngắt. 16
Hình 1. 9 Thanh ghi ITU_STR. 17
Hình 2. 1 Các thanh ghi của vi điều khiển. 18
Hình 2. 2 Thanh ghi CR. 18
Hình 2. 3 Thanh ghi CCR. 19
Hình 2. 4 Cấu trúc dữ liệu của vi điều khiển. 20
Hình 2. 5 Chu kỳ thực hiện lệnh. 21
Hình 2. 6 Hoạt động của lệnh BAND. 23
Hình 2. 7 Hoạt động của lệnh BCLR. 23
Hình 2. 8 Hoạt động BLD. 24
Hình 2. 9 Hoạt động của lệnh BNOT. 24
Hình 2. 10 Hoạt động của lệnh BSET. 25
Hình 2. 11 Hoạt động của lệnh ROT. 27
Hình 3. 1 Mô hình xe ban đầu. 29
Hình 3. 2 Mô hình xe hiện tại. 29
Hình 3. 3 Mô hình xe tương tai. 30
Hình 3. 4 Board CPU. 31
Hình 3. 5 Board cảm biến. 31
Hình 3. 6 Sơ đồ nguyên lý cảm biến dò line. 32
Hình 3. 7 Board điều khiển động cơ. 32
Hình 3. 8 Sơ đồ nguyên lý điều khiển động cơ DC. 33
Hình 3. 9 Sơ đồ nguyên lý điều khiển động cơ servo. 33
Hình 4. 1 Giao diện chính của chương trình HEW. 34
Hình 4. 2 Giao diện workspace. 36
Hình 4. 3 Giao diện biên soạn chương trình. 37
Hình 4. 4 Giao diện output 37
Hình 4. 5 Thanh trạng thái. 37
Hình 4. 6 Giao diện chào. 38
Hình 4. 7 Giao diện chương trình nạp. 38
Hình 5. 1 Sơ đồ khối của chương trình. 39
Hình 5. 2 Góc quay động cơ servo. 59
Hình 5. 3 Trạng thái cảm biến. 61
Hình 5. 4 Tín hiệu cảm biến. 62
Hình 5. 5 Tín hiệu DIP switch. 64
Hình 5. 6 Quá trình biên dịch chương trình. 71
DANH MỤC BẢNG BIỂU
Bảng 1. 1 Các chế độ hoạt động của vi điều khiển. 6
Bảng 1. 2 Các port sử dụng trong mô hình xe. 7
Bảng 1. 3 Kết nối PB. 12
Bảng 1. 4 Các thanh ghi của Timer 0. 14
Bảng 1. 5 Bảng giá trị bit CCLR1 và CCRL2. 15
Bảng 1. 6 Bảng giá trị bit TPSC2, TPSC1 và TPSC0. 15
Bảng 5. 1 Các pattern sử dụng trong chương trình. 60
Bảng 5. 2 Bảng giá trị DIP Swtich. 64
DANH MỤC TỪ VIẾT TẮT
CPU : Center Processing Unit.
CCR : Control Code Register.
ERn : Extended Register.
IER : Interrupt Enable Register.
MCR : Micom Car Rally.
MDCR : Mode Control Register.
PC : Program Couter.
PWM : Pulse Width Modulation.
Rd : General Register (destination).
Rn : General Register.
Rs : General Register (source).
SP : Stack Poiter.
STR : Start Register.
TCR : Timer Control Register.
(EAd) : Destination Operand.
(EAs) : Source Operand.
CHƯƠNG 1 GIỚI THIỆU VI ĐIỀU KHIỂN H8/3048F-ONE
-
Lịch sử phát triển của vi xử lý
- Tóm tắt lịch sử phát triển của vi xử lý
Vi xử lý là sự kết hợp chặt chẽ của hai kỹ thuật công nghệ quan trọng nhất: đó là máy tính dùng kỹ thuật số và các mạch vi điện tử. Hai công nghệ này kết hợp với nhau vào năm 1970, sau đó các nhà nghiên cứu đã chế tạo ra vi xử lý.
Máy tính số là các mạch điện xử lý tín hiệu được xử lý được điều khiển bởi chương trình, có thể làm những công việc mà con người mong muốn. Chương trình sẽ điều khiển các mạch số di chuyển và xử lý dữ liệu bằng cách điều khiển các mạch logic số học, các bộ nhớ, các thiết bị xuất nhập. Cách thức các mạch điện logic của máy tính số kết hợp lại với nhau tạo thành mạch logic số học, các vi mạch nhớ và các thiết bị xuất nhập được gọi là cấu trúc.
Vi xử lý có cấu trúc giống như máy tính số và có thể xem nó là máy tính số vì cả hai đều tính toán dưới sự điều khiển của chương trình.
Lịch sử phát triển của vi xử lý gắn liền với sự phát triển của các vi mạch điện tử vì vi xử lý là vi mạch điện tử được chế tạo theo công nghệ LSI (Large Scale Intergrated) cho đến VLSI (Very Large Scale Intergrated).
Vi xử lý đầu tiên có khả năng xử lý dữ liệu 4bit, tuy nhiên các vi xử lý này có tốc độ xử lý rất chậm, sau đó ra đời các vi xử lý 8bit, 16bit, 32bit … làm tăng số lượng các lệnh điều khiển và lệnh tính toán phức tạp.
- Các khái niệm cơ bản về cấu trúc của vi xử lý
Chiều dài từ dữ liệu : 4bit, 8bit, 16bit, 32bit và 64bit. Vi xử lý có chiều dài từ dữ liệu lớn thì tốc độ làm việc nhanh, khả năng truy xuất bộ nhớ lớn, dùng trong các công việc xử lý dữ liệu, điều khiển phức tạp. Các vi xử lý có chiều dài từ dữ liệu nhỏ hơn, khả năng truy xuất bộ nhớ nhỏ hơn, tốc độ làm việc thấp hơn được sử dụng trong các công việc điều khiển và xử lý đơn giản.
Khả năng truy xuất bộ nhớ : vi xử lý có khả năng truy xuất bộ nhớ càng lớn thì có thể xử lý chương trình càng lớn.
- Tốc độ làm việc
Tần số xung clock cung cấp cho vi xử lý quyết định đến tốc độ làm việc của vi xử lý, tốc độ làm việc càng lớn thì khả năng xử lý lệnh càng nhanh, tần số xung clock của vi xử lý do nhà sản xuất qui định.
- Các thanh ghi của vi xử lý
Dùng để xử lý dữ liệu.
-
Giới thiệu vi điều khiển H8/3048
- Tổng quan
H8/3048 là sơ-ri vi điều khiển hiệu suất cao được tích hợp hệ thống các chức năng hỗ trợ của CPU H8/300H.
CPU H8/300H có cấu trúc nội 32bit với 16 thanh ghi dịch 16bit, chương trình tối ưu và ngắn gọn để hướng tới tốc độ xử lý. Có thể định địa chỉ trong dung lượng 16 Mb.
Trên chip có ROM, RAM, bộ định thời tích hợp 16-bit (ITU), bộ điều khiển xung (TPC – Timing Pattern Controller), bộ đếm xung nội (WDT), chuẩn truyền nối tiếp (SCI), bộ chuyển đổi A/D, D/A, ngõ vào – ra, bộ điều khiển truy xuất bộ nhớ trực tiếp (DMAC), bộ điều khiển làm mới tín hiệu và một số chức năng khác.
Vùng địa chỉ được chia thành 8 miền, độ rộng bus dữ liệu và chiều dài chu kì được chọn mà không phụ thuộc vào các miền, đơn giản hóa sự kết nối giữa các bộ nhớ khác loại. Với 7 chế độ hoạt động, cho phép lựa chọn độ rộng bus dữ liệu và kích thước vùng nhớ.
Với những tính năng trên thì sơ-ri H8/3048 thường được sử dụng trong các ứng dụng có nhiều thực thi và những hệ thống hiệu suất cao một cách dễ dàng.
Gồm 16 thanh ghi dịch 16bit có thể sử dụng như sau:
- 16 thanh ghi 8bit + 8 thanh ghi 16bit.
- 16 thanh ghi 16bit.
- 8 thanh ghi 32bit.
Hoạt động ở tần số cao 16 MHz .
- Thực hiện phép tính cộng và trừ 125 ns.
- Thực hiện phép tính nhân và chia mất 875 ns.
16-Mbyte bộ nhớ định địa chỉ.
128 Kbytes ROM.
4 Kbytes RAM.
Có 7 chân ngắt ngoài, 30 vector ngắt và 3 mức ưu tiên ngắt.
5 kênh timer 16-bit tích hợp counter, PWM …
1 kênh watchdog timer (bộ đếm xung nội).
2 kênh SCI (Serial Communication Interface).
8 kênh ADC 10 bits.
2 kênh DAC 8 bits.
70 chân I/O và 8 chân ngõ vào (input-only).
- Sơ đồ khối của vi điều khiển
Hình 1. 1 Sơ đồ khối của vi điều khiển.
- Sơ đồ chân của vi điều khiển
Hình 1. 2 Sơ đồ chân của vi điều khiển.Cấu trúc bộ nhớ của vi điều khiển
Khi chọn chế độ hoạt động là Mode 7 thì vi điều khiển có cấu trúc bộ nhớ như hình vẽ dưới đây:
Hình 1. 3 Cấu trúc bộ nhớ của vi điều khiển (Mode 7).
-
Các chế độ hoạt động của vi điều khiển
- Thanh ghi điều khiển chế độ hoạt động (MDCR – Mode Control Register).
Hình 1. 4 Thanh ghi MDCR.
MDCR là thanh ghi chỉ đọc, nó xác định chế độ hoạt động hiện hành của vi điều khiển thông qua ba bit MDS2 → MDS0
- Các chế độ hoạt động
Bảng 1. 1 Các chế độ hoạt động của vi điều khiển.
Chế độ hoạt động |
Bit điều khiển |
Mô tả |
||||
MD2 |
MD1 |
MD0 |
Bus |
ROM |
RAM |
|
-- |
0 |
0 |
0 |
-- |
-- |
-- |
Mode 1 |
0 |
0 |
1 |
8 bits |
Không |
Có |
Mode 2 |
0 |
1 |
0 |
16 bits |
Không |
Có |
Mode 3 |
0 |
1 |
1 |
8 bits |
Không |
Có |
Mode 4 |
1 |
0 |
0 |
16 bits |
Không |
Có |
Mode 5 |
1 |
0 |
1 |
8 bits |
Có |
Có |
Mode 6 |
1 |
1 |
0 |
8 bits |
Có |
Có |
Mode 7 |
1 |
1 |
1 |
-- |
Có |
Có |
-
Ngõ vào ra ( I/O Port)
- Tổng quan
Vi điều khiển H8/3048 có 11 ngõ vào ra (I/O port): port 1, port 2, port 3, port 4, port 5, port 6, port 7, port 8, port 9, port A, port B. Trong đó port 7 chỉ là ngõ vào.
Mỗi port có thanh ghi dữ liệu trực tiếp (DDR) và thanh ghi lưu trữ dữ liệu ngõ ra (DR).
Áp dụng trong mô hình xe MCR:
Bảng 1. 2 Các port sử dụng trong mô hình xe.
Port |
Giá trị thiết lập |
Kết nối |
Port 1 |
0xff |
Không kết nối. |
Port 2 |
0xff |
Không kết nối. |
Port 3 |
0xff |
Không kết nối. |
Port 4 |
0xff |
Không kết nối. |
Port 5 |
0xff |
Không kết nối. |
Port 6 |
0xf0 |
Bit 3→0: ngõ vào DIP switch. |
Port 7 |
|
Ngõ vào tín hiệu cảm biến dò line. |
Port 8 |
0xff |
Không kết nối. |
Port 9 |
0xf7 |
Bit 3 giao tiếp dữ liệu ngõ ra và bit 1 giao tiếp dữ liệu ngõ vào. |
Port A |
0xff |
Không kết nối. |
Port B |
0xfe |
Ngõ ra điều khiển động cơ. |
- Port 1
- Port 2
- Port 3
- Port 4
- Port 5
- Port 6: Kết nối với DIP Switch.
- Port 7: Ngõ vào tín hiệu cảm biến dò line.
- Port A
- Port B: Ngõ ra điều khiển động cơ.
Bảng 1. 3 Kết nối PB.
STT |
Tín hiệu |
Chức năng |
Giá trị |
Ghi chú |
|
0 |
1 |
||||
1 |
5V |
|
|
|
|
2 |
PB7 |
Điều khiển LED1 |
ON |
OFF |
|
3 |
PB6 |
Điều khiển LED0 |
ON |
OFF |
|
4 |
PB5 |
Điều khiển Servo |
Tín hiệu PWM |
Thiết lập qua ITU4_BRB |
|
5 |
PB4 |
Ngõ ra PWM điều khiển động cơ phải |
Dừng |
Quay |
Thiết lập qua ITU4_BRA |
6 |
PB3 |
Điều khiển chiều động cơ phải |
Quay thuận |
Quay nghịch |
|
7 |
PB2 |
Điều khiển chiều động cơ trái |
Quay thuận |
Quay nghịch |
|
8 |
PB1 |
Ngõ ra PWM điều khiển động cơ trái |
Dừng |
Quay |
Thiết lập qua ITU3_BRB |
9 |
PB0 |
Nút nhấn |
Nhấn |
Không |
|
10 |
GND |
|
|
|
|
- Khảo sát TIMER của vi điều khiển H8
Dòng vi điều khiển H8/3048F có năm timer tích hợp 16_bit ITU0→ITU4, được sử dụng vào các ứng dụng như:
Bộ đếm thời gian
Ngõ ra PWM
Trong ứng dụng lập trình xe MCR, sử dụng Timer 0 của vi điều khiển.
Khảo sát Timer 0 của vi điều khiển (ITU0)
Các thanh ghi của Timer 0 (ITU0 Registers)
Bảng 1. 4 Các thanh ghi của Timer 0.
Tên |
Chức năng |
Ý nghĩa |
ITU0_CNT |
Bộ đếm |
Hoạt động giống đồng hồ. Giá trị của bộ đếm tăng lên 1 sau một xung clock. |
ITU0_TCR |
Thanh ghi điều khiển |
Chia tần số xung clock cho ITU0_CNT. |
ITU0_GRA |
Ngõ ra PWM kênh A |
Tự động so sánh với giá trị của thanh ghi ITU0_CNT, nếu giá trị trùng nhau sẽ tạo ra một ngắt làm thay đổi tín hiệu PWM. |
ITU0_GRB |
Ngõ ra PWM kênh B |
Tương tự kênh A. |
ITU0_IER |
Thanh ghi điều khiển ngắt |
Cho phép hoặc không cho phép ngắt. |
ITU0_STR |
Thanh ghi điều khiển bộ đếm |
Ban đầu bộ đếm ở trạng thái off (không đếm), thanh ghi này cho phép bộ đếm bắt đầu đếm (tương tự như một switch). |
ITU0_TSR |
Thanh ghi trạng thái bộ đếm |
Thể hiện trạng thái của bộ đếm. |
- Thanh ghi ITU0_TCR
Hình 1. 5 Thanh ghi ITU0_TCR.
Bit 6, 5 : xóa giá trị đếm
Bảng 1. 5 Bảng giá trị bit CCLR1 và CCRL2
CCLR1 |
CCLR0 |
Giải thích |
0 |
0 |
Luôn xóa giá trị đếm được chứa trong ITU0_CNT. |
0 |
1 |
Xóa khi giá trị trong ITU0_CNT trùng với ITU0_GRA. |
1 |
0 |
Xóa khi giá trị trong ITU0_CNT trùng với ITU0_GRB. |
1 |
1 |
Xóa đồng bộ. |
Bit 2→0 : chia xung
Bảng 1. 6 Bảng giá trị bit TPSC2, TPSC1 và TPSC0
TPSC2 |
TPSC1 |
TPSC0 |
Giải thích |
0 |
0 |
0 |
Giữ nguyên tần số xung nội |
0 |
0 |
1 |
Chia 2 : f/2 |
0 |
1 |
0 |
Chia 4 : f/4 |
0 |
1 |
1 |
Chia 8 : f/8 |
1 |
0 |
0 |
Đếm xung ngoại tại chân PA0 |
1 |
0 |
1 |
Đếm xung ngoại tại chân PA1 |
1 |
1 |
0 |
Đếm xung ngoại tại chân PA2 |
1 |
1 |
1 |
Đếm xung ngoại tại chân PA3 |
Sai số thạch anh vào khoảng ±100 ppm (0.01%)
- Thanh ghi ITU0_IER
Hình 1. 6 Thanh ghi ITU0_IER.
Bit 2 : cho phép ngắt khi có tràn
OVIE = 0 : là giá trị ban đầu, không xảy ra ngắt khi có tràn.
OVIE = 1 : cho phép ngắt khi tràn.
Bit 1, 0 : cho phép hoặc không cho phép ngắt khi bit 1, 0 của thanh ghi ITU0_TSR bằng 1.
- Thanh ghi ITU0_TSR
Hình 1. 7 Thanh ghi ITU0_TSR.
Bit 2 : cờ tràn
Bit 1, 0 : điều kiện xảy ra ngắt.
Hình 1. 8 Điều kiện xảy ra ngắt.
- Thanh ghi ITU_STR
Hình 1. 9 Thanh ghi ITU_STR.
Bit 4→0 = 0 : timer tương ứng ở trạng thái dừng.
Bit 4→0 = 1 : timer tương ứng bắt đầu đếm.
Ghi chú: Các timer còn lại của vi điều khiển cũng có các thanh ghi tương tự như các thanh ghi của timer 0.