Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Цифровые устройства и микропроцессоры

.pdf
Скачиваний:
516
Добавлен:
09.06.2015
Размер:
3.6 Mб
Скачать

110

Рис. 41. Временная диаграмма работы ПТ в режиме 0

Если во время счета в ПТ загружается новая константа, то она устанавливает флаг обновления в единицу, но не влияет на текущий счет. Новый счет начинается только по фронту следующего сигнала GATA. Выполнение команд CLC и RBC возможно только после выполнения хотя бы одного цикла счета.

Временная диаграмма работы ПТ в режиме 1 показана на рис. 42. В

режиме 2 – импульсного генератора частоты – канал работает как делитель входной частоты Fclk на N. Сразу же после загрузки УС на выходе OUT устанавливается единичный сигнал. При GATA = 1 на выходе OUT с частотой Fclk / N устанавливается нулевой сигнал на время одного периода CLK. Режим 2 является режимом с автозагрузкой, т. е. после окончания цикла счета СЕ автоматически перезагружается и счет повторяется. Перезагрузка канала новой константой не влияет на текущий счет, новый счет начинается по окончании предыдущего. При GATA = 0 на выходе OUT устанавливается напряжение высокого уровня и счет останавливается. При сигнале GATA = 1 счет продолжается, что позволяет синхронизировать работу канала с внешними событиями. Выполнение команд CLC и RBC возможно для этого режима после окончания двух циклов счета.

111

Рис.42. Временная диаграмма работы ПТ в режиме 1

Временная диаграмма работы ПТ в режиме 2 показана на рис. 43 для трех различных вариантов.

Режим 3 – генератора импульсов со скважностью два – аналогичен режиму 2, за тем исключением, что на выходе OUT формируются импульсы с длительностью полупериодов, равной (N/2)*Tclk при четных N; ((N+1)/2)*Tclk положительных и ((N-1)/2)*Tclk отрицательных полупериодов при нечетных .

Этот режим является режимом с автозагрузкой, т. е. перезагрузка СЕ константой из CR выполняется автоматически после окончания цикла счета. Перезагрузка константы во время счета не влияет на текущий счет, новый счет начинается по окончании предыдущего. Снятие сигнала GATA приостанавливает счет, установка его продолжает цикл счета. В этом режиме канал может работать только с константой больше трех. Выполнение команд CLC и RBC возможно только после двух циклов счета.

112

Рис.43. Временная диаграмма работы ПТ в режиме 2

Временная диаграмма работы ПТ в режиме 3 показана на рис. 44. В

режиме 4 – программно-запускаемого одновибратора – по окончании отсче-

та числа, загруженного в счетчик/таймер, на выходе OUT устанавливается нулевой сигнал на время одного периода сигнала CLK. Высокий уровень сигнала на выходе OUT устанавливается сразу же после загрузки УС. Сигнал высокого уровня на входе GATA разрешает счет, причем первым тактовым сигналом происходит загрузка счетчика / таймера СЕ константой из CR, а второй тактовый сигнал начинает счет. Таким образом, сигнал длительностью, равной периоду тактовой частоты, устанавливается на выходе OUT через N+1 1 тактовых периодов. Если во время счета снимается сигнал GATA, то счет приостанавливается, текущее значение СЕ счетчика/таймера сохраняется. Новый положительный сигнал на GATA вызывает продолжение счета. Это режим одноразового выполнения функции. Загрузка новой константы во время счета приводит: при записи младшего байта к остановке текущего счета, а при записи старшего – к запуску нового цикла счета.

Выполнение команд CLC и RBC возможно только после окончания одного цикла счета.

113

Рис.44. Временная диаграмма работы ПТ в режиме 3

Временная диаграмма работы ПТ в режиме 4 показана на рис.45. Ре-

жим 5 – аппаратно-запускаемого одновибратора – аналогичен режиму 4 по способу формирования сигнала на выходе OUT и режиму 1 по действию сиг-

нала GATA.

На выходе OUT устанавливается сигнал нулевого уровня на время одного периода CLK после отсчета загруженной в СЕ константы. Загрузка в СЕ константы из CR осуществляется по фронту сигнала GATA. Из этого следует, что по фронту GATA происходит новая загрузка СЕ из CR, причем первый фронт GATA устанавливает флаг обновления в нуль. Если во время счета в канал загружается новая константа, то эта операция устанавливает флаг обновления в единицу, но не влияет на текущий счет. Новый счет начинается только по фронту следующего сигнала GATA. Выполнение команд CLC и RBC возможно только после выполнения хотя бы одного цикла счета.

