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

rgz

.pdf
Скачиваний:
50
Добавлен:
12.04.2015
Размер:
784.45 Кб
Скачать

 

 

21

 

 

 

 

 

 

 

Таблица 1.10

 

Распределение адресного пространства памяти в УМПК-80

 

 

 

 

 

 

 

 

 

Адреса

 

 

 

Назначение

 

 

 

 

 

 

 

 

 

 

0000–07FF

 

 

 

П/п Монитора и сервисные программы

 

 

 

 

 

 

 

 

 

 

0800–0AFF

 

 

 

ОЗУ пользователя: область для программ, доступная для запи-

 

 

 

 

 

 

 

 

 

 

си только из Монитора;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0B00–0BB0

 

 

 

ОЗУ пользователя: область для данных и стек

 

 

 

 

 

 

 

 

 

 

0BB1–0BFF

 

 

 

ОЗУ данных для п/п стандартного Монитора:

 

 

 

 

 

 

 

 

 

0BF0–0BF5

 

 

 

область недекодированных сообщений дисплея – UDSP

 

 

 

 

 

 

 

 

 

0BFA–0BFF

 

 

 

область декодированных сообщений дисплея – DDSP

 

 

 

 

 

 

 

 

 

 

Следует отметить, что область ОЗУ для программ пользователя 0800– 0AFF в микро-ЭВМ УМПК-80 аппаратно защищена от записи из программ пользователя, то есть использовать эту область для хранения своих данных пользователь не может. Хранить данные следует в области 0B00–0BB0. Причем, рассчитывая, что в этой же области Монитор определяет стековую память (вершина стека – 0BB0).

Схема управления пошаговым режимом представляет собой логиче-

скую схему, которая обеспечивает возможность останова программы пользователя после каждого шага выполняемой программы. Шаг может быть равен:

одной команде программы; одному машинному циклу команды.

При работе по шагам-командам обеспечивается останов и возврат в Монитор после каждой очередной команды программы пользователя. Таким образом, появляется возможность контролировать ход выполнения программы и отслеживать ошибки.

При работе по шагам-машинным циклам обеспечивается перевод процессора в состояние ожидания после выполнения каждого очередного машинного цикла. В состоянии ожидания линии системной шины остаются с неизменными значениями логических уровней. Эти значения соответствуют предстоящему машинному циклу, а для их наблюдения имеются светодиодные индикаторы красного цвета:

16 – для линий адреса,

8 – для линий данных,

6 – для линий управления.

Таким образом, наблюдая отдельные машинные циклы команд, можно исследовать ход выполнения процессором этих команд.

В ходе интерпретации команд программы, записанной в памяти, микропроцессор управляет внешними устройствами микро-ЭВМ. Последние подключаются к шине через интерфейсы. Поэтому управление внешним устройством есть взаимодействие процессора с интерфейсом этого внешнего устройства. Оно сводится к обмену данными с регистрами (портами) интерфейса при помощи соответствующих команд программы. Адреса портов интерфейсов внешних устройств данной микро-ЭВМ представлены в табл. 1.11.

22

Таблица 1.11 Распределение адресного пространства портов внешних устройств в УМПК-80

 

Адрес

 

 

 

Направл

 

 

 

Обозн

 

 

 

Назначение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

 

 

 

Ввод

 

 

 

KeyRg

 

 

 

Регистр чтения клавиатуры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

Ввод

 

 

 

InRg

 

 

 

Внешний регистр ввода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

28

 

 

 

Вывод

 

 

 

ScnRg

 

 

 

Регистр сканирования клавиатуры и дисплея

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

30

 

 

 

Вывод

 

 

 

OutRg

 

 

 

Внешний регистр вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

38

 

 

 

Вывод

 

 

 

SegRg

 

 

 

Регистр сегментов дисплея

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

80

 

 

 

Вывод

 

 

 

RngRg

 

 

 

Регистр вывода звукового сигнала

 

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

виатурные клавиши кроме трех: ШЦ (шаг цикла), Ст (стоп) и R (сброс).

Клавиша ШЦ функционально относится к схеме управления шаговыми ре-

жимами. Клавиша Ст предназначена для формирования запроса прерывания

процессора с целью прерывания любых действий процессора для возврата в

