МОДЕЛИРОВАНИЕ РАБОТЫ МИКРОКОНТРОЛЛЕРА AVR С ПОМОЩЬЮ СИМУЛЯТОРА VMLAB
(лабораторная работа №5)
Цель работы.Целью лабораторной работы является отладка прикладных программ на языке Си для микроконтроллера AVR с помощью компилятора CVAVR и симулятора VMLAB.
Программа работы
1.Установите в директорию C:\CVAVR свободную версию компилятора CodeVisionAVR.В директории C:\CVAVR создайте папку z1 (задача 1) для файлов первого проекта.
Запустите компилятор. Для создания файла проекта нажимайте: Файл -> новый -> проект -> ОК -> No
- перейдите в созданную для проекта папку z1 и введите в поле "имя файла": z1
- нажмите "сохранить" - откроется окно конфигурации проекта
- перейдите на закладку "С compiler"
- выберите MK (Chip) ATmega16
- установите частоту тактирования МК (Clock) 4.0 МГц
- нажмите ОК.
Перед вами появится открытый текстовый файл Project Notes - z1.prj, в котором вы можете записывать свои замечания и мысли по проекту.
Теперь нужно создать главный для нас текстовый файл для набора исходного текста на Си - его расширение .с
- нажимайте:
Файл -> New -> Source -> ОК
появился файл untitled.c
- нажимайте:
Файл - Сохранить как
- введите в поле "имя файла": z1.c и нажмите Сохранить.
Нужно добавить созданный файл z1.c в список файлов проекта - откройте меню конфигурирования проекта: Project -> Configure.
В открывшемся диалоге, нужно выбрать ярлык "Files" и нажать кнопку "Add". В новом диалоге выберите файл "z1.c" и нажмите "Открыть". Теперь файл включен в проект.
- нажимайте: ОК
- максимизируйте (разверните) окно файла - z1.c
Теперь все готово к собственно программированию, т.е. к созданию текста программы на языке Си. Ниже в таблице подготовлен текст программы к задаче 1, реализующей следующее техническое задание: Разработать устройство на микроконтроллере ATmega16, которое будет отображать в двоичном виде горящими светодиодами 8-ми битное число, начиная с 0 и с постоянным увеличением на 1. Устройство питается постоянным стабилизированным напряжением от 4 до 5.5 вольт. Тактирование МК осуществляется от кварцевого резонатора с частотой 4 МГц. Всего подключено 8 светодиодов от ножек порта A через токоограничительные резисторы к питанию МК. Переключение светодиодов должно производиться с паузами в 65 мс.
#include <mega16.h> /* Вставить вместо этой строки текст файла mega16.h, содержащий описание регистров МК */ #define PA_OUT DDRA = 0xFF /* Заменить везде в тексте программы PA_OUT на DDRA = 0xFF */ // ++++ функция инициализации МК ++++ void initialization(void){ PA_OUT;//сделать весь PORTA выходом TCCR0 = 0x05;/* таймер включить считать, делая один отсчет каждые 1024 колебания на ножке XTAL1 */ } Char per=0; // ++++ Главная функция ++++ void main (void){ initialization(); /* Вызвать функцию инициализации МК - т.е. настройки нужных нам устройств МК в соответствии с поставленной задачей */ //Бесконечный цикл while (1){ //Делать всегда PORTA=~(per++); while (!(TIFR&0x01)); // ждем установки флага переполнения timer0 TIFR = 0x01; // очистить флаг переполнения timer0 }; //цикл закончен } //скобка для main() |
Запишите (без комментариев) программу в окно исходного текста программы. Сохраните изменения: файл -> Save All.
Для компиляции программы нажмите кнопочку "Make the project".
Загляните в папку нашего проекта - z1. В результате компиляции там появилось много новых файлов. Главные для нас:
z1.hex - файл-прошивка для "загрузки" в МК;
z1__.с - копия файла z1.c для симуляторов;
z1.cof - информация, связывающая содержимое файлов z1__.с и z1.hex. Эта информация позволяет при симуляции в VMLAB наблюдать движение программы прямо по коду на языке Си. Указанные файлы будем использовать в симуляторе VMLAB. Необходимым для реального МК является лишь файл прошивки.
Следующие четыре файла содержат нашу программу, написанную на стандартном ассемблере для AVR с привязкой к тексту на Си: z1.asm, z1.lst, z1.vec, z1.inc. Остальные файлы практически не интересны.
Дата добавления: 2016-01-09; просмотров: 1398;