В этой статье мы научимся строить устройства подобные сигнализации.
Суть его в том, что мы используем контакт (кнопку) при размыкании которой светодиод на выходе контроллера начинает мигать. Причём при повторном замыкании контакта он продолжает мигать.
Всё осуществим при помощи 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 файл.
Запускаем симуляцию и радуемся.. При размыкании кнопки диод моргает.






