Однопроводный интерфейс клавиатуры для микроконтроллера

В большинстве клавиатур нажатие клавиши замыкает контакт, соединяющий две линии матрицы XY. Если для обнаружения замыкания контакта используется микроконтроллер, проверка состояния (X+Y) линий требует такого же количество портов ввода/вывода. Схема на Рисунке 1, занимающая только один свободный контакт ввода/вывода, взаимодействует с микроконтроллером, генерируя один импульс каждый раз, когда происходит нажатие клавиши. Ширина импульса пропорциональна номеру нажатой клавиши, и микроконтроллер определяет нажатую клавишу, измеряя ширину импульса.

Вебинар «Необычное в обычном. Сравнительный анализ современных решений Recom» (27.01.2022)

Две микросхемы образуют клавиатуру с ШИМ-интерфейсом, требующим лишь одного входного вывода микроконтроллера.
Рисунок 1. Две микросхемы образуют клавиатуру с ШИМ-интерфейсом, требующим лишь одного
входного вывода микроконтроллера.

Микросхема IC2 типа LMC555 – КМОП версия популярного таймера 555 – работает как моностабильный мультивибратор. Когда схема находится в состоянии покоя, внутренний транзистор на выводе 7 шунтирует конденсатор C6, и выход таймера (вывод 3) остается в состоянии «лог. 0». Нажатие любой клавиши на клавиатуре соединяет два резистора из двух групп – R1 и R2 в одной группе и R3, R4 и R5 в другой – последовательно с R6. Сумма сопротивлений двух резисторов изменяется с шагом 10 кОм, а общее сопротивление пропорционально номеру нажатой клавиши.

При нажатии любой клавиши ток идет через резисторы R6, R7 и выбранные резисторы клавиатуры и увеличивает напряжение на выводе 7 микросхемы IC2. После того, как конденсатор C1 зарядится с небольшой задержкой, достаточной для устранения дребезга контактов клавиатуры при замыкании, КМОП компаратор IC1 обнаруживает небольшое падение напряжения на резисторе R7. Уровень выходного сигнала микросхемы IC1 (вывод 6) изменяется с 5 В до 0 В, и этот перепад запускает микросхему IC2 по входу 2. Выходное напряжение таймера IC2 (вывод 3) становится высоким и начинает заряжать конденсатор C6 с постоянной времени, зависящей от выбранной клавиши. Когда напряжение на конденсаторе достигает двух третей VCC, или 3.333 В, уровень напряжения на выводе 3 становится низким, и конденсатор C6 разряжается. Ширина T выходного импульса микросхемы IC2 рассчитывается по формуле:

T = 1.1 × RS × C6,

где RS равно сумме сопротивлений выбранных резисторов клавиатуры и находится в диапазоне от 10 до 120 кОм. Ширина импульса изменяется от 110 до 1320 мкс с шагом 110 мкс.

Наименьшее относительное изменение ширины импульса происходит при наибольшем соотношении длительностей импульсов, которое равно 110/1320 или 8.33%. Это соотношение обеспечивает достаточный запас, позволяющий использовать компоненты со стандартными допусками ±1% или лучшие (компоненты схемы на Рисунке 1 имеют допуски ±0.5% и ±1%). Резисторы R13 и R14 компенсируют разброс сопротивлений внутренних делителей напряжения IC2, устанавливая напряжение на выводе 5 равным двум третям напряжения питания VCC.

Выходной импульс схемы клавиатуры управляет входом внешних прерываний (RA2) микроконтроллера PIC16F630. Процедура обработки прерываний микроконтроллера PIC16F630 измеряет ширину импульса, проверяет, находится ли его допуск в пределах ±40 мкс, и возвращает числовое значение от 1 до 12, соответствующее нажатой клавише. В качестве защиты от ошибочных данных процедура возвращает код ошибки, если ширина импульса выходит за установленные пределы.

  1. Datasheet Texas Instruments LMC555
  2. Datasheet Texas Instruments LMC7211-N

ООО «Мегател», ИНН 3666086782, ОГРН 1033600037020

Добавить свое объявление

* заполните обязательные данные

Статистика eFaster:

посетило сегодня 26
сейчас смотрят 12
представлено поставщиков 1573
загружено
позиций
25 067 862