atmega16
Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu LỜI GIỚI THIỆU .3 Chương 1 5 GIỚI THIỆU AVR MCU ATMEL 5 1.1. Tổng quan về AVR .5 1. 1.1 Giới thiệu .5 1.1.2. Ưu thế của MCU AVR .5 1.1.3. Một số dòng AVR .6 1.2. Một số dòng AVR phổ biến .7 ATMEGA16 – KIẾN TRÚC TỔNG QUAN 9 2.1 Ưu điểm .9 2.2. Kiến trúc 9 2.2.1.Sơ đồ chân 9 2.2.2. Sơ đồ khối 10 2.2.3. Chức năng các chân .10 2.3. Các khối chính .12 2.3.2. Con trỏ ngăn xếp SP: 14 2.3.3. Memory .15 2.3.4. Quá trình thực thi lệnh: .17 Chương 3 18 GIAO TIẾP I2C .18 3.1. Khái quát về I2C 18 3.1.1. Ích lợi cho người thiết kế I2C BUS và Sản xuất 20 3.1.2. Lợi ích cho người thiết kế 21 3.1.3. Lợi ích trong sản suất .22 3.1.4. Giới thiệu đặc điểm kỹ thuật của I2C - Bus .22 3.1.5. Khái niệm về I2C-Bus .23 3.1.6. Tính chất chung I2C Bus .25 3.1.7. Sự truyền bit 26 3.1.8. Truyền dữ liệu 28 3.1.9. Sự phân xử và sự khởi tạo xung nhịp 29 3.2. TWI trên AVR .33 3.2.1. Thanh ghi .33 3.2.2. Hoạt động của TWI: .37 3.3. Bài tập vận dụng I2C trên AVR 44 Bài tập lớn môn Vi điều khiển 1 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu 3.3.1.code 44 3.3.2.Mô phỏng .45 Chương 4 46 BÀI TẬP VẬN DỤNG 46 4.1. Thư viện _7_seg.h .46 4.1.1. code .46 4.1.2. Giải thích code .47 4.2. Bài 1 48 4.2.1. code .48 4.2.2. Giải thích code .48 4.3. Bài 2 49 4.3.1. code .49 4.3.2. Giải thích code .49 4.4. Bài 3 49 4.4.1. Code .49 4.4.2. Giải thích code .50 4.4.3. mô phỏng .50 4.5. Bài 4 50 4.5.1. Code 50 4.5.2. Giải thích code 51 4.5.3. Mô phỏng 53 4.6. Bài 5 53 4.6.1. Code .53 4.6.2. Giải thích Code .54 4.6.3. Mô phỏng .54 4.7. Bài 6 54 4.7.1. Code .54 4.7.2. Giải thích code .55 4.7.3. Mô phỏng .56 4.8.Bài 7 .56 4.8.1.Code 56 4.8.2.Giải thích code 57 4.8.3.Mô phỏng .59 4.9. Bài 8 59 Bài tập lớn môn Vi điều khiển 2 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu 4.9.1. Code .59 4.9.2. Giải thích code .60 4.9.3. Mô phỏng .60 4.10. Bài 9 60 4.10.1. Code .60 4.10.2. Giải thích code .61 4.10.3. Mô phỏng .62 4.11.Bài 10 .62 4.11.1 Code 62 4.11.1 Giải thích code 64 4.11.3. Mô phỏng .64 LỜI GIỚI THIỆU Từ khi công nghệ chế tạo loại vi mạch lập trình ra đời đã đem đến các kỹ thuật điều khiển hiện đại có nhiều ưu điểm hơn so với việc sử dụng các mạch điều khiển lắp ráp bằng các linh kiện rời như kích thước nhỏ, giá thành rẻ, độ làm việc tin cậy, công suất tiêu thụ nhỏ. Hàng loạt nhà sản xuất MCU ra đời như Atmel, Philip, Motorola với hàng loạt chip với nhiều tính năng vô cùng phong phú và đa dạng. 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 Bài tập lớn môn Vi điều khiển 3 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu 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 đề tài về MCU AVR. Một trong những MCU được sử dụng rất rộng rãi trong kỹ thuật điều khiển. Vì kiến thức có hạn nên trong nội dung đề tài chắc chắn không tránh khỏi thiếu sót. Nhóm chúng em xin gửi lời cám ơn đến thầy Đặng Văn Hiếu và sẽ cố gắng hoàn thiện trong những lần báo cáo sau. Bài tập lớn môn Vi điều khiển 4 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu Chương 1 GIỚI THIỆU AVR MCU ATMEL 1.1. Tổng quan về AVR 1. 1.1 Giới thiệu 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 1.1. Hình ảnh chip AVR. 1.1.2. Ư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ài tập lớn môn Vi điều khiển 5 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu • 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.3. 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. • Hạn chế các thiết bị ngoại vi. MegaAVR - the ATmega series: • 4–256 kB bọ nhớ chương trình. • 28–100- Chân. • Mở rộng tập lệnh, phục vụ các chương trình lớn hơn. • Cho phép mở rộng các ngoại vi. XMEGA - the ATxmega series • 6–384 kB Bộ nhớ chương trình. • 44–64–100 chân (A4, A3, A1) • Mở rộng việc thực hiện các tính năng, chẳng hạn như DMA, "Sự kiện hệ thống", và hỗ trợ mật mã. Bài tập lớn môn Vi điều khiển 6 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu • Mở rộng thiết bị ngoại vi với DACs. Application specific AVR • MegaAVRs với các tính năng đặc biệt mà không tìm thấy được trên các thành viên khác của gia đình AVR, chẳng hạn như điều khiển màn hình LCD, bộ điều khiển USB, PWM tiên tiến, CAN. 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 - ATmega323 - ATmega103 - ATmega64/128/2560/25 Bài tập lớn môn Vi điều khiển 7 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu Bài tập lớn môn Vi điều khiển 8 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu Chương 2 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ợ giao tiếp I2C, USART, SPI. - Hoạt động tốt ở hiệu điện thế 4.5-5.5 . 2.2. Kiến trúc 2.2.1.Sơ đồ chân Hình 2.1. Sơ đồ chân chip ATMEGA 16. Bài tập lớn môn Vi điều khiển 9 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu 2.2.2. Sơ đồ khối Hình 2.2. Sơ đồ khối chip ATMEGA 16. 2.2.3. Chức năng các chân - GND: chân nối mass. - VCC: Điện áp nguồn Bài tập lớn môn Vi điều khiển 10 . lời cám ơn đến thầy Đặng Văn Hiếu và sẽ cố gắng hoàn thiện trong những lần báo cáo sau. Bài tập lớn môn Vi điều khiển 4 Khoa: CNKT Điện tử - Viễn thông. khiển 3 Khoa: CNKT Điện tử - Viễn thông GVHD: Đặng Văn Hiếu 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