Микроконтроллеры AVR
Лабораторная работа № 2
Программирование процедур управления с помощью CodeWizardAVR
1. Цель работы
Изучить и практически исследовать методику разработки управляющих программ для микроконтроллеров семейства AVR с помощью автоматического генератора программ CodeWizardAVR.
2. Основные теоретические сведения
Для облегчения разработчику написания программ устройств с микроконтроллерами семейства AVR в интегрированной среде CodeVisionAVR имеется специальное средство, называемое Автоматическим генератором программ - CodeWizardAVR.
CodeWizardAVRпозволяет по заданию разработчика сгенерировать весь необходимый код для выполнения таких функций, как:
· сброс и исходная идентификация микроконтроллера;
· инициализация портов ввода/вывода;
· инициализация внешних прерываний;
· инициализация таймеров/счетчиков;
· инициализация сторожевого таймера Watchdog;
· инициализация UART (USART);
· инициализация аналогового компаратора;
· инициализация АЦП;
· инициализация интерфейсов SPI, I2C, 1-Wire;
· инициализация LCD- модуля.
При создании нового проекта разработчику будет сразу предложено использовать Автоматический генератор программ CodeWizardAVR (при выполнении команды File > New (Файл > Новый)). Кроме того, CodeWizardAVR можно запустить на любом этапе работы над проектом при помощи команды Tools > CodeWizardAVR (Инструменты > CodeWizardAVR).
3. Порядок выполнения работы
Рассмотрим методику работы с CodeWizardAVR на примерах разработки программ простейших микроконтроллерных устройств.
3.1. Разработка устройства управления светодиодом от кнопки
Необходимо разработать программу МКУ на базе микроконтроллера ATmega16, которое управляет светодиодом с помощью кнопки. Принципиальная схема МКУ (при моделировании в среде Proteus) приведена на рис. 1.
Рис. 1. Принципиальная схема МКУ управления светодиодом
После включения питания и разомкнутом контакте кнопки SB1 светодиод VD1 не горит. При нажатии на кнопку SB1 (замыкании ее контакта) светодиод горит. При отпускании кнопки светодиод опять гаснет. Для упрощения задачи будем считать, что дребезг контакта кнопки отсутствует.
3.1.1. Запустите программу CodeVisionAVR с помощью ярлычка на рабочем столе компьютера.
Создайте новый проект, для чего выберите команду из меню File > New (Файл > Новый). В появившемся диалоговом окне Create New File (Создать новый файл) выберите тип (File Type) создаваемого файла – Project (Проект) и щелкните по кнопке ОК.
После этого появится диалоговое окно Confirm (Подтверждение), в котором будет предложено для создания нового проекта использовать CodeWizardAVR (Автоматический генератор программ). Щелкните по кнопке Yes (Да).
Далее на экране появится окно CodeWizardAVR, в котором запрашивается тип используемого в проекте микроконтроллера (AVR Chip Type). Выберите строку с типом ATmega и нажмите кнопку OK.
3.1.2. При запуске Автоматического программного генератора на экране появится окно CodeWizardAVR с новым проектом, который по умолчанию будет назван untitled.cwp.
В верхней части окна находится строка меню, а под ней строка панели инструментов. Строка меню позволяет выбрать команды из различных меню.
В левой части окна CodeWizardAVR находится набор различных закладок. Закладки позволяют выбрать и задать соответствующие опции того или иного периферийного устройства. В соответствии с этими настройками CodeWizardAVR сгенерирует соответствующий код.
В правой части экрана располагается окно Program Preview (предварительного просмотра программы), которое позволяет просмотреть код, сгенерированный CodeWizardAVR.
3.1.3. В окне CodeWizardAVR на закладке Chip (Чип) выберите микроконтроллер ATmega16 и установите тактовую частоту 8,000000 МГц. Остальные настройки на этой закладке оставьте без изменения.
Далее перейдите на закладку Ports (Порты). На закладке Port B (Порт В) сконфигурируйте 1-й бит порта (Bit 1) как вход (In). Установите подтягивающий резистор на этом входе, что обозначается буквой P для этого бита. Остальные биты порта В оставьте без изменения, так как они не используются в данном примере.
На закладке Port D (Порт D) сконфигурируйте 1-й бит порта (Bit 1) как выход (Out). Установите на его выходе начальное значение 1. Это необходимо, чтобы после запуска программы на 1-й линии порта D был высокий уровень, поэтому диод VD1 светиться не будет. Остальные биты порта D можно оставить без изменения.
Остальные периферийные устройства в данном проекте не участвуют, поэтому оставьте их установленными по умолчанию.
3.1.4. Теперь все готово для генерации кода. С этой целью выберите пункт меню Program. В раскрывшемся списке уберите «галочку» со строки “Generate Code for Disabled Peripherals” (Генерировать код для неиспользованной периферии). Это сделает программу более компактной и удобной для анализа. Затем выберите из списка команду Generate, Save and Exit (Генерировать, сохранить и выйти) и щелкните мышью.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.