На выходе OUT устанавливается сигнал нулевого уровня на время одного периода CLK после отсчета загруженной в СЕ константы. Загрузка в СЕ константы из CR осуществляется по фронту сигнала GATA. Из этого следует, что по фронту GATA происходит новая загрузка СЕ из CR, причем первый фронт GATA устанавливает флаг обновления в нуль. Если во время счета в канал загружается новая константа, то эта операция устанавливает флаг обновления в единицу, но не влияет на текущий счет. Новый счет начинается

114

только по фронту следующего сигнала GATA. Выполнение команд CLC и RBC возможно только после выполнения хотя бы одного цикла счета.

Рис.45. Временная диаграмма работы ПТ в режиме 4

Временная диаграмма работы ПТ в режиме 5 показана на рис.46. Из описания режимов ПТ видно, что таймер может реализовать все основные времязадающие функции, широко используемые в цифровой технике, с помощью которых выполняются как традиционные функции, связанные с управлением МПС, так и специфические, измерительные функции, например для измерения частоты. В заключение следует отметить, что при конструктивной совместимости таймеров К 580 ВИ 53 и К 1810 ВИ 54 последний кроме улучшенной частотной характеристики обладает более широкими функциональными возможностями, в особенности при реализации параллельных процессов.

115

Рис.46. Временная диаграмма работы ПТ в режиме 5

Лекция № 15

5.6.Клавиатура и индикатор

5.6.1.Общие принципы управления клавиатурой и дисплеем

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

шестнадцатеричном формате. При выводе необходимые данные отображаются на светодиодных индикаторах.

Основные функции интерфейса, связывающие клавишные устройства ввода и вычислитель, заключаются в следующем:

опознавание факта замыкания ключа; декодирование данных, соответствующей нажатой клавише.

Клавиатуру можно представить в виде столбцов и строк.

Рассмотрим принцип подключения клавиатуры на примере четырёх клавиш

(рис.47).

В нормальном состоянии на вертикальных линиях поддерживается уровень логической 1. При нажатии клавиши нужную горизонтальную линию можно определить поочередной подачей логического 0 через порт А. Допустим, нажата клавиша А, тогда только на линии РВ2 будет состояние ло-

116

гического 0 (по РВ0 соответственно), на РВЗ – логическая 1, т. е. поочередно подается «0» на горизонтальную линию и проверяется, где появится «0» на вертикальной линии. Считывая порт В, программно определяют нажатую клавишу. Данный процесс называется сканированием клавиатуры. С клавиатурой связаны две сложности:

важно не фиксировать дребезг контактов, для этого обычно через 20 мс производят проверку замыкания еще раз. Это программный подход к подавлению дребезга, он ведет к чрезмерным потерям времени. Подавление дребезга можно осуществить и аппаратно. Следующий шаг – преобразование полученной информации (номера строки и столбца) в более подходящий код (шестнадцатеричный или ASCI I), это делается программно;

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

Рис. 47. Схема подключения клавиатуры 2 х 2 к микроЭВМ

Существует довольно много видов цифровых и буквенно-цифровых индикаторов. Шестнадцатеричные цифры обычно индицируются светодиодными семисегментными индикаторами. Цифры в семисегментном коде (рис. 2, a) подаются на входы а–g и ДР (десятичная точка). В зависимости от типа индикатора (общий анод или катод) активные сигналы имеют высокий или низкий уровень (рис. 48, а,б и в). Сегмент начинает светиться, когда соответ-

117

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

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

 

a

 

a

a

 

 

 

f

 

b

b

b

g

c

c

 

Анод

 

 

d

d

e

 

+ 5 B

e

e

 

c

f

f

 

 

 

g

g

 

d

 

DP DP

 

oDP

 

 

 

а)

 

б)

в)

Рис.48. Семисегментный светодиодный индикатор (а), индикатор с общим анодом (б) и общим катодом (в)

5.6.1. Контроллер клавиатуры и индикации

I 8279 (КР580ВВ79)

Контроллер предназначен для ввода данных в микропроцессор с клавиатуры и вывода из микропроцессора на индикаторный дисплей. Микросхема состоит из двух функционально автономных частей: клавиатурной и дисплейной. На рис. 49 приведена структурная схема контроллера.

Клавиатурная часть. Клавиатура может быть выполнена в виде 64контактной клавишной матрицы или в виде набора сенсорных элементов или элементов на основе изменения магнитной проницаемости ферритов (ввод по стробу). Возможны два варианта работы с клавиатурой:

