Giới thiệu và mô phỏng thực tế chức năng vi điều khiển AVR, ATmega 16
Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 MỤC LỤC MỤC LỤC .1 Phần I: Lý thuyết .3 I. GIỚI THIỆU VỀ AVR .3 1.1. Tổng quan về AVR 3 1.1.1. Khái niệm vi điều khiển 3 1.1.3. Ưu thế của MCU AVR: .4 1.1.4. Một số dòng AVR: 4 1.2. Một số dòng AVR phổ biến: .5 II: ATMEGA16 - KIẾN TRÚC TỔNG QUAN .6 2.1. Ưu điểm: .6 2.2. Cấu trúc ATMEGA16 7 2.2.1. Sơ đồ chân .7 2.2.2. Sơ đồ khối 8 2.3.1. CPU: 10 2.3.3. Memory: 13 2.3.4. Quá trình thực thi lệnh: .14 III: Điều khiển I/O vào ra với LED đơn, LED 7 thanh và LCD .15 3.2 Giao tiếp I/O với LED 7 thanh: .16 Phần II: Bài tập .21 4.1.Bài 1: viết chương trình điều khiển quét 4 LED 7 thanh đếm 1234 dến 4567. .21 4.2 Bài 2: viết chương trình điều khiển quét 6 LED 7 thanh đếm 456789 dến 456666 .22 4.4Bài 4: viết chương trình quét 2 matrix 8*8 hiển thị chữ B và G 26 4.5.Bài 5: viết chương trình quét 2 matrix 8*8 hiển thị chữ X và Z .27 4.6.Bài 6: viết chương trình hiển thị lên LCD “well come to”, “dai hoc thanh do”, “khoa dien tu - VT”, “lop”, “CD dien tu 1-K6”, “nien khoa”, “2009 - 2012”. .29 4.7.Bài 7: viết chương trình sử dụng timer 1 tạo ra 2 xung PWM có độ rộng xung khác nhau 30 4.8.Bài 8: viết chương trình tạo PWM có độ rộng thay đổi từ 0 dến max 32 4.9.Bài 9: Viết chương trình điều khiển động cơ DC 3 mức độ khac nhau .33 Báo cáo môn Vi Điều Khiển 1 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 4.10.Bài 10: Viết chương trình mô phỏng băng truyền đếm sản phẩm sử dụng nút nhấn và hiển thị lên LCD .35 LỜI NÓI ĐẦU Ngày nay, lĩnh vực điều khiển đã được ứng dụng rộng rãi trong các thiết bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hàng ngày của con người như máy giặt, đồng hồ báo giờ… đã giúp cho đời sống cuả chúng ta ngày càng hiện đại và tiện nghi hơn. Trong số những nhà sản xuất MCU 8 bit thì Atmel đã trở nên quá quen thuộc với giới sinh viên, kỹ thuật Việt Nam. Nhóm chúng em tìm hiểu về giao tiếp I/O. Chúng em rất mong nhận được sự góp ý của Thầy và tất cả các bạn. Nhóm chúng em xin gửi lời cảm ơn đến thầy Đặng Văn Hiếu đã hướng dẫn chúng em hoàn thành bài báo cáo này. Chúng em xin trân thành cảm ơn! Báo cáo môn Vi Điều Khiển 2 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 Phần I: Lý thuyết I. GIỚI THIỆU VỀ AVR 1.1. Tổng quan về AVR 1.1.1. Khái niệm vi điều khiển Khái niệm vi điều khiển (microcontroller - MC) khá quen thuộc với những người học CNTT, điện tử, điều khiển tự động cũng như cơ điện tử… Nó là một trong những IC thích hợp nhất để thay thế các IC số trong việc thiết kế mạch logic. Ngày nay cũng có các MC tích hợp đủ các chức năng của mạch logic. Nói như vậy không có nghĩa là các IC số cũng như các IC mạch số lập trình được khác như PLC… không cần dùng nữa. MC cũng có những hạn chế mà rõ ràng hơn là tốt độ chậm hơn các mạch logic. MC cũng là 1 máy tính - máy tính nhúng vì nó có đầy đủ chức năng của một máy tính. Có CPU, bộ nhớ chương trình, bộ nhớ dữ liệu, có I/O và các bus trao đổi giữ liệu. 1.1.2. Giới thiệu về AVR + AVR là một họ vi điều khiển do hãng Atmel sản xuất. Atmel cung cấp các vi điều khiển phổ biến như 8051, AT91 ARM7, Atmel AVR 8-bit RISC, và mới đây là DSP dual-CPU AT57. Atmel AVR32 là một vi điều khiển lai DSP với 7 tầng pipeline và khả năng thực thi song song AVR là chip vi điều khiển 8 bits với cấu trúc tập lệnh đơn giản hóa- RISC(Reduced Instruction Set Computer), một kiểu cấu trúc đang thể hiện ưu thế trong các bộ xử lí. + Hình vẽ: Báo cáo môn Vi Điều Khiển 3 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 1.1.3. Ưu thế của MCU AVR: + Kết nối phần cứng cho AVR đơn giản với những linh kiện thông dụng như điện trở, tụ điện, thạch anh. Dòng ra điều khiển Port lớn và không cần dùng điện trở kéo. + Thiết kế mạch nạp cho AVR khá đơn giản giao tiếp qua cổng LPT, COM, USB. Hỗ trợ ISP lập trình trực tiếp trên mạch. + Hỗ trợ lập trình trên nền ngôn ngữ ASM, C với nhiều công cụ hỗ trợ như CodeVision, AVR Studio. + Hầu hết các chip AVR có những tính năng (features) sau: + Xung External OSC lên đến 16Mhz và Internal OSC 8Mhz. + Bộ nhớ chương trình Flash có thể lập trình lại rất nhiều lần và dung lượng lớn có thể ghi và xóa trên 1000 lần. Bên cạnh đó bộ nhớ EEPROM có thể lập trình được. + 32 Port xuất nhập. + 8 bits, 16 bits timer/counter tích hợp PWM. + Các bộ chuyển đối Analog – Digital phân giải 10 bits + Analog comparator. + Giao diện nối tiếp USART (tương thích chuẩn nối tiếp RS-232). + Giao diện nối tiếp Two –Wire –Serial (tương thích chuẩn I2C) Master và Slaver + Giao diện nối tiếp Serial Peripheral Interface (SPI). 1.1.4. Một số dòng AVR: Nhìn chung AVR có các dòng chính sau: * tinyAVR - the ATtiny series + 1–8 kB bộ nhớ chương trình + 6–32 chân + Limited peripheral set * megaAVR - the ATmega series Báo cáo môn Vi Điều Khiển 4 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 + 4–256 kB bộ nhớ chương trình + 28–100 chân + Extensive peripheral set * XMEGA — the ATxmega series + 16–384 kB bộ nhớ chương trình + 44–64–100 chân 1.2. Một số dòng AVR phổ biến: + AT90S1200 + AT90S2313 + AT90S2323 and AT90S2343 + AT90S2333 and AT90S4433 + AT90S4414 and AT90S8515 + AT90S4434 and AT90S8535 + AT90C8534 + ATtiny10, ATtiny11 and ATtiny12 + ATtiny15 + ATtiny22 + ATtiny26 + ATtiny28 + ATmega8/8515/8535 + ATmega16 + ATmega161 + ATmega162 + ATmega163 + ATmega169 + ATmega32 Báo cáo môn Vi Điều Khiển 5 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 + ATmega323 + ATmega103 + ATmega64/128/2560/2561 II: ATMEGA16 - KIẾN TRÚC TỔNG QUAN 2.1. Ưu điểm: + Tốc độ xử lý cao, tiêu thụ điện năng thấp + Kiến trúc 131 tập lệnh thưc thi hầu hết trong mỗi chu kỳ xung clock + 32x8 thanh ghi đa dụng + Đạt tốc độ tối đa 16MIPS ở 16Mhz xung clock + Dung lượng bộ nhớ: 16Kb Flash, 512 EEPROM, 1kb Internal SRAm + Khả năng ghi và xóa có thể đạt đến 10000 lần, lưu trữ trong thời gian dài trên 20 năm/85 o C-100 năm 25 o C. + Giao tiếp chuẩn JTAG hỗ trợ debug, Lock, Fuse bit + 2 bộ Timer 16 bit, 1 bộ timer 16 bit + 4 kênh PWM + 8 kênh ADC 10 bit + 32 port xuất nhập + Hỗ trợ gioa tiếp I2C, USART, SPI + Hoạt động tốt ở hiệu điện thế 4.5-5.5 . Báo cáo môn Vi Điều Khiển 6 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 2.2. Cấu trúc ATMEGA16 2.2.1. Sơ đồ chân - Chân 1 đến 8 : Cổng nhập xuất dữ liệu song song B ( PORTB ) nó có thể đc sử dụng cácchức năng đặc biệt thay vì nhập xuất dữ liệu- Chân 9 : RESET để đưa chip về trạng thái ban đầu- Chân 10 : VCC cấp nguồn nuôi cho vi điều khiển- Chân 11,31 : GND 2 chân này đc nối với nhau và nối đất- Chân 12,13 : 2 chân XTAL2 và XTAL1 dùng để đưa xung nhịp từ bên ngoài vào chip- Chân 14 đến 21 : Cổng nhập xuất dữ liệu song song D ( PORTD ) nó có thể đc sử dụngcác chức năng đặc biệt thay vì nhập xuất dữ liệu- Chân 22 đến 29 : Cổng nhập xuất dữ liệu song song C ( PORTC ) nó có thể đc sử dụngcác chức năng đặc biệt thay vì nhập xuất dữ liệu- Chân 30 : AVCC cấp điện áp so sánh cho bộ ADC- Chân 32 : AREF điện áp so sánh tín hiệu vào ADC- Chân 33 đến 40 : Cổng vào ra dữ Báo cáo môn Vi Điều Khiển 7 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 liệu song song A ( PORTA ) ngoài ra nó còn đc tíchhợp bộ chuyển đổi tín hiệu tương tự sang tín hiệu số ADC ( analog to digital converter). 2.2.2. Sơ đồ khối Báo cáo môn Vi Điều Khiển 8 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 2.2.3. Các Port xuất nhập: a. PORT A: + Port A là bên cạnh là Port xuất nhập thông thường 8 bit còn được thiết kế cho bộ ADC chuyển đổi tương tự số. Port A thiết kế với điện trở nội treo lên ở mức cao. b. PORT B: + Là port xuất nhập thông thường 8 bit. c. PORT C: + Là port xuất nhập thông thường 8 bit. Bên cạnh đó Port C còn có một số chân giao tiếp JTAG PC5-TDI, PC3-TMS, PC2 –TCK. d. PORT D: + Là port xuất nhập thông thường 8 bit. • Các chân khác: + VCC, AVCC, AREF, XTAL1, XTAL2, RESET Báo cáo môn Vi Điều Khiển 9 Khoa Điện Tử - viễn thông Lớp CĐĐT1 - K6 2.3. Các khối chính: 2.3.1. CPU: + AVR có cấu trúc Harvard, trong đó đường truyền cho bộ nhớ dữ liệu (data memory bus) và đường truyền cho bộ nhớ chương trình (program memory bus) được tách riêng. Data memory bus chỉ có 8 bit và được kết nối với hầu hết các thiết bị ngoại vi, với register file. Trong khi đó program memory bus có độ rộng 16 bits và chỉ phục vụ cho instruction registers. a. ALU: + ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán được thực hiện trong một chu kỳ xung clock. Hoạt động của ALU được chia làm 3 loại: đại số, logic và theo bit. b. Thanh ghi trạng thái: + Đây là thanh ghi 8 bit lưu trữ trạng thái của ALU sau các phép tính số học và logic. Báo cáo môn Vi Điều Khiển 10 . dữ liệu bao gồm 32 thanh General Purpose Rgegister – GPR. Tất cả các thanh ghi này đều là các thanh ghi 8 bits. Tất cả các chip trong họ AVR đều bao gồm. ADC chuyển đổi tương tự số. Port A thiết kế với điện trở nội treo lên ở mức cao. b. PORT B: + Là port xuất nhập thông thường 8 bit. c. PORT C: + Là port