Проверять состояние кнопок или выключателей достаточно просто. Достаточно подсоединить, например, кнопку одним выводом к общему проводу, а другим — ко входной линии порта ввода/вывода, настроенной для работы в режиме чтения. Также эта линия должна быть соединена через резистор сопротивлением примерно 4,7—100 кОм с проводом «+» питания. При большем сопротивлении меньше суммарный потребляемый ток.
При разомкнутых контактах, на соответствующем выводе микроконтроллера будет «1», при замыкании контактов — «0».
Все механические выключатели имеют недостаток — при работе с ними наблюдается так называемый дребезг контактов, при котором при нажатии на кнопку происходит много замыканий и размыканий контактов из-за того, что они как правило, пружинят. Длительность периода дребезга зависит от качества контактов и обычно составляет от 10 до 100 мс. Бороться с этим эффектом проще программным способом. На рис. 5.6 показаны графики, иллюстрирующие дребезг контактов, а на рис. 5.7 приведена простейшая схема с кнопкой.
Рис. 5.6. Явление «дребезг контактов»
Рис. 5.7. Подключение кнопки к микроконтроллеру
Для реализации большого числа кнопок управления используют матричную схему соединения клавиатуры. Пример подобной схемы изображен на рис. 5.8.
Рис. 5.8. Использование матричной клавиатуры
Глава 6
Практические примеры применения микроконтроллеров AVR
6.1. 10-разрядный светодиодный индикатор на AT90S1200
Данное устройство предназначено для замены ЖК-индикатора со встроенным контроллером, аналога НТ1611, применяемого в телефонных аппаратах, на светодиодный индикатор с общим катодом. При применении десяти знаков ЖК-индикатора реализуется полная совместимость с НТ1611 (за исключением режима часов и таймера). Частота мерцания индикатора близка к 100 Гц, что практически незаметно даже боковым зрением. Ток через сегмент ограничен 20 мА самим микроконтроллером, что позволяет выровнять свечение при разном количестве зажженных сегментов. При программировании контроллера есть возможность постоянно зажечь запятые в нужных разрядах и исключить неиспользуемый знак при применении 9-знакового ЖКИ (который показан на схеме).
Сигналы Clk и Data должны соответствовать питанию 5 В, т. е. логическая единица должна быть 3…5 В. После проверки правильности монтажа подаем и проверяем питание +5 В на 20-м выводе панельки под DD1. Вставляем микроконтроллер — на экране после включения питания появятся 1234567890, что записано в программе. Если нет — проверить колебания с частотой 4,000—4,005 МГц на выводе 4. При подаче внешних сигналов Clk и Data индицироваться будет входящая информация. Общее потребление — 65…250 мА. Микросхему AT90S1200-12PC можно заменить на AT90S1200-12PI, а также AT90S1200-4PC и AT90S1200-4PI. Светодиодный индикатор — AJIC318A, ТОТ — 3361 AG-1 (три штуки), от АОНа или любой другой с общим катодом, можно набрать из одиночных, сдвоенных, строенных и т. п.
Рис. 6.1.Электрическая принципиальная схема
Программа для AT90S1200: lcd.zip, находится на компакт-диске, прилагаемом к книге.
Автор: Дергаев Э. Ю., UA4NX (E-maiclass="underline" ua4nx@ezmail.ru).
6.2. Управление синтезатором частоты радиостанции «Маяк»
Данное устройство позволяет управлять частотой радиостанции «Маяк» в диапазоне 144,5—146,0 МГц. В режиме репитера и антирепитера индицируется частота передачи. Программа хранит в энергонезависимой памяти 63 частоты каналов и одну VFO, включая репитерный разнос +600 кГц, антирепитерный разнос — 600 кГц, с шагом перестройки 25 кГц. Запись частот в каждую ячейку памяти гарантируется 100 000 раз. В режиме SCAN происходит сканирование с 53-го по 63-й канал памяти, в режиме DUAL — сканирование между любым каналом памяти и VFO. При понижении напряжения источника питания на индикаторе отображаются прочерки. При выключении питания или нажатии клавиши CLOCK индикатор переходит в режим часов. Подтверждением нажатия клавиш служит короткий звуковой сигнал высокого тона.