Ứng dụng Vi điều khiển

Thiếtkế mạch điều khiển ánh sáng theo chương trình định trước 2. Thiếtkế mạch trang tríbằng đèn LED 3. Thiếtkế mạch nhậndạng đi ểm phụcvụ (thêm ít nhất 2IC) 4. Thiếtkế mạch đolượngmưa 5. Thiếtkế mạch điều khiển nhiệt độ không khí 6. Thiếtkế mạch điều khiển nhiệt độ dungdị ch 7. Thiếtkế mạch đồnghồ điệntử 8. Thiếtkế mạch t ính thời gian cho các môn điền kinh 9. Thiếtkế bảng quang báo 10. Thiếtkế mạch khoá điệntử 11. Thiếtkế mạch điều khiển thiếtbị bằng remote 12. Kếtnối bàn phím máy t ínhvới VXL, hiển thị kýtự l ênLCD 13. Thiếtkế mạch điều khiển Robot chạy theoqũy đạo (sd motorbước) 14. Thiếtkế mạch điều khiểntốc độ độngcơ DC 15. Thiếtkế mạch điều khiển góc quaycủa môtơ, ổntốc cho motor.

pdf56 trang | Chia sẻ: tranhoai21 | Lượt xem: 1405 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Ứng dụng Vi điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1MÔN HỌC Ứng dụng Vi điều khiển (Microcontroller Applications) By Trần Văn Hùng Mechatronics Dept Email: tvh42th@gmail.com Tài liệu tham khảo 1. Microprofessors and microcpmputers hardware and softwware, Ronaid J.Tocci, Frank J.Ambrosio, Prentice Hall, 2003 2. Interfacing Sensors To The Pc, Willis J.Tompkin, Jonh G.webster, Prentice Hall, 1998 3. Vi xử lý, Văn ThếMinh, NXB Giáo Dục. 4. Họ vi điều khiển 8051, Tống Văn On. 5. Kỹ thuật Vi điều khiển AVR, Tống Văn On. 2Nội dung chương trình n Ch01: Các hệ đếm và mã hoá n Ch02: Hệ thống vi xử lý n Ch03: Bộ nhớ n Ch04: Họ vi điều khiển AVR n Ch05: Ngôn ngữ lập trình CodevisionAVR n Ch06: Input/Output Các bài toán 1. Thiết kế mạch điều khiển ánh sáng theo chương trình định trước 2. Thiết kế mạch trang trí bằng đèn LED 3. Thiết kế mạch nhận dạng điểm phục vụ (thêm ít nhất 2IC) 4. Thiết kế mạch đo lượng mưa 5. Thiết kế mạch điều khiển nhiệt độ không khí 6. Thiết kế mạch điều khiển nhiệt độ dung dịch 7. Thiết kế mạch đồng hồ điện tử 8. Thiết kế mạch tính thời gian cho các môn điền kinh 9. Thiết kế bảng quang báo 10. Thiết kế mạch khoá điện tử 11. Thiết kế mạch điều khiển thiết bị bằng remote 12. Kết nối bàn phím máy tính với VXL, hiển thị ký tự lên LCD 13. Thiết kế mạch điều khiển Robot chạy theo qũy đạo (sd motor bước) 14. Thiết kế mạch điều khiển tốc độ động cơ DC 15. Thiết kế mạch điều khiển góc quay của môtơ, ổn tốc cho motor. 1Chương 1: Các hệ đếm và mã hoá n Các hệ đếm dùng trong máy tính n Các phép toán số học đối với hệ hai n Mã ASCII 1.1 Các hệ đếm dùng trong máy tính 1.1.1 Hệ mười và hệ hai n Con người thì quen dùng hệ cơ số mười (hệ mười) 1234,56 = 1.103 + 2.102 + 3.101 + 4.100 + 5.10-1 + 6.10-2 n Máy tính thì chỉ làm việc với hệ cơ số hai (hệ hai) 1011,01 = 1.23 + 0.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2 n Nibble gồm 4 bit n Byte gồm 8 bit n Word gồm 16 bit 03 7 0 15 0 MSB LSB 21.1.1 Chuyển đổi giữa hệ mười và hệ hai n Đổi hệ hai sang hệ mười 1011,012 = 1.23 + 0.22 + 1.21 + 1.20 + 0.2-1 + 1.2-2 = 11,2510 n Đổi hệ mười sang hệ hai 4610 = 1011102 Hình 1. Một cách đổi hệ mười sang hệ hai 0 1 46 2 23 2 11 2 5 2 2 2 1 2 0 1 1 0 1 1.1.1 Chuyển đổi giữa hệ mười và hệ hai (tiếp) n Đổi số thập phân hệ mười sang hệ hai 0,12510 = 0,0012 n Số BCD (số hệ mười mã hoá bằng hệ hai) Số BCD thích hợp cho các thiế bị đo có hiển thị số ở đầu ra. 123410 = 0001 0002 0003 0004BCD n Hệ mười sáu 123410 = 0100 1101 00102 = 4D216 0,125 x 2 = 0,250 x 2 = 0,500 x 2 = ,250 ,500 ,000 0 0 1 31.2 Các phép toán số học đối với hệ hai 1.2.1 Phép cộng ana(n-1) ... a2a1a0 + bmb(m-1) ... b2b1b0 = ckc(k-1) ... c2c1c0 (hệ cơ số x) ci = (ai + bi + (ai-1 + bi-1)%x )/x Ví dụ cộng hệ hai 1.2.2 Phép trừ và số bù hai a. Phép trừ ana(n-1) ... a2a1a0 - bmb(m-1) ... b2b1b0 = ckc(k-1) ... c2c1c0 (hệ cơ số x) ci = (ai – Bi-1) – bi (nếu (ai – Bi-1) >= bi và Bi = 0) ci = (ai – Bi-1 + x) – bi (nếu (ai – Bi-1) < bi và Bi = 1) Ví dụ trừ hệ hai 1101 1001 0001 1011 1111 0100 + 1101 1001 0001 1011 1011 1110 - 1.2.2 Phép trừ và số bù hai (tiếp) b. Số bù hai Ta có thể thay phép trừ bằng phép cộng: cộng số bị trừ với đối số của số trừ. Để tìm số bù hai của một số A ta làm theo các bước sau: + Biểu diễn số A số hệ hai của nó. + Tìm số bù một (bù logic) của số đó (đảo bít). + Cộng một vào số bù một ở trên để nhận được số bù hai của A. 1.2.3 Phép nhân Ví dụ nhân 2 số hệ hai có độ dài 4 bít Bảng 1. Quy tắc phép nhân a.bba 1 0 0 0 11 01 10 00 1011 0000 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 0 0 0 1 1 1 1 1 41.2.2 Phép chia b. Chia trực tiếp Ví dụ: 35/5 = 7 b. Chia gián tiếp Lấy số bị chia trừ đi số chia, kết quả sẽ là số bị chia của phép toán tiếp theo, lặp lại đến khi số bị chia nhỏ hơn số chia hoặc bằng 0. 0 101 1 0 1 1 1 101 111 1 0 0 0 0 0 1 0 0 1 1 1 0 101 1 01 00 1Chương 2: Hệ thống vi xử lý n Ưu và nhược điểm hệ nhúng n Vi xử lý, vi điều khiển n Các họ vi điều khiển n Ngắt và xử lý ngắt 2.1 Tại sao lại sử dụng hệ nhúng? 2.1.1 Ưu điểm n Khả năng thích nghi cao n Tính linh động n Khả năng thay đổi dễ dàng n Khả năng tái sử dụng tài nguyên (thư viện,) n Giá thành rẻ n . . . 2.1.2 Nhược điểm n Tốc độ phản ứng chậm n Độ ổn định thấp n Không xử lý được gía trị liên tục n . . . 22.2 Vi điều khiển, vi xử lý CPU General- Purpose Micro- processor RAM ROM I/O PORT Timer, Wdg, ADC, DAC, USB, UARST, I2C, Data bus Address bus TERMINOLOGY n Microcontroller vs. Microprocessor vs. Microcomputer n A microprocessor is a central processing unit on a single chip. n A microprocessor combined with support circuitry , peripheral I/O components and memory (RAM & ROM) used to be called a “microcomputer.” n A microprocessor where all the components mentioned above are combined on the same single chip that the microprocessor is on, is called a microcontroller. 32.3 Kiến trúc vi điều khiển n Đơn vị sử lý số học (ALU) n Bộ nhớ n Input n Output n Đơn vị điều khiển 2.3.1 Đơn vị xử lý số học (ALU) n Thực hiện phép toán và phép logic trên dữ liệu n Dữ liệu có thể lấy trên bộ nhớ hoặc I/O n Kết quả có thể được đưa ra ngoài hoặc vào bộ nhớ (kết quả được lưu lại) General Purpose Registrers ALU 42.3.2 Bộ nhớ n Lưu trữ lệnh hay dữ liệu n Có thể để lưu trữ dữ liệu tạm thời n Có thể ghi/đọc được bởi bộ điều khiển Program Flash (4K x 16) Program Memory $000 $FFF 32 Gen. Purpose Working Resisters 64 I/O Resisters Internal SRAM (512 x 8) $025F $005F $0060 $001F $0020 $0000 Data Memory EEPROM (512 x 8) Data Memory $000 $1FF 2.3.3 Input n Thiết bị cho phép thông tin và dữ liệu vào bên trong bộ vi điều khiển n Ví dụ: ADC, I2C, UART, 2.3.4 Output n Thiết bị chuyển đổi thông tin và dữ liệu từ bộ nhớ ra thiết bị ngoại vi. n Thiết bị ngoại vi: LED, LCD, máy in, 52.3.5 Đơn vị điều khiển n Cung cấp xung nhịp và điều khiển tín hiệu n Tìm nạp lệnh và dữ liệu n Chuyển dữ liệu tới/từ I/O n Giải mã lệnh n Thực hiện phép tính số học/logic n Đáp ứng tín hiệu ngoài (Reset/Ngắt) 2.3.6 Một số họ vi điều khiển n Vi điều khiển 8051 n 8051, 89Cxx, 89Sxx, 89Dxx, n Vi điều khiển AVR n AVR 8 bít, AVR 16 bít, n Vi điều khiển PIC n PIC 8 bít, PIC 16 bít, n Vi điều khiển MCUs của Philips n P8xCxx, n 62.3.6 Các họ vi điều khiển (tiếp – so sánh) n Tốc độ xử lý (clock, clock cycle execution) n Khả năng tích hợp (ADC, DAC, UART, I2C,) n Dải điện áp hoạt động (Operating Voltages) n Công suất đầu ra (DC current per I/O pin) n Khả năng chống nhiễu (Noise Reduction) n Tập lệnh (Instruction) n Công suất IC (Power consumption) n . . . 2.4 Ngắt và xử lý ngắt (Interrupt) 2.4.1 Khái niệm n Ngắt là sự dừng thực hiện chương trình chính (CTC) để thực hiện chương trình con phụ vụ ngắt(ctc) n: IRQi n + 1: m: IRQj m + 1: Main Prog ISRi ISRj iret iret 72.4.2 Cấu trúc ngắt nXuất hiện không được báo trước nPhục vụ gần giống chương trình con nTích hợp nhiều loại ngắt nCó ưu tiên ngắt 2.4.3 Xử lý ngắt n Xuất hiện và cho phép ngắt n Hoàn thành lệnh hiện tại n Lưu trữ địa chỉ lệnh tiếp theo vào ngăn xếp n Nạp địa chỉ ISR vào PC n Thực hiện ISR n Kết thúc ISR là lệnh RETI n Khôi phục địa chỉ lệnh tiếp theo trong ngăn xếp, chương trình tiếp tục thực hiện 82.4.4 Phân loại ngắt n Ngắt mềm (software interrupt) Là việc gọi 1 ctc (Subroutine) được xây dựng riêng mà ctc này còn có thể được gọi bởi thiết bị ngoại vi n Ngắt cứng (hardware interrupt) Do port phát tín hiệu đến CPU n Ngắt trong (internal interrupt) Trong một số CPU để bẫy/xử lý các sự kiện trong khi thực hiện n Ngoại lệ (exceptions) Là vấn đề hay điều kiện để CPU dừng công việc đang thực hiện, tìm địa chỉ và thực hiện 1 ctc, được thiết kế để xử lý sự kiện này. 1Chương 3: Bộ nhớ n Bộ nhớ bán dẫn n Giải mã địa chỉ cho bộ nhớ n Phối ghép bộ nhớ n Mở rộng bộ nhớ 3.1 Bộ nhớ bán dẫn n Các nhóm tín hiệu n ROM (read only memory) n RAM (random access memory) ROM Read Only Memory RAM Radom Access Memory PROM EPROM EEPROM Programmable ROM Erasable PROM Electrically EPROM SRAM Static RAM DRAM Dynamic RAM CACHE L1, L2, L3 Memory 23.1.1 Các nhóm tín hiệu A0 A1 A2 An ... D0 D1 D2 Dm ... CS WE OE RD WR Select IC Address Data Hình 3. Sơ đồ khối của bộ nhớ a. Nhóm tín hiệu địa chỉ n Có tác dụng chọn ra một ô nhớ cụ thể n Số đường địa chỉ sẽ quyết định có tối đa bao nhiêu ô nhớ. Ví dụ có m đường địa chỉ vậy thì tối đa 2m ô nhớ. b. Nhóm tín hiệu dữ liệu n Thường là đầu ra của ROM và là vào/ra đối với RAM n Các mạch nhớ thường có đầu vào/ra là 3 trạng thái. n Số đường dây dữ liệu quyết định độ dài từ nhớ của mỗi ô nhớ. 3c. Nhóm tín hiệu chọn vi mạch n Chọn vi mạch sẽ trao đổi dữ liệu. n Các tín hiệu này thường được nối với đầu ra của bộ giải mã địa chỉ. n Vi mạch không được chọn thì bus dữ liệu của nó bị treo (ở trạng thái trở kháng cao). d. Nhóm tín hiệu điều khiển n Cho phép dữ liệu ra bus. n Bus dữ liệu bị treo nếu không có tín hiệu điều khiển. n Mạch thường chỉ có một tín hiệu điều khiển đọc/ghi. 3.1.2 ROM n Bộ nhớ có nội dung đã ghi sẵn chỉ để đọc ra n Chỉ nạp vào một lần duy nhất n Không bị mất thông tin khi mất điện A0 A1 A2 An ... D0 D1 D2 Dm ... CS WE OE RD WR Select IC Address Data Hình 3. Bộ nhớ ROM 43.1.3 ROM có thể lập trình được a. PROM (Programmable ROM) n Thời gian truy cập nhanh 120-250ns n Chỉ nạp một lần duy nhất bằng các đốt cháy các cầu chì n Điện áp khi lập trình khoảng 10-13V A0 D0 Address decoder Address Bus A1 A2 VCC D2 D1 b. EPROM (erasable PROM) n Thời gian truy cập khoảng 120 – 450 ns n Điện áp lập trình khoảng 10-25V n Nó có thể được xoá toàn bộ bằng tia cực tím. n Thời gian lập trình cho một ô nhớ lâu (khoảng 50ms) 5c. EEPROM (electrically EPROM) n Xoá từng đơn vị nhớ bằng điện, không cần tia cực tím. n Thời gian lập trình cho một ô nhớ khoảng 5ms. d. Flash memory n Thời gian truy cập nhanh (khoảng 120ns). n Thời gian ghi nhanh 10µs n Xóa từng khối nhớ 63.1.4 RAM n Bị mất dữ liệu khi mất điện. n Thời gian truy cập nhanh (có loại 15ns). Register 62 Register 63 . .. Register 2 Register 1 Register 0 Decoder 6 line to 64 lineA dd re ss in pu t R/WInput buffers Output buffers CS Hình 3. Cấu tạo bên trong của 64 x 4 RAM 3.1.4 RAM (tiếp) n SRAM (static RAM) n Chế tạo đơn giản n Dễ dàng bảo trì n Thường được sử dụng trong hệ thống có bộ nhớ nhỏ n DRAM (dynamic RAM) n Giá thành thấp n Đòi hỏi mạch phụ trợ n Phải làm tươi (refresh) thường xuyên n Thường được sử dụng trong hệ thống có bộ nhớ lớn 73.2 Giải mã địa chỉ cho bộ nhớ n Phân định không gian tổng thể thành các vùng nhớ khác nhau n Đảm bảo tính đơn trị của xung chọn n Khi thiết kế thường có dự phòng (spare) để có thể mở rộng mà không phải thiết kế lại mạch. Mạch giải mã địa chỉ Tín hiệu địa chỉ Tín hiệu điều khiển Các tín hiệu chon chip Hình 3. Mạch giải mã địa chỉ 3.2.1 Giải mã bằng các mạch NAND n Mạch giải mã địa chỉ đơn giản với đầu ra hạn chế Memory A0 – A10 D0 - D7 A11 – A19 IO/M CE OE RD Hình 3. Mạch giải mã đơn giản dùng NAND 83.2.2 Giải mã bằng các mạch 74138 n Là mạch giải mã 3 đầu vào, 8 đầu ra Memory A0 – A12 D0 – D7 A13 – A15 IO/M CE OE RD 74LS138 A B C G1 6 G2A 4 G2B 5 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7A19 A16 – A18 Hình 3. Sơ đồ giải mã dùng 74LS138 3.2.2 Giải mã bằng các mạch 74138 (tiếp) n Mức tích cực là mức 0 n Chỉ duy nhất một đầu ra ở mức tích cực 93.2.3 Giải mã dùng ROM n Cùng một chức năng như 74138 n Giảm thiểu số mạch phụ trợ Memory A0 – A12 D0 – D7 A13 – A19 IO/M CE OE RD G1 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 A0 A1 A2 A3 A4 A5 A6 A7 Hình 3. Sơ đồ giải mã dùng PROM 3.2.3 Giải mã dùng ROM (tiếp) n Chỉ sử dụng 8 byte đầu tiên, các byte khác đều chứa cùng một giá trị FFh 11111111Các địa chỉ khác 0 01111111111111100 10111111011111100 11011111101111100 11101111001111100 11110111110111100 11111011010111100 11111101100111100 11111110000111100 O0O1O2O3O4O5O6O7A0A1A2A3A4A5A6A7G Các đầu raCác đầu vào 10 RD IO/M Memory A0 – A11 A12 – A14 74LS138 A B C G1 6 G2A 4 G2B 5 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7+Vcc A15 – A19 D0 – D7 FF000-FFFFF F8000-F8FFF Hình 3. Phối ghép bộ nhớ Bộ tạo xung trễ Ready CS 3.3 Ghép nối bộ nhớ n Định địa chỉ các ô nhớ. n Dung lượng bộ nhớ. n Tốc độ bộ nhớ ko đáp ứng đươc tốc độ VĐK thì ta phải có mạch tăng thêm chu kỳ đợi CE OE 3.3 Ghép nối bộ nhớ (tiếp) n Sử dụng bộ dồn kênh để giảm số chân, tăng dung lượng bộ nhớ lên 128 x 128 Cell array R/W Data in Data out Column address decoder 7 bit Column address register Row address decoder 7 bit Row address register A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 ----------- | | | | | | | | A0/ A7 – A6/A13 A0/A7 ------- A6/A13 RAS CAS Hình 3. Kiến trúc của bộ nhớ 4116 11 3.4 Mở rộng bộ nhớ 3.4.1 Mở rộng kích thước ô nhớ Hình 3. Kết hợp hai bộ nhớ 16 x 4 thành 16 x 8 Address bus (AB0 – AB3) Data bus (DB0 – DB7) RAM-0 16 x 4 R/W CS I/03 I/02 I/01 I/00 A3 A2 A1 A0 RAM-1 16 x 4 R/W CS I/03 I/02 I/01 I/00 A3 A2 A1 A0 R/W CS 3.4.1 Mở rộng kích thước ô nhớ (tiếp) Hình 3. Kết hợp bốn bộ nhớ 2K x 8 thành 2K x 32 Address bus (AB0 – AB10) Data bus (DB0 – DB31) RAM-0 2K x 8 I/00 - I/07 R/W CS RAM-1 2K x 8 I/08 - I/015 R/W CS RAM-2 2K x 8 I/016 - I/023 R/W CS RAM-3 2K x 8 I/024 - I/031 R/W CS 12 3.4.2 Mở rộng dung lượng nhớ Hình 3. Kết hợp hai bộ nhớ 16 x 4 thành 32 x 4 Address bus (AB0 – AB3) Data bus (DB0 – DB3) RAM-0 16 x 4 R/W CS I/03 I/02 I/01 I/00 A3 A2 A1 A0 RAM-1 16 x 4 R/W CS I/03 I/02 I/01 I/00 A3 A2 A1 A0 R/W AB4 1Chương 4: Họ vi điều khiển AVR n Giới thiệu chung n Các chức năng điều khiển n Tập lệnh và ngôn ngữ lập trình 4.1 Giới thiệu chung n AVR - Kiến trúc RISC n Khoảng hơn 100 lệnh, hầu hết thực hiện một chu kỳ máy n 32 thanh ghi đa năng 8 bit n Có thể lên tới 16 MIPS tại tần số 16MHz n Bộ nhớ : n 8..256K Flash Mem cho chương trình, ghi/xoá được 10.000 lần n 512..4K Byte EEPROM, ghi/xoá 100.000 n 5128K Byte SRAM 24.1 Giới thiệu chung (tiếp) n Các modul vào ra (I/O moduls) n ADC 10bit và từ 8..16 kênh Analog n 1 đến 2 Programmable UART n Master/Slave ISP Serial Interface n 3..4 Timer/Counter: 1 x 16 bit, 2 x 8 bit n WatchDog Timer n Analog Comparator n PWM n Công suất (Power Management): - 3 chế độ nghỉ (Sleep Mode): n Idle : 1.9 mA n Power-Down: <1µA n PowerSave n (chế độ chạy bình thường: 6mA) 4.1 Giới thiệu chung (tiếp) – Điện áp làm việc : n Vcc 4.0-6.0V với AT90S8535 n Vcc 2.7-6.0V với AT90LS8535 – Tần số CLOCK n 0-8MHz với AT90S8535 n 0-4MHz với AT90LS8535 n 0-16MHz với Atmegaxx 34.1 Giới thiệu chung (tiếp) 4.1.1 Các bộ nhớ Program Flash (4K x 16) Program Memory $000 $FFF 32 Gen. Purpose Working Resisters 64 I/O Resisters Internal SRAM (512 x 8) $025F $005F $0060 $001F $0020 $0000 Data Memory EEPROM (512 x 8) Data Memory $000 $1FF 44.1.1 Các bộ nhớ (tiếp) Data Address Space $001F $001E $0001 $0000 $005F $005E $0021 $0020 Internal SRAM $085F $085E $0061 $0060 Register File R31 R30 R2 R1 I/O Register $3F $3E $01 $00 ZL ZH SRAM Organization 4.1.2 Các thanh ghi đa năng a. Các thanh ghi đa năng n Bao gồm 32 thanh ghi 8 bit n Được thực hiện trực tiếp từ ALU n Các cặp thanh ghi R26, 27; R28, 29; R30, 31 tạo thành các thanh ghi 16 bit 5b. Các thanh ghi ngăn xếp n Để lưu trữ dữ liệu tam thời, vị trí biến và địa chỉ trở về sau khi phục vụ chương trình con ngắt và chương trình con n Luôn trỏ vào đỉnh của ngăn xếp n Ngăn xếp luôn bắt đầu từ vị trí cao của bộ nhớ c. Các thanh ghi trạng thái n Chứa thông tin hiện tại của CPU n Có 8 bit chứa thông tin n Thông tin có thể bị thay đổi khi có chương trình con phục vụ ngắt 6d. Thanh ghi che ngắt và cờ ngắt n Cho phép hay không cho phép một ngắt bất kỳ n Thông báo khi có ngắt, nếu ngắt đó đã được phép n Thanh ghi che ngắt được thiết lập bằng phần mềm e. Thanh ghi điều khiển n Cho phép điều khiển toàn bộ vi điều khiển n Chức năng này gồm: n Truy cập bộ nhớ SRAM n Chế độ ngủ n Chế độ ngắt ngoài 7f. Một số thanh ghi khác n Thanh ghi trạng thái bộ xử lý n Các thanh ghi điều khiển timer/counter0 n Các thanh ghi điều khiển timer/counter1 n Thanh ghi điều khiển Watchdog n Các thanh ghi điều khiển vào ra EEPROM n Các thanh ghi điều khiển SPI n Các thanh ghi điều khiển UART n Các thanh ghi điều khiển bộ ADC 4.1.3 Ngắt và xử lý ngắt Store Program Memory ReadySPM_RDY$02821 Two-wire Serial InterfaceTWI$02620 Analog ComparatorANA_COMP$02419 EEPROM ReadyEE_RDY$02218 ADC Conversion CompleteADC$02017 USART, Tx CompleteUSART, TXC$01E16 USART Data Register EmptyUSART, UDRE$01C15 USART, Rx CompleteUSART, RXC$01A14 Serial Transfer CompleteSPI, STC$01813 Timer/Counter0 OverflowTIMER0 OVF$01612 Timer/Counter0 Compare MatchTIMER0 COMP$01411 Timer/Counter1 OverflowTIMER1 OVF$01210 Timer/Counter1 Capture Match BTIMER1 COMPB$0109 Timer/Counter1 Capture Match ATIMER1 COMPA$00E8 Timer/Counter1 Capture EventTIMER1 CAPT$00C7 Timer/Counter2 OverflowTIMER2 OVF$00A6 Timer/Counter2 Compare MatchTIMER2 COMP$0085 External Interrupt Request 2INT2$0064 External Interrupt Request 1INT1$0043 External Interrupt Request 0INT0$0022 External Pin, Power-on Reset, Brown-out Reset, Watchdog Reset and JTAG AVR ResetReset$0001 Interrupt DifinitionSourceProgramAddressVector No. 84.1.3 Ngắt và xử lý ngắt (tiếp) n 16 vectơ ngắt (2 Byte) n Từ địa chỉ $000 trong bộ nhớ chương trình n Ngắt có chỉ số thấp, độ ưu tiên càng cao n Mỗi ngắt có một bít cho phép ngắt riêng n Để sử dụng một ngắt thì bit này phải thiết lập cùng với cờ I (Global Interrupt Enable) trong thanh ghi SREG được thiết lập n Mất 4 chu kỳ đồng hồ để vào (hoặc ra khỏi) chương trình con phực vụ ngắt 4.1.3 Ngắt và xử lý ngắt (tiếp) n I – Global Interrupt Enable n T – Bit Copy Storage n H – Haft Carry Flag n S – Sign Bit S = N V n V – Overflow Flag n N – Negative Flag n Z – Zero Flag n C – Carry Flag 00000000Initial Value R/WR/WR/WR/WR/WR/WR/WR/WRead/Write SREGCZNVSHTI$3F ($5F) 01234567Bit 94.2 Các chức năng điều khiển n Timer/Counter n WatchDog Timer n Các cổng vào ra n ADC n UART n EEPROM 4.2.1 Timer/Counter Có 3 bộ đếm/định thời gian n T/C0 : n 8 bit n Nguồn đồng hồ từ mạch chia thời gian hoặc từ chân T0 (theo sườn lên/xuống) n Ngắt tràn n T/C1: n 16 bit n Nguồn đồng hồ từ mạch chia thời gian hoặc từ chân T1 (theo sườn lên/xuống) n Có ngắt tràn, ngắt thích ứng so sánh và ngắt cho phép bắt tín hiệu từ chân ICP 10 4.2.1 Timer/Counter (tiếp) n T/C2: n 8 bit n Nguồn đồng hồ từ mạch chia thời gian hoặc từ dao động bên ngoài (chân TOSC1 và TOSC2 nối với tụ thạch anh 32768Hz) n Có ngắt tràn và ngắt thích ứng so sánh n Cho phép đưa tín hiệu ra chân OC2 khi có tín hiệu thích ứng so sánh 4.2.2 WatchDog Timer Processor Watchdog Timer Clock Restart Reset 11 4.2.2 WatchDog Timer (tiếp) n Hoạt động từ bộ dao động độc lập trên chip n Lệnh WDR để Reset lại WatchDog Timer n Sau khoảng thời gian > time_out chương trình sẽ bị Reset lại n Thanh ghi điều khiển: WDTCR 00000000Initial Value R/WR/WR/WR/WR/WRRRRead/Write WDTCRWDP0WDP1WDP2WDEWDTOE───$21 ($41) 01234567Bit 4.2.2 WatchDog Timer (tiếp) n WDP2, WDP1, WDP0 : xác định thời gian time_out 2.1s2.2s2M111 1.0s1.1s1M011 0.52s0.55s512K101 0.26s0.27s256K001 0.13s0.14s128K110 65ms68.564K010 32.5ms34.3ms32K100 16.3ms17.1ms16K000 Typical Time_out at Vcc = 5.0V Typical Time_out at Vcc = 3.0V Number of WDT Oscillator Cycles WDP0WDP1WDP2 12 4.2.2 Các cổng vào ra 4.2.2 Các cổng vào ra (tiếp) n Có 4 cổng vào ra 8 bit PA, PB, PC, PD n Mỗi cổng đều có 3 thanh ghi (8 bit), ví dụ cổng A : n Thanh ghi dữ liệu : PORTA n Thanh ghi điều khiển hướng dữ liệ
Tài liệu liên quan