В это примере подключим и научимся обрабатывать события нажатия кнопок при помощи контроллера AVR. Другими словами мониторить состояние кнопок, и при каких либо изменениях делать что либо. К примеру включать выключать нагрузку, настаивать таймер или настаивать время и т.д. да все что угодно.
подсоединение кнопки к контроллеру AVR
Итак ближе к делу! Те выводы на которые мы вешаем кнопку устанавливаем на вход. Для того чтобы это изготовить мы должны записать в DDRx (где x это номер порта A, B, C и т. д. ) соответствующее значение. Если пишем «0» то вывод будет работать на вход если же «!» то как как выход.
Ниже представлен код прошивки опроса кнопки под микроконтроллер который проверяет состояние кнопки и включает и выключает светоизлучающий диод.
Код прошивки опроса состояния кнопки
#ifndef F_CPU #define F_CPU 1000000UL // 1 MHz clock speed #endif #includevoid main(void) { PORTB=0x02; DDRB=0x01; while (1) { if(PINB.1==0) { PORTB.0=1; delay_ms(100); PORTB.0=0; delay_ms(100); } }; }
#ifndef F_CPU #define F_CPU 1000000UL // 1 MHz clock speed #endif #includevoid main(void) { PORTB=0x02; DDRB=0x01; while (1) { if(PINB.1==0) { PORTB.0=1; delay_ms(100); PORTB.0=0; delay_ms(100); } }; }
Схема подключения кнопки к контроллеру

Как видно из схемы на вывод PB1 мы присоединяем кнопку, а на вывод PB0 мы присоединяем светоизлучающий диод D1 через сопротивление R1 которое уменьшает протекающий ток.
При нажатии на кнопку меняется состояние вывода PB1 оно становится равным логическому «0» и у нас загорается светоизлучающий диод.
К входной ножке необходимо подсоединить подтягивающий сопротивление. У входа МК очень большое сопротивление, поэтому даже при незначительных микротоках в следствии помех. На ноже МК будет то появлятся то исчезать логическая 1. И для того чтобы этого избежать мы и вешаем на эту ножку сопротивление.
Комментарии (0)