Исследование контроллера клавиатуры-дисплея КР580ВВ79. Организация связи с оператором в обслуживаемых МК – системах, страница 12

После общего сброса контроллера бланкирующий код устанавливается равным 00Н.

Процедура сброса памяти дисплея осуществляется командой «Программная очистка» путем заполнения кодами бланкирования (см. рис. 19, табл. 6). Процедура продолжается примерно 200 мкс. В это время память дисплея недоступна, на что указывает установленный в «1» старший бит байта состояния контроллера (DU).

ЗАДАНИЕ. Введите в память УМПК программу, которая выполняет следующую последовательность действий:

1)  очистка памяти дисплея;

2)  запись в 4-ую ячейку ОЗУ символа «–»;

3)  запрет записи в ОЗУ дисплея;

4)  запись в 4-ую ячейку ОЗУ символа «8.» (двоичный код FFH – все сегменты включены).

000

FC

ANL P2,#0FCH

;

Адрес ККД

002

B8

FF

MOV R0,#0FFH

;

Режим «Команда» (А0=1)

004

23

CO

MOV A,#0C0H

;

Запись команды «Программная

006

90

MOVX @R0, A

;

очистка» (код бланкирования–00H)

007

BF

40

MOV R7,#40H

;

Запись символа «–»

009

14

20

CALL WR4

;

в 4-ую ячейку ОЗУ дисплея

00B

18

INC R0

;

Режим «Команда» (А0=1)

00C

23

AC

MOV A,#0ACH

;

Запись команды «Управление бланкированием/ запрещение

00E

90

MOVX @R0, A

;

записи в ОЗУ дисплея»

00F

BF

FF

MOV R7,#0FFH

;

Запись символа «8.»

011

14

20

CALL WR4

;

в 4-ую ячейку ОЗУ дисплея

013

04

13

SТОP: JMP STOP

;

Останов

; подпрограмма записи данных в 4-ую ячейку ОЗУ

020

B8

FF

WR4: MOV R0,#0FFH

;

Режим «Команда» (А0=1)

022

23

84

MOV A,#84H

;

Запись команды «Запись

024

90

MOVX @R0, A

;

в ОЗУ дисплея»

025

C8

DEC R0

;

Режим «Данные» (А0=0)

026

FF

MOV A,R7

;

Запись символа из регистра R7

027

90

MOVX @R0, A

;

в 4-ую ячейку ОЗУ

028

83

RET

;

Возврат

Выполните программу в пошаговом режиме и убедитесь, что на дисплее остался символ «–» в 4-ой позиции. После этого дисплей блокирован. Для того, чтобы продолжить работу, нужно, убедившись, что переключатель S7.1 находится в верхнем (замкнутом) положении, произвести сброс УМПК.

3.4. Изучение слова состояния ККД

Слово состояния ККД (см. рис. 14) используется в режиме клавиатуры и стробируемого ввода для отображения числа введенных символов и индикации ошибки. Возможны два вида ошибок: переполнение и переопустошение. Флаг переполнения «O» устанавливается, когда делается попытка записи в заполненную память клавиатуры. Флаг переопустошения «U» устанавливается, если была попытка считывания из пустой памяти клавиатуры. Кроме того, байт состояния имеет также бит DU, показывающий, что дисплей недоступен из-за того, что не завершена очистка памяти дисплея. В специальном режиме ошибки бит S/Е является флагом ошибки и указывает на совместное нажатие клавиш. В  режиме опроса восьми восьмиразрядных портов этот бит показывает, что имеется хотя бы один «замкнутый» (нулевой) датчик.