литература / Пухальский Проектирование микропроцессорных систем 2001
.pdf310 Глава 3. Интерфейсные БИС
Scan Counter — счетчик сканирования клавиатуры и дисплея (4-разрядный двоичный счетчик — рис. 3.140). Тип четырех выходных сигналов счетчика SL3_o (Scan Lines — линии сканирования клавиатуры и дисплея) программируется командой CWtl (см. рис. 3.150) и задает два режима сканирования клавиатуры и дисплея: 1) кодированный режим (Encoded Mode — рис. 3.141, а), требующий применения внешних дешифраторов и используемый для построения 64-клавишной клавиатуры и одного 16-разрядного алфавитно-цифрового дисплея или двух 16-разрядных цифровых дисплеев; 2) декодированный режим (Decoded Mode — рис. 3.141, б), не требующий применения внешних дешифраторов и используемый для построения 32-клавиш- ной клавиатуры и одного 4-разрядного алфавитно-цифрового дисплея или двух 4-разрядных цифровых дисплеев. В декодированном режиме (с внутренней дешифрацией) сигналы SL3_о имеют низкий активный уровень (0);
Return Buffers — 8-разрядный буферный регистр памяти для сигналов возврата RLj _0(Re turn Line), поступающих с клавиатуры. К входам RLlis вместо клавиатуры можно подключать матрицу датчиков (Sensor Matrix) или 8-разрядное внешнее устройство, записывающее в ре гистр памяти байт данных положительным фронтом сигнала STB, подаваемым на вход CNTL/STB (Control/Strobe Input Mode — клавиша CntUрежим стробирования ввода). Режим ра боты PKDI 8279 (клавиатура, матрица датчиков, стробируемый ввод) программируется коман дой CW0 (см. рис. 3.150). Стробируемый ввод обеспечивает программный ввод данных с квити рованием и по прерыванию с использованием FIFO 8 x 8 бит в качестве буферной памяти
(см. § 2.6);
Keyboard Debounce and Control — устройство управления и устранения “дребезга” клавиа туры. В режиме сканирования матричной клавиатуры данное устройство анализирует сигналы RLj-o для обнаружения замыкания клавишного контакта и определяет номер строки, в которой контакт был замкнут (принцип работы матричного контроллера клавиатуры был рассмотрен
в§ 1.9 — см. рис. 1.37). При обнаружении замыкания контакта противодребезговая схема через 10,24 мс проверяет его состояние. Если контакт сохраняет замкнутое состояние, то его номер
вклавишной матрице и состояния сигналов CNTL и SHIFT передаются в буферную память типа FIFO. В режиме сканирования матрицы датчиков значения сигналов RL7A) непосредственно за писываются в соответствующую ячейку памяти ОЗУ датчиков (Sensor RAM; sensor — датчик, чувствительный элемент, сенсор). В режиме стробируемого ввода значения сигналов на линиях
RL7_о записываются в FIFO по положительному фронту сигнала CNTL/STB;
8 x 8 FIFO/Sensor RAM (FIFO!ОЗУ датчиков) — память объемом 8 байт для хранения ко дов нажатых клавиш или данных, поступающих от матрицы датчиков или внешнего устройства со стробируемым вводом. В режимах сканирования клавиатуры и стробируемого ввода память используется как FIFO (принцип работы FIFO был описан в § 2.6). В режиме сканирования ма трицы датчиков ОЗУ используется для хранения их состояния. Каждая строка ОЗУ датчиков хранит текущее состояние соответствующей строки матрицы датчиков;
FIFO/Sensor RAM Status — 8-разрядный регистр состояния FIFO/Sensor RAM, в котором фиксируется число введенных символов (байт данных), ошибки записи в полное FIFO и чтения пустого FIFO и др. (см. рис. 3.158). Если FIFO не пусто, то выдается значение сигнала запроса прерывания IRQ = 1. В режиме сканирования матрицы датчиков сигнал IRQ переходит в со стояние 1 при каждом обнаруженном при сканировании изменении состояния сенсоров. Ре гистр состояния может быть опрошен командой IN port для анализа ошибок и реализации про граммных методов ввода и вывода с квитированием;
Display Address Registers — два 4-разрядных регистра хранения адреса п = 0 ... 15 ОЗУ дисплея, позволяющие адресовать запись и чтение данных как байтами D7_0 = A3_ofi3-o, так и не зависимыми тетрадами (nibbles) D7_0 = Л3_0хххх и D1{) = ххххб3_о, что программируется коман
3.10. Программируемый контроллер клавиатуры и дисплея 8279 |
311 |
дой CW5 (см. рис. 3.155). Записанные в ОЗУ дисплея значения А„,3_о и В„,3_о (п — |
номер ячейки |
памяти ОЗУ дисплея) затем последовательно периодически выводятся на индикаторы дисплея с интервалом в 640 мкс — время вывода содержимого одной из шестнадцати ячеек памяти ОЗУ дисплея на выходы OUT А3_о СРА3_0) и OUT Z?3_0 (Pfi3_0) без учета времени гашения индикаторов в течение 150 мкс (Blank Code), автоматически вводимого при переключении разрядов дисплея (рис. 3.142). Управление адресацией ОЗУ дисплея осуществляется командами CW3 и CW4 (см. рис. 3.153 и 3.154), предоставляющими возможность введения автоинкремента адреса при чтении и записи данных;
|
1 6 x 8 |
Display RAM — ОЗУ дисплея для хранения 16 байт данных, предназначенных для |
|||||||
отображения как на алфавитно-цифровых, так и на цифровых (7-сегментных) дисплеях; |
|
||||||||
|
Display Registers — буферные регистры дисплея, периодически обновляемые значениями |
||||||||
Л„,3_()/?„,3 0, хранящимися в ОЗУ дисплея. |
|
|
|
|
|||||
|
Описание сигналов PKDI. Сигналы БИС 8279 имеют назначение: |
|
|
||||||
|
DB7_о (Data Bidirectional) — сигналы двунаправленной шины данных МП; |
|
|
||||||
|
А0 (Address) — младший разряд шины адреса МП, интерпретирующий назначение инфор |
||||||||
мации, передаваемой по шине данных £>7_о (табл. 3.26); |
|
|
|
||||||
|
CS (Chip Select) — сигнал выбора кристалла, имеющий низкий активный уровень (подает |
||||||||
ся от дешифратора адресных сигналов А7_,); |
|
|
|
|
|||||
|
RD (Read), WR (Write) — сигналы чтения и записи информации в PKDI, являющегося для |
||||||||
МП обычным внешним устройством (RD = I/OR, WR = I/O W — для МП 8080/8085); |
|
||||||||
|
CLK — тактовый сигнал (ф2 от генератора 8224 или CLK от МП 8085); |
|
|
||||||
510 |
8 10 мкс |
|
|
|
|
|
|
||
|
|
|
Г |
|
|
|
|
||
SL 1 ' |
|
|
|
|
|
|
Г |
|
|
Из-о1Х |
|
DC |
Л д ,3 -0 |
Blank Code V" |
Лл + 1,3-0 |
Blank C o d e^ |
|||
|
|
~ z n z i |
|
|
|
||||
|
|
|
|
|
|
IX |
x z |
||
Р В з_ 0~)( Blank C odi)( |
В п, 3-0 |
|
ЬCW«X |
■Вп + 1,3-0 |
|||||
|
|
80 -*-70 |
490 мхе |
|
У |
|
|
|
|
|
BD |
мкс |
/ |
|
V |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
Рис. 3.142. Временные диаграммы сигналов управления дисплеем |
|
|
||||
|
|
|
|
Таблица 3.26. Операции ввода-вывода |
|
|
|||
C SA0 |
RD |
WR |
|
Операция |
|
Примечание |
|
||
0 |
0 |
0 |
1 |
D7_o <— FIFO/Sensor RAM, Display RAM |
Ввод в МП данных ОЗУ дисплея, |
||||
0 |
1 |
0 |
1 |
D7_о <— FIFO Status |
|
данных и состояния FIFO |
|
||
0 |
0 |
1 |
0 |
D7_(| —» Display RAM |
|
Вывод из МП данных для ОЗУ |
|||
0 |
1 |
1 |
0 |
D7 n —> CW0 |
CW-] (Command Word) |
дисплея и команд управления |
|||
0 |
х |
1 |
1 |
Нет операций |
|
|
Шина D7_о в Z-состоянии |
|
|
1 |
X |
X |
X |
Нет операций |
|
|
|
||
|
|
|
|
|
312 |
■^S‘A R3f |
Глава 3. Интерфейсные БИС |
М0ч 0 |
8 |
56 |
|
RL\* |
1 |
|
57 |
|
|
|
|
|
7 |
15 |
63 |
|
|
# • ♦ |
|
|
M qM \ |
M j |
--------------- -L J-
Клавиатура
Дисплей
|
*0 |
1 |
*15 |
|
1 |
1 |
|
1 |
Р |
. | |
Р— ^ |
. Р |
|||
1 |
1 |
. 1 |
l i i |
|
|
. Р |
. р |
Рис. 3.143. Структурная схема управления клавиатурой и дисплеем |
|
||
RESET — сигнал от генератора 8224 или от МП 8085 (с выхода RESET OUT), предназна |
|||
ченный для задания режимов работы (по умолчанию) БИС 8279: |
16-разрядный дисплей с вось |
миразрядным кодированием отображаемых символов и заданием ввода с левой стороны дис плея, сканирование клавиатуры с внешней дешифрацией и блокировкой нажатия двух клавиш, mod. 31 — модуль пересчета прескалера. Задание этих режимов работы эквивалентно подаче команд CW0 = 08/г (см. рис. 3.150) и CW\ = 3F/г (см. рис. 3.151);
SL3_o (Scan Lines) — линии сканирования матричной клавиатуры, матрицы датчиков и ин дикаторов дисплея в кодированном и декодированном режимах (см. рис. 3.141). В кодирован
ном режиме работы эти сигналы подаются на внешние дешифраторы DC 3 х 8 и DC 4 x 1 6
(рис. 3.143), выдающие сигналы сканирования клавиатуры М7_0 и дисплея АГ15_о; |
|
||||
RL1A) (Return Line) |
— |
линии возврата, подключенные через |
внутренние |
резисторы |
|
к источнику питания VCc |
- |
+5 В (pullups) для |
задания исходного |
логического |
уровня 1. |
В режиме сканирования клавиатуры линии R L j^ |
при нажатии клавиш подключаются к сигна |
лам сканирования М7_о, имеющим низкий (0) активный уровень (рис. 3.143). В режиме стробируемого ввода на линии RLq_о от внешнего устройства подаются 8-разрядные данные, записы ваемые в FIFO по положительному фронту сигнала CNTUSTB;
SHIFT, CNTL/STB (Control/Strobe Input Mode) — входы для подключения клавиш Shift и Cntl (Control) в режиме сканирования клавиатуры и подачи сигнала STB в режиме стробируемого ввода. Клавиша Shift обычно используется для управления верхним и нижним регистрами клавиатуры. Состояния клавиш Shift и Cntl вводятся в FIFO только при нажатии одной из кла виш основной 64-клавишной клавиатуры (см. рис. 3.159) — в итоге клавиатура выдает 256 раз личных кодов от 00h до FF/г. Линии SHIFT и CNTUSTB имеют внутренние резисторы, подклю ченные к источнику питания Vcc - +5 В (pullups) для задания исходного логического уровня 1;
IRQ (Interrupt Request) — сигнал запроса прерывания. В режиме ввода с клавиатуры зна чение этого сигнала устанавливается в 1 при наличии в FIFO хотя бы одного символа и уста навливается в 0 при каждом чтении символа из FIFO, но после этого, если FIFO все еще не пусто, сигнал IRQ принимает значение 1. В режиме сканирования матрицы датчиков каждый
3.10. Программируемый контроллер клавиатуры и дисплея 8279 |
319 |
|
Строчная развертка символов |
производится так же, как и в телевизоре — сначала выво |
|
дится первая строка R JR 9 всех 16 |
символов, затем вторая строка R~JR\n и т. д. |
(строка RJR* |
пропускается), но вывод пяти значений столбцов производится одновременно. На рис. 3.145, 6 показан пример вывода на дисплей адреса и команды на языке ассемблера при запуске про граммы дисассемблера (disassembler), преобразующей машинные коды команд в их мнемонику (используется для просмотра программного обеспечения, хранящегося в EPROM).
Скважность динамической индикации алфавитно-цифрового дисплея Q = 128 (8 строк на 16 символов), поэтому драйверы должны обеспечивать значительно большие импульсные токи, чем в 7-сегментных дисплеях. Для полноценного и равномерного светоизлучения СИД всех столбцов недостаточно одного вентиля (драйвера) 514КТ1, поэтому необходимо использовать две ИС 514КТ1 с параллельной работой пар вентилей (у каждой пары объединяются входы и объединяются выходы — см. рис. 3.148). В одной ИС 514КТ1 (DS%%12N фирмы National Semi conductor Corp.) имеется 9 вентилей с открытым коллекторным выходом, каждый из которых характеризуется импульсным током /имп < 400 мА при скважности Q = 9 и длительности им пульса не более 500 мкс.
7-сегментные дисплеи. Контроллер клавиатуры и дисплея 8279 можно использовать для управления одним или двумя 7-сегментными 16-разрядными дисплеями. При управлении од ним дисплеем преобразование 16-ричных чисел 0 - 9, А -*■F в 7-сегментный код целесообразно возложить на программное обеспечение МП-системы — на выходы />Аз_0РВ3_0 БИС 8279 будут выдаваться 7-сегментные коды чисел (семь из восьми разрядов байта Р А ^Р В ^о). В этом случае для вывода на дисплей можно использовать и другие символы, заданные в исходном виде дво ичными кодами (см. табл. 1.19 в § 1.9).
Четырехразрядные порты РА3_0и РВ3_0 БИС 8279 могут работать и независимо, но в этом случае выводимые данные могут быть представлены только в кодированной форме, непосред ственно не отображаемой на дисплее (4-разрядными двоичными кодами). Режим независимой работы портов позволяет управлять двумя 7-сегментными 16-разрядными дисплеями при ис пользовании двух внешних аппаратных преобразователей 4-разрядных двоичных чисел в 7-сегментные коды. В табл. 3.28 приведено преобразование двоично-десятичного кода, или кода 8 -4 -2 -1, в 7-сегментный код, которое выполняют ИС, изображенные на рис. 3.149.
Таблица 3.28. Таблица истинности преобразования X/7S