Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
печать шпоры мпт.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
708.61 Кб
Скачать

Кодирующие клавиатуры.

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

Галетный переключатель:

Кнопочный переключатель:

Подключение переключателей к порту ввода:

При опросе порта ввода от переключателя поступает унитарный код, т.е код в котором только один 0, положение которого определяется номером замкнутого контакта.

Унитарный код неудобен для использования в программах, поэтому его необходимо преобразовать в позиционный.

Преобразование унитарного кода в позиционный возможно двумя методами:

  1. табличный метод

  2. метод сдвигов унитарного кода

Табличный метод.

Основан на том, что в ПЗУ имеется таблица кодов: каждому унитарному коду соответствует позиционный. Для идентификации нажатой клавиши используется программа:

IN IPORT

CMA

CPI MASK

JZ EXIT

Метод сдвигов унитарного кода.

Исходный код после инвертирования сдвигается вправо через перенос (если нажата клавиша, то флаг переноса = 1).

IDENTIF2: IN IPORT

MVI B, 0

MVI C, 8

CMA ; Инвертировать

ORA A ; Сброс CY

SHIFT: RAR

JC EXIT

INR B

DCR C

JNZ SHIFT

MVI B, OFFH

EXIT : RET

В регистре В – двоичный позиционный код.

НЕКОДИРУЮЩИЕ КЛАВИАТУРЫ.

Процедуры программного обслуживания клавиатуры

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

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

Вместо процедуры опроса состояния клавиатуры можно использовать аппаратурные средства, формирующие сигнал внешнего прерывания для МП в случае нажатия любой клави­ши.

Процедуру ввода информации с некодирущей матричной клавиатуры удобно рассмот­реть на примере клавиатуры 4 x 5, включающей 16 цифровых клавиш (0 - F) и 4 управляю­щих. Структура матрицы клавиатуры аналогична структуре матрицы двоичных датчиков, способ подключения клавиатуры к МПС представлен на рис. Для микропроцессора КР580ВМ80А при использова- нии способа наложения маски рационально применять совокупность команд следующего вида:

IN PORT 2

ANI MASK

CPI MASK

JNZ EXIT

4.Подключение светодиодов и светод. Семисегментных индикаторов

По виду соединения диодов:

  • С общим катодом (ОК);

— С общим анодом (ОА).

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

  1. использование специальных преобразователей кодов (из двоичного в семисегментный) – К514ИД1 (для индикаторов с ОК) и К514ИД2 (для индикаторов с ОА).

R1-R7 ограничивают токи, протекающие через выходные транзисторы

R1-R7 = 110…330 Ом.

Недостаток дешифраторов — возможность отображения только арабских чисел (0,1,..,9)

  1. Программная перекодировка – для каждого сегмента выделяется свой разряд в байте позиционного кода.

лог. “1” — Свечение ; лог. “0” — Затемнение

В ПЗУ должны быть коды отображаемых символов, программа выбирает из ПЗУ этот код в соответствии с двоичным кодом требуемого символа.

; подпрограмма перекодировки

; регистр А – двоичный код символа

; регистр А – семисегментный код символа

CROSSCOD: MOV C, A

MVI B, 00 ; В регистровой паре ВС – двоичный код

LXI H, TABLECOD

DAD B ; (HL) (HL) + (BC)

MOV A, M ; Чтение кода символа

RET

TABLECOD: DB 3F ; Код символа «0»

DB 06 ; Код символа «1»

.

.

DB 71 ; Код символа «F»