Для всего нижеизложенного нам понадобится:
- CodeVisionAvr — для компиляции программы контролера
- Proteus — для симуляции
Если у вас нет этих программ лучше скачайте именно их. В других всё может кардинально отличатся.
Немного для понимания процесса.
Тут вы не найдёте теоретических сведений о контроллерах и правильном их программировании. Это всего навсего хелловорд в мире контроллеров.
Мы запрограммируем контроллер, который будет мигать диодом по заданной программе.
Схема:
Как вы видите программировать будем контроллер AtMega8.
Откройте CodeVision и создайте новый проект.
Добавьте к проекту исходный файл Си.
Добавьте в него заголовочные файлы:
#include <mega8.h> //Включаем библиотеку для работы с микроконтроллером ATMega8 #include <delay.h> //Включаем библиотеку для организации задержек
Теперь будем заполнять основную функцию:
void main(void){ /// код здесь }
Первые строки программы.
В AtMega8 есть порты B,C и D. Работа с ними аналогична.
Что такое порт? Это нечто вроде коробки выходов. Мы можем программно задавать значения на выходах порта.
int i; // переменная для отсчёта миганий PORTD=0x00; //Выставляем все выходы порта D в 0 DDRD=0xFF; //Делаем порт D выходом
Теперь собственно действия. Будем мигать светодиодом 5 раз с задержкой 100мс, после чего ожидаем секунду (1000мс) и повторяем процесс.
while (1) { for(i=0;i<5;i++) { PORTD.0 = 1; // включаем порт 0 delay_ms(100); // ждём PORTD.0 = 0; // выключаем delay_ms(100); /// опять ждём } delay_ms(1000); // ждём секунду };
Теперь практически всё готово. Идём в меню Project — Build
Ошибок быть не должно.
В папке с проектом теперь появится hex файл. Он то нам и нужен.
Откройте ISIS, соберите схему как на рисунке выше. После чего кликните дважды по контроллеру. Появится окно:
В нём необходимо указать «Program file» — путь к hex.
Теперь всё готово. Можно смело жать «плей» и наслаждаться симуляцией.