Tag Archives: Регистр

Подключение клавиатуры к МК по трем проводам на сдвиговых регистрах. Часть 2. Буквенный ввод как на телефоне

Данная статья является продолжением предыдущей о подключении клавиатуры к МК с помощью трех сигнальных проводов. В этой часте я расскажу вам о том, как увеличить число кнопок на клавиатуре до 16, опишу алгоритм обработки нажатий этих кнопок и то, как ассоциировать с каждой кнопкой свою функцию. Итак, приступим.

Аппаратная часть
Как вы уже догадались, чтобы подключить дополнительные кнопки к блоку клавиатуры, нужно добавить дополнительный сдвиговый регистр, который будет захватывать нажатия других восьми кнопок. Ниже приведена блок схема этой конструкции:

Рассмотрим режим работы, когда при каждом клике ногой CLK происходит сдвиг битов влево по направлению к старшему (S0 поднята, S1 опущена). Взглянем на сдвиговый регистр U1. При каждом дрыге ногой CLK, бит, который находится на выводе Qn, перемещается на вывод Qn+1, тоесть сдвигается в сторону старшего бита (влево). Но так как биту, который находится на ноге Q7 уже некуда сдвигаться, то он по идее должен бы был пропасть. Чтобы этого не произошло, мы посылаем его на следующий сдвиговй регистр U2, подключив Q7 регистра U1 к ноге SR SER регистра U2. Объясню, что же это за нога. В рассматриваемом нами режиме работы сдвигового регистра (S0 поднята, S1 опущена) биты смещаются в cторону старшего, а на место младшего становится бит, который в данный момент находится на ноге SR SER. Так как два наших сдвиговых регистра тактируются от одного источка (микроконтроллера), то бит на ноге Q7 сдвигового регистра U1, при сдвиге не теряется, а перескакивает на сдвиговый регистр U2, где продолжает свой путь в микроконтроллер. (далее…)

Read More »

Подключение клавиатуры к МК по трем проводам на сдвиговых регистрах

Часто возникает необходимость использования в своем проекте большого количества кнопок для различный целей. Существуют разные варианты реализации данной задачи. Сегодня я расскажу вам о решении, которое пришло мне в голову однажды вечером. Тогда мне нужно было повесить клавиатуру на контроллер с ограниченным количеством свободных ножек. Скорее всего данное решение уже описывалось и использовалось где-либо ранее, но упоминаний в интернете я не нашел.

Суть
Подключение клавиатуры осуществляется по трем сигнальным проводам. Дополнительные элементы: сдвиговые регистры sn74198n и несколько резисторов. Максимальное количество кнопок ограничивается лишь максимально допустимым временем на сканирование клавиатуры. Я использовал в своем проекте 16 кнопок, но путем добавления новых сдвиговых регистров, можно увеличить данное число до необходимого вам значения. Вас будет ограничивать лишь пропорционально возрастающее время сканирования клавиатуры.

Аппаратная часть
Сдвиговые регистры – вещь довольно удобная за счет своей дешевизны и универсальности. Их часто используют для подключения светодиодов, семисегментных индикаторов и т.п. по небольшому количеству выводов микроконтроллера. В нашем случае, будем проделывать почти все тоже самое, но в обратную сторону:будем передавать данные не «из микроконтроллера», а «в него». Для наглядности привожу блок схему работы данного устройства:

  • 1.Блок Клавиатуры
  • 2.Сдвиговый регистр
  • 3.МК

Блок клавиатуры представляет собой набор кнопок, которые одним выводом подключены к земле, а другим подключаются к соответствующему входу сдвигового регистра.
(далее…)

Read More »

Управление семисегментными индикаторами по одному проводу

Часто бывает ситуация, когда надо выполнить простую задачу с которой справится даже грошовый контроллер вроде ATTiny12, но вот незадача — нужна индикация, а под какой нибудь семисегментный индикатор придется убить дофига выводов, а их всего восемь, из которых два питание, а один Reset. Можно, конечно, взять просто МК потолще, но мне больше по душе разные схемотехнические извраты. Вот и тут камрад Kalobyte подкинул ссылку на прикольную схему управления тройным (а в перспективе хоть десятерным) семисегментным индикатором по одному проводу.

Индикатор зажигается посредством сдвигового регистра 74HC164, всего таких регистров можно навесить очень много, просто соединив по цепи несколько регистров. Если отбросить RESET, то для проталкивания данных в регистр нужны две линии — Data и Clock. Путем небольшого изврата можно эти две линии обьединить в одну.
(далее…)

Read More »