Разработка принципиальной схемы




Рис.3

 

На рис. 3 изображена принципиальная схема контроллера матричной клавиатуры. Для обеспечения синхронизации работы микропроцессора к выводам CR1, CR2 подключен кварцевый резонатор.

Десять кнопок организованы в матрицу, и при нажатии любой кнопки замыкается строка и столбец. Определив замкнутые строку и столбец, можно определить код нажатой клавиши. Такое сканирование клавиатуры реализуется программно.

Три линии порта 1 Р1.0, Р1.1, Р1.2 образуют три линии кнопок, а к выводам Р2.0, Р2.1, Р2.2, Р2.3 подключены четыре столбца. Каждая клавиша в такой матрице имеет свой номер, соответствующий ее местоположению. На цифровые клавиши можно нанести обозначения, соответствующие их кодам (от 0 по F) Резисторы R1-R4 ограничивают ток через контакты а диоды обеспечивают защиту от замыкания между собой сканирующих линий в случае одновременного нажатия более чем одной клавиши.

Питание контроллера осуществляется от сети переменного тока с напряжением

220 В и частотой 50 Гц. Поскольку напряжение питание контроллера осуществляется постоянным током с напряжением +5 В, то ставится схема питания, которая состоит из понижающего трансформатора, выпрямителя, выполненного по схеме диодного моста и стабилизатора напряжения.

3. Разработка блок-схемы и алгоритма программы

Принцип работы клавиатуры следующий:

На одну из линий порта выдается логический «0», а на остальные линии «1». Затем происходит считывание с линий столбцов. Если фиксируется «0», его позиция соответствует номеру столбца нажатой клавиши и вместе с номером текущей строки он используется для определения кода нажатой клавиши. Если на всех входах «1», процедура сканирования продолжается для следующей строки.

Для обслуживания клавиатур в МК- системах используются две процедуры: опрос состояния клавиатуры и ввод кода нажатой клавиши.

Первая процедура производит однократное обращение к матрице клавиш для определения, Нажата ли хотя бы одна из клавиш. Вторая осуществляет циклический опрос клавиатуры до тех пор, пока не будет нажата (а часто и освобождена) клавиша. Будучи встроена в основную программу, вторая процедура блокирует процесс управления объектом на время ожидания нажатия клавиши, а потому обращение к ней осуществляется только при обнаружении нажатой клавиши процедурой опроса состояния клавиатуры.

Линии порта 1 используются для сканирования, а линии порта 2 - для опроса матрицы клавиш. Каждая клавиша в такой матрице имеет свой номер, соответствующий ее местоположению. На цифровые клавиши нанесены обозначения, соответствующие их кодам (от 0 по B).

Для программного ввода информации с клавиатур характерен один недостаток, а именно - срабатывание по отпусканию клавиши, а не по нажатию. Однако при кратковременных нажатиях клавиш этот эффект не имеет особого значения.

Частная процедура сканирования служит для обнаружения нажатой клавиши и последующей ее идентификации. Процедура сводится к поочередному обнулению каждой из линий сканирования и опросу линий возврата. В порт 1 выдается байт сканирования (БС), содержащий 0 только в одном бите. Если на пересечении линии сканирования и линии возврата находится нажатая клавиша, то в соответствующем бите байта возврата (БВ), принимаемого в порт 2, будет находиться 0.

Последовательность байтов сканирования представляет собой код "бегущий нуль"; формирование очередного байта сканирования осуществляется путем сдвига его предыдущего значения. Направление сдвига определяет последовательность опроса клавиш. Если при полном цикле сканирования не было обнаружено нажатой клавиши, то процедура сканирования повторяется сначала.

Оператор "Есть нажатая клавиша?" реализуется тем, что клавиши, подключенные к каждой линии сканирования, анализируются последовательно. Если после анализа каждой клавиши осуществлять прибавление единицы к счетчику SCANCODE, то процедуру сканирования можно совместить с процедурой идентификации нажатой клавиши (рис. 4).

 

 

 
 


 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-07-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: