Программа Сервисный Центр
0

Контроль состояния 15 кнопок, подключенных к одному выводу микроконтроллера


, ноябрь 2014

Benabadji Noureddine

EDN

На страницах портала РадиоЛоцман неоднократно публиковались материалы, в которых подробно рассматривались различные методы подключения к микроконтроллеру множества кнопок при минимальном использовании его линий ввода/вывода [1-4]. В одних схемах использовались RC-цепочки, и для определения нажатия одной из кнопок требовалось измерение длительности импульсов, в других использовался аналого-цифровой преобразователь и схема резистивного делителя напряжения для каждой кнопки.

В статье мы рассмотрим еще один простой способ, позволяющий контролировать до 15 кнопок, подключенных лишь к одному выводу микроконтроллера. Единственным требованием для реализации этого метода является наличие в микроконтроллере внутреннего аналогового компаратора с функцией настройки значения опорного напряжения (VREF). Большинство 8-разрядных микроконтроллеров PIC компании Microchip имеют один или два таких компаратора.

В качестве простого и практичного примера в изображенной на Рисунке 1 схеме используется микроконтроллер PIC12F683 и 4 светодиода, в двоичном формате индицирующие номер нажатой кнопки. Кнопки подключены к выводу GP1 микроконтроллера (вход CIN- аналогового компаратора). Для тактирования микроконтроллера используется внутренний генератор.

Контроль состояния 15 кнопок, подключенных к одному выводу микроконтроллера
Рисунок 1.Подключение 15 кнопок к одному выводу микроконтроллера.

Контроль состояния кнопок выполняется в обработчике прерываний от аналогового компаратора, который вызывается при нажатии любой кнопки. В обработчике прерываний выполняется пошаговое изменение значения опорного напряжения компаратора до тех пор, пока на выходе компаратора СOUT не появится «лог. 1».

В краткой форме алгоритм можно описать следующим образом.

  • Исходное состояние: режим пониженного энергопотребления (Idle). Опорное напряжение компаратора VREF устанавливается на уровне VREF = (1/24)Vdd, напряжение VCIN- на входе компаратора CIN- равно 0 – меньше значения опорного напряжения, на выходе компаратора COUT «лог. 1».
  • В случае нажатия любой кнопки напряжение VCIN- становится больше опорного напряжения и на выходе компаратора появляется «лог. 0», что вызывает прерывание.
  • В обработчике прерывания выполняется пошаговое изменение опорного напряжения согласно выражению VREF = (i/24)Vdd, где i принимает значения от 2 до 15. Изменение опорного напряжения выполняется одновременно с проверкой условия VREF > VCIN-, и как только оно выполняется, на выходе компаратора COUT появится «лог. 1», указывающая на то, что нажата кнопка с индексом Btn(i-1). Если же опорное напряжение остается меньше входного VCIN- при значении i = 16, значит, нажата кнопка Btn15.
  • Четыре светодиода отображают двоичный номер (индекс) нажатой кнопки.
  • Исходный код программы микроконтроллера на ассемблере с подробными комментариями занимает менее 100 слов. Он легок для понимания и может использоваться на других микроконтроллерах.

    Загрузки

    Исходный код программы микроконтроллера (ассемблер) - скачать

    Дополнительные материалы

  •  «Многокнопочная клавиатура с интерфейсом 1-Wire»
  • «Чтение состояния 10 и более кнопок с помощью двух выводов микроконтроллера». РадиоЛоцман, 2013, май, стр. 50.
  • «Измерение состояния двух резистивных датчиков или нескольких переключателей с помощью одного триггера Шмитта». РадиоЛоцман, 2013, ноябрь, стр. 59.
  • «Некоторые подходы аппаратной оптимизации для микроконтроллеров PICmicro» (англ., pdf)
  • Хотите получать уведомления о выходе новых материалов на сайте?
    Подпишитесь на рассылку!

    PIC12F683 на РадиоЛоцман.Цены — от 49,90 до 105,93 руб.Исполнение: DIP8. 8BIT FLASH MCU, 12F683, DIP8; Series:PIC12F; Memory Size, Flash:3.5KB; EEPROM Size:256Byte; Memory Size, RAM:128Byte; I/O lines, No. of:6; ADC...
    Контроль состояния 15 кнопок, подключенных к одному выводу микроконтроллера
    ПоставщикПроизводительНаименованиеЦена
    ЭлитанMicrochipPIC12F683-I/SN49,90 руб.
    Каталог "Электронщик"MicrochipPIC12F683T-I/SN06250,68 руб.
    ICdaromMicrochipPIC12F683-Iот 58,95 руб.
    LifeElectronicsMicrochipPIC12F683T-E/MFQTPпо запросу
    ЭлектроПласт - ЕкатеринбургMicrochipPIC12F683T-I/SNQTPпо запросу
    Все 20 предложений от 16 поставщиков »
    Цены»Микроконтроллеры
     
     
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
     
    Обратная связь

    Наши партнеры

     

    Опросы

    Есть ли справедливость в жизни?
    Конечно есть, уверен!
    Вроде как должна быть, но...
    Затрудняюсь ответить...
    Какая справедливость? О чем Вы?
    Эх.., нет правды на свете!

     

    Облако тегов

    Требуется для просмотраFlash Player 9 или выше.

    Показать все теги
     

    Календарь публикаций

    «    Декабрь 2016    »
    ПнВтСрЧтПтСбВс
     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     

    Архив новостей

    Декабрь 2016 (12)
    Ноябрь 2016 (42)
    Октябрь 2016 (34)
    Сентябрь 2016 (38)
    Август 2016 (34)
    Июль 2016 (36)
     
    Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"