Монитор. Клавиша R предназначена для формирования сигнала на вход

процессора RESET для сброса процессора в исходное состояния.

Схема звукового вывода обеспечивает возможность управления динамиком посредством команд процессора. По команде вывода OUT 80 битом D7 выводимого из аккумулятора байта обеспечивается включение или отключение тока через цепь катушки динамика.

Для реализации параллельного вывода данных из микро-ЭВМ предназначен регистр вывода. К выходам регистра вывода подключены светодиодные индикаторы, показывающие логическое состояние этих выходов. По команде OUT 30 процессор может вывести байт из своего аккумулятора в этот выходной регистр.

Для реализации параллельного ввода данных в микро-ЭВМ предназначен регистр ввода. А для имитации входных сигналов этому регистру имеется имитатор внешнего устройства (ВУ) ввода, состоящий из 8 переключателей. Поэтому пользователь может установкой переключателей задавать уров-

23

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

Пультовой терминал УМПК-80

Пультовой терминал микро-ЭВМ представляет собой аппаратное средство организации взаимодействия пользователя с процессором микро-ЭВМ. Пультовой терминал состоит из клавиатурной и индикаторной частей.

Дисплейная часть

Дисплейная часть пультового терминала (рис. 1.6) состоит из 6 восьмисегментных светодиодных индикаторов. Изображение на каждом отдельном индикаторе формируется, в случае выбора данного индикатора, из кода изображения, выводимого через регистр сегментов дисплея SegRg (адрес 38). Выбор индикатора реализуется выводом через соответствующий ему один из разрядов регистра сканирования ScnRg (адрес 28). Пример в программе 1.4 показывает зависимость байта отправляемого на дисплей через SegRg от изображения, полученного на выбранном индикаторе.

; Программа 1.4

;Показ на индикаторе HL5 двоичного кода из регистра ввода

;Адреса регистров:

ScnRg .equ 28h

;регистр сканирования клавиатуры/дисплея

SegRg .equ 38h

;регистр сегментов дисплея

InRg .equ 20h

;регистр ввода

.org 0800h

 

MVI A,20h

; A 00100000, для выбора индикатора HL5

OUT ScnRg

; выбор HL5 выводом кода из A через ScnRg

CNT: IN InRg

; код для индикации из регистра ввода A

OUT SegRg

; отправляем на индикаторы через SegRg

JMP CNT

; на продолжение вывода кода

.end

 

Все 16 кодов, вывод которых через регистр SegRg обеспечит индикацию соответствующих шестнадцатеричных цифр представлены в табл. 1.12.

Очевидно, что коды отвечающие за индикацию цифр никак не связаны со значением выводимых на индикаторы цифр. А при программировании вывода цифры на индикатор дисплея удобно когда выводимой цифре соответствует ей равный байт. Например, индикация цифры "5" должна получаться из исходного байта "05".

24

 

 

 

 

 

 

 

 

ScnRg

 

 

 

 

Регистр

 

 

 

 

Ключ

 

 

 

 

+5 В

 

 

 

 

 

 

 

 

 

 

 

 

сканирования

 

 

 

транзисторный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

К589ИР12

 

 

220

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КТ816А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SW6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Адрес –

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

28h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SW5

 

 

 

 

 

 

 

 

 

 

 

 

Q1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

STB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SL0

D0..D7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SW4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D0..D7

Q2

 

 

 

 

 

 

 

 

 

 

 

 

SL1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SW3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(8)

 

 

 

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SL2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SW2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q4

 

 

 

 

 

 

SL3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SW1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q5

 

 

 

SL4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SL5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Данные

 

 

 

 

 

 

 

 

 

 

 

 

Регистр

 

HL5

HL4

HL3

HL2

HL1

 

HL0

 

 

сегментов

 

 

 

 

 

 

 

 

 

дисплея

 

 

 

 

 

 

 

 

 

SegRg

 

(8)

(8)

(8)

(8)

(8)

(8)

 

(8)

 

К589ИР12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q0

 

SW14

 

 

 

 

 

 

 

D0..D7

Q1

SW13

 

 

 

 

 

A

 

(8)

Q

 

SW12

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

B

 

 

 

 

 

 

 

 

 

 

 

Q3

SW11

 

 

 

 

F

 

Q0

 

 

 

 

 

