C ấu trúc cơ bản của vi điều khiển AVR được thể hiện ở hình 4.2.
4.3.1. Giới thiệu phần mềm CodeVisionAVR:
Trình biên dịch CodeVisionAVR là một trong rất nhiều trình biên dịch C hỗ trợ cho vi
điều khiển AVR của Atmel. Không như các trình biên dịch khác được điều chỉnh cho phù hợp với tập lệnh AVR, CodeVisionAVR được viết chỉ dành riêng cho AVR. Do đó, chương trình tạo ra bởi CodeVisionAVR luôn có sự chính xác cao và không bỏ phí bất kỳ
chức năng nào của AVR. So với các trình biên dịch khác, CodeVisionAVR tạo ra đoạn mã có dung lượng nhỏ hơn nhưng hiệu quả hơn. Hơn nữa, CodeVisionAVR có thành phần CodeWizard – một công cụ hỗ trợ tạo code vô cùng hiệu quảđổi với người lập trình.
CodeVisionAVR bao gồm gần như toàn bộ các thành phần của ngôn ngữ ANSI C có thể dùng trong cấu trúc AVR. Chương trình còn tích hợp thêm vài chức năng khác để hỗ
CodeVision hỗ trợ chương trình nạp trực tiếp cho vi điều khiển AVR theo tiêu chuẩn SPI, qua cổng COM, I2C, cổng máy in và cổng USB. Chức năng Terminal cho phép người lập trình có thể thực hiện việc giao tiếp giữa máy tính với vi điều khiển qua cổng COM.
Trong các thư viện sẵn có của CodeVision, ngoài các thư viện chuẩn của ngôn ngữ C, còn có các thư viện hỗ trợđặc biệt như sau:
- Module LCD kiểu kí tự. - Giao tiếp I2C của Phillips.
- Cảm biến nhiệt LM75 của National Semiconductor.
- Các IC Phillips PCF8563, PCF8583, Dallas DS1302 và đồng hồ thời gian thực DS1307.
- Giao tiếp 1 dây của Dallas.
- Cảm biến nhiệt DS1802 / DS18S02. - Thermometer / Thermostat DS1621. - EEPROM DS2430 và DS2433. - SPI. - Quản lý nguồn năng lượng. - Delay. - Chuyển đổi mã Grey.
CodeVision còn có chức năng tự động tạo mã chương trình (Code Wizard), cho phép tạo ra các chương trình con với các chức năng đặc biệt, giúp người lập trình tiết kiệm thời gian và có được những đoạn chương trình con có độ chính xác và chuẩn mực cao. Các chức năng được hỗ trợ gồm có:
- Khởi tạo ngõ vào/ra. - Khởi tạo ngắt ngoài. - Khởi tạo Timer/Counter. - Khởi tạo Watchdog Timer. - Thiết lập truyền dữ liệu USART. - So sánh analog.
- ADC.
- Giao tiếp SPI.
- I2C, cảm biến LM75,… - Giao tiếp 1 dây (1 wire).
- LCD.