В этой статье мы научимся строить устройства подобные сигнализации.
Суть его в том, что мы используем контакт (кнопку) при размыкании которой светодиод на выходе контроллера начинает мигать. Причём при повторном замыкании контакта он продолжает мигать.
Всё осуществим при помощи AVRCodeVision и ISIS.
Откроем AVRCodeVision, создадим проект и введём такую программу.
#include <mega8.h> //Включаем библиотеку для работы с микроконтроллером ATMega8 #include <delay.h> void main(void){ // настройка Port B PORTB=0xFF; //вкл. подтягивающие резисторы DDRB=0x00; // весь порт как вход // настройка Port D PORTD=0x00; //откл. подтягивающие резисторы DDRD=0xFF; // весь порт как выход // ждём когда кнопка разомкнётся while(PINB.0==0) { } while(1) // бесконечный цикл мигания диода { PORTD.0=1; delay_ms(100); PORTD.0=0; delay_ms(100); } }
Откомпилируем пример (думаю из комментариев всё ясно) и перейдём в Proteus для симуляции.
Обратите внимание что кнопка изначально замкнута!!
Как видите мы используем порт B как вход, а порт D — как выход. принимаем сигнал размыкания на PB0, а отправляем на — PD0.
Кликаем 2 раза по микроконтроллеру и выбираем откомпилированный hex файл.
Запускаем симуляцию и радуемся.. При размыкании кнопки диод моргает.