G

 

 

Q4

 

SW10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Адрес –

 

Q5

SW9

 

 

 

 

E

 

C

38h

 

Q6

 

SW8

 

 

 

 

D

H

 

STB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

220

 

 

 

Расположение светодиодных

 

 

 

 

 

 

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

 

 

Q7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КТ315Д

62

 

 

SW7

 

 

 

SLx

 

 

 

 

 

 

 

 

HLx

Подключение

B

 

E

H

светодиодных

 

 

 

 

 

 

сегментов

A

D

 

G

индикатора

 

C

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q0

Q1

Q2

Q3

Q4

Q5

Q6

Q7

 

Выходы регистра SegRg

 

 

 

 

 

 

 

 

 

 

Рис. 1.6. Дисплейная часть пультового терминала.

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.12

 

 

Синтезированное изображение шестнадцатеричных цифр

 

 

 

Цифра

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

Код

3F

06

5B

4F

66

6D

7D

07

7F

6F

77

7C

39

5E

79

71

Изобра-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

жение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

кодирование исходного недекодированного кода, получить результат – деко-

дированный код, и его уже выводить на индикатор через регистр сегментов. Операция декодирования организуется с применением таблицы декодирования DCC (см. табл. 1.13): имея адрес начала таблицы DCC и используя исходный недекодированный код в качестве смещения можно находить в таблице декодированный код.

Таблица 1.13

Таблица декодирования (DCC)

 

Адрес

 

 

 

 

Код

 

 

 

Цифра

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

перемен

 

 

 

 

знач

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+00

 

 

 

0218

 

 

 

3F

 

 

 

0

 

 

 

 

 

 

 

 

 

DCC+01

 

 

 

 

0219

 

 

 

06

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+02

 

 

 

021A

 

 

 

5B

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+03

 

 

 

021B

 

 

 

4F

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+04

 

 

 

021C

 

 

 

66

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

DCC+05

 

 

 

 

021D

 

 

 

6D

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+06

 

 

 

021E

 

 

 

7D

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+07

 

 

 

021F

 

 

 

07

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

DCC+08

 

 

 

 

0220

 

 

 

7F

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+09

 

 

 

0221

 

 

 

6F

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+0A

 

 

 

0222

 

 

 

77

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+0B

 

 

 

0223

 

 

 

7C

 

 

 

B

 

 

 

 

 

 

 

 

 

 

DCC+0C

 

 

 

 

0224

 

 

 

39

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+0D

 

 

 

0225

 

 

 

5E

 

 

 

D

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+0E

 

 

 

0226

 

 

 

79

 

 

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DCC+0F

 

 

 

0227

 

 

 

71

 

 

 

F

 

Таблица DCC хранится в ПЗУ, начиная с адреса 218 и не заканчивается кодом цифры F, а продолжается. Последующие места таблицы отданы дополнительным символам (например, "H", "П" и т.п.), которые можно отобразить средствами восьмисегментного индикатора. Декодированные коды этих символов получают синтезом символов на индикаторе, как в программе 1.5. Затем, просматривая продолжение таблицы DCC, находят место хранения син-

26

тезированного декодированного кода. Ему соотвествует какой-то адрес Adr_S. Если из этого адреса Adr_S вычесть адрес начала таблицы DCC, то получится недокодированный код данного символа.

Для формирования сообщения на шести индикаторах дисплея требуется разместить коды изображений индикаторов в шести последовательно расположенных ячейках памяти сообщения, а затем выполнять циклически про-

граммное сканирование индикаторов. Чтобы сообщение на дисплее зритель-

но воспринималось, коды изображения требуется фиксировать на соответствующем индикаторе в течение определѐнного времени. Алгоритм такого сканирования можно представить как показано на рис. 1.7.

Задержку в этом случае может обеспечить мониторная подпрограмма DELB (адрес 430h). Еѐ входным параметром является числовое значение интервала временной задержки: количество миллисекунд задержки должно быть задано в регистровой паре BC.

; Программа 1.5

;Сканирование декодированного сообщения дисплея

;Входные переменные: M(0900h–0905h) – коды декодированного

;

сообщения Mes

;

 

ScnRg .equ 28h

;регистр сканирования клавиатуры/дисплея

SegRg .equ 38h

;регистр сегментов дисплея

