Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - Стивен Барретт
Шрифт:
Интервал:
Закладка:
5.2.1. Кнопки и переключатели
На рис. 5.4,а приведена схема подключения одиночного механического переключателя к МК. Механическая часть переключателя может быть выполнена таким образом, что его замкнутое состояние удерживается только тогда, когда человек нажимает на клавишу. Такой переключатель называют кнопкой. Другие переключатели обладают свойством удерживать замкнутое и разомкнутое состояние контактов при отсутствии внешнего воздействия. Последнее потребуется лишь для того, чтобы изменить состояние переключателя с разомкнутого на замкнутое и наоборот. Такие переключатели называются переключателями с фиксацией положения или тумблерами.
a) Подключение кнопки к МК НС12
б) Подключение группы из 8 DIP-переключателей
Рис. 5.4. Примеры схем подключения механических переключателей к МК
Возвратимся к нашей схеме (рис. 5.4,а). Когда клавиша отжата, переключатель находится в разомкнутом состоянии, и на входе МК формируется высокий логический уровень сигнала. Когда клавиша нажата, переключатель замыкает контакты, вывод МК подсоединяется к потенциалу общего провода системы GND, и на входе МК формируется логический 0. Резистор R = 10 кОм ограничивает силу тока в цепи переключателя.
Если бы переключатель был идеальным, то переход потенциала вывода МК из состояния 1 в состояние 0 при нажатии клавиши происходил бы мгновенно. На самом деле это не так. Переход механического переключателя из одного состояния в другое сопровождается механическим дребезгом контактов. Эффект механического дребезга состоит в том, что при смене состояния, например, с разомкнутого на замкнутое, контакты, прежде чем перейти из установившегося разомкнутого состояния в установившееся замкнутое, многократно замыкаются и размыкаются. Тогда, установив щуп осциллографа на вход МК, мы увидим сначала высокий уровень сигнала, затем многократное нерегулярное во времени переключение с 1 на 0, и, наконец, установится низкий уровень сигнала. Частота работы МК (от единиц до сотен МГц) чрезвычайно высока по сравнению с временами переключения механических контакторов (десятки–сотни мс). Поэтому механический дребезг контакта может быть воспринят управляющей программой как его многократное переключение. Существуют аппаратные и программные методы защиты от эффекта дребезга контактов. Один из программных методов заключается в том, что после обнаружения первого изменения логического уровня сигнала программа формирует задержку на 100-200 мс. В течение этого времени дребезг контактов прекращается, и переключатель переходит в новое устойчивое состояние. Мы рассмотрим аппаратные и программные методы противодребезгвой защиты в параграфе 5.5.
5.2.2. DIP переключатели
На рис. 5.4,б показана схема, в которой мы распространили идею подключения одного механического переключателя к МК сразу на восемь переключателей. Эти микропереключатели смонтированы на заводе-производителе в корпусе, который по размерам и расположению выводов совпадает с корпусом типа DIP (Dual In-line Package) для интегральных схем. Поэтому их называют DIP-переключатели.
Каждый переключатель из блока подсоединен к отдельному выводу порта МК. Так же, как и в предыдущем случае, ток цепи каждого переключателя ограничивается резистором. Для блока из восьми переключателей потребуется восемь резисторов. Для уменьшения габаритов печатной платы изделия целесообразно использовать сборку резисторов в одном корпусе. Однако возможно использование и одиночных резисторов.
В параграфе 5.8 мы рассмотрим пример использования подобной сборки DIP-переключателей для выбора режима работы микропроцессорной системы.
5.2.3. Клавиатуры
Во многих приложениях микропроцессорные системы требуют ввода цифровой и буквенной информации. Для таких случаев могут быть использованы блоки из нескольких кнопок, которые объединены конструктивно и соединены электрически по стандартной матричной схеме. Такие блоки называют клавиатурами. На рис. 5.5 показана клавиатура из 16 клавиш, которая позволяет вводить данные в микропроцессорную систему в шестнадцатеричном коде. Изучим представленную на рис. 5.5 схему соединения МК с клавиатурой подробно.
Код на выходах PORTx[3:0] Код на входах PORTx[7:4] Нажатая клавиша 3 2 1 0 7 6 5 4 Код порта PORTx[7:0] 0 1 1 1 0 1 1 1 0 0xEE 1 1 1 1 0 1 1 0 1 0xDE 2 1 1 1 0 1 0 1 1 0xBE 3 1 1 1 0 0 1 1 1 0x7E 4 1 1 0 1 1 1 1 0 0xED 5 1 1 0 1 1 1 0 1 0xDD 6 1 1 0 1 1 0 1 1 0xBD 7 1 1 0 1 0 1 1 1 0x7D 8 1 0 1 1 1 1 1 0 0xEB 9 1 0 1 1 1 1 0 1 0xDB A 1 0 1 1 1 0 1 1 0xBB B 1 0 1 1 0 1 1 1 0x7B C 0 1 1 1 1 1 1 0 0xE7 D 0 1 1 1 1 1 0 1 0xD7 E 0 1 1 1 1 0 1 1 0xB7E F 0 1 1 1 0 1 1 1 0x77 Не нажата X X X X 1 1 1 1 0xXFРис. 5.5. Схема подключения матричной клавиатуры к МК 68HC12