запрещены одновременные нажатия нескольких клавиш; номера клавиш сканируются независимо друг от друга.

 

118

RET (0 7)

DSPA(30)

SH

 

CO / STB

 

CLK C

DSPB(30)

 

SR

 

CS

S3 S0

WR

RD

 

INS/ D

BD

(Ac )

 

D7 D0

INT

Рис. 49 Контроллер клавиатуры и индикации КР580ВВ79 (I 8279)

В микросхеме предусмотрено устранение дребезга контактов. Коды нажатых клавиш заносятся в ОЗУ клавиатуры емкостью 8 байт (8 х 8). ОЗУ организовано по принципу FIFО – «первым записан – первым прочитан». Появление первого же байта в ОЗУ приводит к возникновению на выходе INT сигнала запроса прерывания, поступающего на МП.

Для клавиатурной части возможны 3 режима работы:

режим сканирования контактной клавиатуры 1 матрица х 8 слов х 8 разрядов и 4 матрицы х 8слов х 8 разрядов; режим сканирования сенсорной матрицы датчиков; режим стробируемого ввода.

При работе в первом режиме, управляя клавиатурой, контроллер непрерывно сканирует каждую строку клавиатуры посредством выдачи адресов строк на линии S0-S3 и ввода сигналов с возвратных линий RET(0-7). При нажатой клавише соответствующая линия RET перейдет в низкий логический уровень. Итак:

RET(0 - 7) – линии возврата, по ним поступают данные из клавиатуры. В режиме сканирования по линиям RET данные из клавиатуры поступают в контроллер для формирования 8-битного кодового слова, записываемого во внутреннюю память контроллера.

S0 - S3 – сигналы управления сканированием клавиатуры, по этим линиям выдаются адреса строк, чтобы можно было проверить каждую строку и отыскать нажатую клавишу. По этим же выводам идет информация об адресе (номере) индикатора в том случае, когда контроллер работает с индикаторами.

119

Для выработки сигналов сканирования клавиатуры, матрицы датчиков и дисплея на линиях S0-S3 внутри микросхемы имеются схема управления и синхронизации имеются и счетчик сканирования. На вход схемы синхронизации подаются внешние тактовые импульсы CLK с периодом повторения TCLK ≥ 0,4 Мкс, а на выходе вырабатываются внутренние тактовые импульсы с периодом T≥ 10 Мкс. Коэффициент деления программного делителя час-

тоты P = 2÷31.

Схемы синхронизации содержат цепочку счетчиков. Первый счетчик – это предварительный делитель тактовой частоты, который может быть запрограммирован на базовую частоту 1 МГц, что обеспечивает сканирование клавиатуры с периодом 5,1 Мкс. Прочие счетчики делят базовую частоту с тем, чтобы обеспечить необходимые времена сканирования отдельных клавиш, рядов клавишной матрицы, а также индикатора.

CLK – вход синхронизации, частота импульсов на этом входе должна превышать 200 кГц.

Счётчик сканирования может работать в двух режимах: кодированного сканирования (т. е. с внешней дешифрацией), в этом

случае происходит обычный двоичный счет, обеспечивающий выдачу на выходы сканирования S0-S3 двоичного кода последних четырех разрядов счетчика сканирования;

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

В контроллере имеются входы CONTRL и SHIFT. Они предназначены для клавиатуры типа клавиатуры пишущей машинки, в которой имеются клавиши управления и переключения регистров.

SHIFT – нижний/верхний регистр, т.е. это входной сигнал сдвига, используемый в режиме сканирования клавиатуры. Вход предназначен для кодирования номера матрицы клавиатуры (их, как уже говорилось, может быть 4), он «работает» в паре с другим входом: CO/STB (CОNТR/STB). Этот сигнал воспринимается вместе с координатами нажатой клавиши и запоминается в буфере в виде одного бита.

CO/STB (CОNTRL/STB) – «управляющий символ» или «строб клавиатуры». В режиме сканирования клавиатуры используется как выше описанный вывод SH, он также воспринимается вместе с координатами нажатой клавиши и запоминается в буфере в виде одного бита. В режиме «стробируемый ввод» по переходу сигнала CO/STB из нуля в единицу содержимое линий RET заносится в ОЗУ клавиатуры.

В режиме сканирования клавиатуры при обнаружении нажатой клавиши из информации, поступившей с возвратных линий RET(0–7), в контроллере формируется 8-битное кодовое слово, где есть закодированные двоичным кодом позиции строки (3 бита) и столбца (3 бита), состояние клавиши