DELB .equ 430h

;адрес подпрограммы временной задержки

;

 

.org 0800h

 

LXI B,400h

; Загрузить время задержки

CNT1: LXI H,Mes+5

; Исх сост указателя кодов сообщения

MVI D,20h

; Указатель индикаторов – на HL5

CNT2: MOV A,D

; Загрузка указателя индикаторов

OUT ScnRg

; и вывод для выбора очередного индикатора

MOV A,M

; Загрузка очередного кода из M[HL]

OUT SegRg

; и вывод на индикатор

CALL DELB

; Временная задержка BC миллисекунд

DCX H

; Перемещение указателя кодов сообщения

MOV A,D

;

RRC

; Перемещение указателя индикаторов

MOV D,A

;

JNC CNT2

; Оценка положения указателя индикаторов

 

; если последний не пройден – к следующему

JMP CNT1

; иначе начинать сначала

.org 0900h

 

Mes: .db 0,0,0,0,0,0

;байты декодированного сообщения

.end

 

 

 

27

 

Начало

 

 

1

 

 

BC400h

Установка интервала

 

временной задержки

 

 

 

2

 

 

HLMes+5

Установка в исходное состояние (Mes+5)

 

указателя байтов сообщения (HL)

 

 

 

3

 

 

D20h

Установка в исходное состояние 100000d

 

указателя индикаторов дисплея (D)

 

 

 

4

 

 

D

Выбор очередного индикатора выводом байта

 

ScnRg

через регистр сканирования (ScnRg)

 

5

 

 

M(HL)

Вывод очередного байта через регистр

 

SegRg

сегментов (SegRg) на индикатор дисплея

 

6

 

 

DELB

Пауза для фиксации изображения в

 

течение BC миллисекунд

 

 

 

7

 

 

HLHL+1

Продвижение указателя байтов сообщения

 

8

 

 

Сдвиг D

Продвижение бита выбора индикатора с

 

вправо

переходом младшего бита в перенос CY

-

9

 

CY=1

Бит выбора вышел за границы байта?

 

 

+

 

 

Рис. 1.7. Алгоритм программы 1.5 сканирования дисплея.

В программе 1.5 исходное сообщение представлялось декодированными кодами. Возможность сканирования недекодированных сообщений обеспечивают мониторные средства УМПК-80. Для этих целей в ОЗУ организует-

ся 5-байтная область недекодированных сообщений UDSP (адреса 0BF0– 0BF5). Исходные байты из этой области принимает как входные параметры подпрограмма декодирования DCD (адрес 01E9). Она выполняет для каждого

Программа 1.6

28

недекодированного байта выборку по таблице декодирования соответствующего декодированного кода. А результаты декодирования подпрограмма

DCD отправляет в область декодированных сообщений DDSP (адреса

0BFAh–0BFFh). Поскольку область DDSP используется монитором, прямая загрузка еѐ из монитора невозможна. Для загрузки исходного сообщения в DDSP можно применять команду процессора RST3, вызывающую мониторную подпрограммы по адресу 0018. Пользователь может записать коды своего сообщения в любую доступную ему 5-байтную область. Чтобы это сообщение оказалось в DDSP следует загрузить его исходный адрес в регистровую пару DE и выполнить команду RST3. Однократное сканирование на индикаторы дисплея сообщения, хранящегося в области DDSP может обеспечить мониторная подпрограмма SDS (адрес 01С8). Применение мониторных средств для индикации недекодированного сообщения иллюстрируется программой 1.6

;

;Сканирование недекодированного сообщения дисплея

;Входные переменные: M(0900h–0905h) – коды недекодированного

;

 

сообщения Mes

;

 

 

DCD .equ 1E9h

;адрес подпрограммы декодирования

SDS .equ 1C8h

;адрес подпрограммы сканирования

;

 

 

.org 0800h

 

 

LXI D,900

; Подготовить адрес начала сообщения

 

RST 3

; Загрузить сообщение в UDSP

 

CALL DCD

; Декодировать сообщение UDSP DDSP

CNT:

CALL SDS

; Однократно просканировать сообщение

 

JMP CNT

; Повторять сканирование сообщения

.org 0900h

 

Mes:

.db 0,0,0,0,0,0

;байты декодированного сообщения

