Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРС_ПКИМС_ПЛИС.doc
Скачиваний:
35
Добавлен:
05.06.2015
Размер:
1.85 Mб
Скачать

D0D1D2D3

L1

L0 БИС

Дешифратора

CLK

Q[3..0]

Тактовый сигнал

Рис. 4.1.1. Типовая структурная схема включения дешифратора клавиатуры.

Матричная организации клавиатуры за счёт пространственно – временного разделения сигналов позволяет при минимальном количестве выводов БИС дешифратора обеспечить достаточно быстрый ввод сигналов.

Так для обеспечения работы с клавиатурой содержащей М строк и N столбцов кнопок (всего М N кнопок), потребуется М+ N выводов БИС дешифратора.

На примере, приведённом на рисунке 4.1.1. продемонстрирована работа дешифратора совместно с клавиатурой, содержащей восемь кнопок, образующих матрицу 24. Алгоритм работы дешифратора выглядит следующим образом.

На каждом такте своей работы БИС дешифратора последовательно выдаёт высокий уровень сигнала на линии столбцов L0 и L1. Одновременно происходит анализ входных сигналов на входах D[4..0]. При нажатии кнопки клавиатуры происходит электрическое замыкание между шиной столбца и шиной строки. При подаче сигнала высокого уровня на выходL0 можно идентифицировать нажатие кнопок А1, А2, А3, А4. А при подаче сигнала высокого уровня на выходL1 соответственно - нажатие кнопок А5, А6, А7, А8.

Считается, что одновременно может быть нажата только одна кнопка клавиатуры.

Ниже приведено описание БИС дешифратора клавиатуры на языке AHDL.

SUBDESIGN KLAV24

( CLK , D[3..0]:INPUT;

L[1..0],Q[3..0]:OUTPUT;

)

Variable

RG[1..0]: DFF;

BEGIN

RG[].CLK=CLK;

CASE RG[].Q IS

WHEN B"10" => RG[].D = B"01";

WHEN OTHERS => RG[].D=RG[].Q+1;

END CASE;

L[]=RG[].Q;

TABLE

L[], D[] => Q[];

B"01", B"0000"=> B"0000";

B"01", B"0001"=> B"0001";

B"01", B"0010"=> B"0010";

B"01", B"0100"=> B"0011";

B"01", B"1000"=> B"0100";

B"10", B"0000"=> B"0000";

B"10", B"0001"=> B"0101";

B"10", B"0010"=> B"0110";

B"10", B"0100"=> B"0111";

B"10", B"1000"=> B"1000";

END TABLE;

END;

Представленное описание схемы содержит входные сигналы CLK, D[3..0] и выходные сигналы L[1..0],Q[3..0]:. Для организации последовательной подачи сигналов на выходы L1 и L2 в состав схемы введен счетчик на триггерах RG[1..0]. Счетчик работает в режиме ограничения счета и считает от 1 до 2. Процесс соответствующего перехода при счёте организован с помощью оператора CASE.

Анализ вариантов нажатия клавиш и выдача соответствующих кодов символов выполняется с помощью оператора TABLE. Если не нажата ни одна кнопок – выдаётся код «0000».

Временная диаграмма работы дешифратора клавиатуры, полученная в результате моделирования, представлена на рис 4.1.2.

Рис 4.1.2. Временная диаграмма работы дешифратора клавиатуры.

В рассмотренном примере дешифратора клавиатуры не отражены вопросы «дребезга контактов». Дело в том, что при нажатии на кнопки, процесс замыкания соответствующих дорожек происходит не мгновенно. За счет упругости материала кнопки и платы происходит процесс многократного замыкания и размыкания контактов, воспринимаемый как дребезг. Для борьбы с этим явлением и надёжной отработки моментов переключения используют схемы – таймеры, которые фиксируют не кратковременные скачки напряжения на кнопках, а постоянно установившиеся поте потенциалы, которые должны быть неизменными постоянными в течении заданного интервала времени.

Рассмотрим схему устранения дребезга контактов, построенную на базе счётчика. Эта схема представлена на рис 4.1.3.

Рис 4.1.3. Схема устранения дребезга контактов на базе счётчика.

Данная схема имеет тактовый вход CLC, задающий временную рабочую сетку, вход KN, состояние которого определено кнопкой клавиатуры (0 – не нажата, 1 - нажата), выход Q, определяющий «чистое» состояние кнопки после отсева дребезга и промежуточный выход Q1.

Основная идея работы схемы заключается в том, что счётчик count16, отсчитывает временные интервалы длительностью восемь тактов в течении которых состояние сигнала KN не меняется, причём если текущее значение сигнала Q равно нулю, то отсчитывается восемь тактов сигнала «1», а если значение Q равно одному, то отсчитывается восемь тактов сигнала «0». В случае если длительность соответствующей «полочки» оказывается меньше восьми тактов, счётчик сбрасывается и начинается поиск нужного интервала снова.

Пример временной диаграммы работы такой схемы, полученной в результате моделирования, приведён на рис 4.1.4.

Рис 4.1.4. Пример временной диаграммы работы схемы устранения дребезга контактов, полученной в результате моделирования.

На рисунке 4.1.4. видно, что переключения выхода Q происходит значительно реже чем изменяется сигнал KN. Эти переключения возникают только если сигнал KN держится не менее 8 тактов. Переключения триггера, хранящего состояние кнопки клавиатуры, происходит по выходному сигналу счётчика Q1.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]