.end

 

 

Клавиатурная часть

Клавиатурная часть пультового терминала УМПК-80 представлена клавишами, объединѐнными в клавиатурную матрицу (рис. 1.8) 8×3 (8 строк и 3 столбца).

29

 

Регистр

 

 

 

 

сканирования

ScnRg

 

 

 

 

 

 

 

 

К589ИР12

 

 

 

 

Q0

 

 

 

 

Q1

 

Адрес –

 

 

Q2

 

28h

 

 

 

 

 

 

 

 

 

STB

 

 

 

 

 

Q3

 

D0..D7

 

 

 

Данные

(8)

 

D0..D7

Q4

 

 

 

 

 

 

 

 

Q5

 

 

 

 

Q6

 

 

 

 

Q7

 

 

 

KeyRg

 

 

 

 

DB

A0

 

D0..D3

 

B0

 

 

 

 

 

 

 

 

(4)

 

...

 

 

 

B4

A1

 

 

 

 

 

 

 

 

Адрес –

 

 

 

 

18h

 

 

A2

 

 

 

CS

 

Регистр

 

 

A3

чтения

DIEN

 

клавиатуры

 

К589АП16

 

"1"

 

 

 

 

 

+5 В

 

 

ШК

ПрСч

 

П

ОтРг

ОтА

0

ЗпУв

Ум

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

СПД

СПД

СПД

 

ШЦ

Схема подавления

дребезга контактов

 

клавиш

+5 В

 

Рис. 1.8. Клавиатурная часть пультового терминала.

Для процессора клавиатурная матрица представляет собой обычное внешнее устройство. Управление этим внешним устройством осуществляется через программный обмен данными с ним процессора. Аппаратные средства сопряжения с внешним устройством реализованы на основе микросхемы буферного регистра RG (К589ИР12), выступающей в роли регистра сканирова-

30

ния ScnRg (адрес 28), а также на основе микросхемы шинного формирователя BF (К589АП16) в роли регистра чтения клавиатуры KeyRg (адрес 18). Регистр сканирования обслуживает одновременно обе части пультового терминала, обеспечивая при сканировании одновременный выбор как строки клавиатурной матрицы, так и соответствующего индикатора дисплея

Управление клавиатурной матрицей сводится к решению следующих задач:

выявление факта нажатия клавиши клавиатуры; определение кода нажатой клавиши.

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

1.Путѐм вывода кода выбора строки через регистр ScnRg последовательно выбираются строки матрицы;

2.В момент выбора каждой строки через регистр KeyRg принимается код, показывающий состояние клавиш данной строки (код столбцов);

3.Процессор, анализируя принятый код, выявляет факт нажатия клави-

ши.

В случае выявления факта нажатия клавиши с механическим контактом актуальной проблемой является "дребезг контакта", сопровождающий нажатия. Когда клавиша нажимается или отпускается, ее контакт, до перехода в устойчивое замкнутое или разомкнутое положение, несколько раз перескакивает из одного состояния в другое ("дрожит"). Из-за этого схема управления клавиатурой может зафиксировать, вместо одного, несколько нажатий. Устранение дребезга клавишных контактов в микро-ЭВМ УМПК-80 обеспечивается схемой подавления дребезга (СПД), работу которой иллюстрирует диаграмма на рис. 1.9).

Среди мониторных подпрограмм есть подпрограмма KPU (адрес 0185), обеспечивающая определение факта нажатия. Подпрограмма KPU сначала однократно сканирует 8 строк, принимая коды состояния клавиш этих строк в 8-байтную области UDKY (0BE8..0BEF). Затем подпрограмма KPU проверяет область UDKY на наличие зафиксированных там нажатий клавиш. И если обнаружено хотя бы одно нажатие, то перед завершением KPU будет сброшен бит нулевого результата Z=0. По состоянию бита Z вызывающая программа может, таким образом, оценить факт нажатия на момент запуска подпрограммы KPU. Например программа 1.7.

;

Программа 1.7

;Определение факта нажатия клавиши

;Выходные переменные: UDKY (0BE8–0BEF)– коды состояния клавиш

;

строк клавиатурной матрицы

;

 

KPU .equ 185h

;адрес п/п проверки состояния клавиш

InRg .equ 20h

; адрес регистра ввода

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