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

В результате выполнения программы все индикаторы дисплея гасятся.

ЗАДАНИЕ. Введите в память УМПК программу, которая выводит символ «H» в четвертую позицию дисплея.

000

FC

ANL P2,#0FCH

;

Адрес ККД

002

B8

FF

MOV R0,#0FFH

;

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

004

23

84

MOV A,#84H

;

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

006

90

MOVX @R0, A

;

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

007

C8

DEC R0

;

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

008

23

76

MOV A,#76H

;

Запись 7-сегментного

00A

90

MOVX @R0, A

;

кода «Н» в память дисплея

00B

04

0B

STOP: JMP STOP

;

Останов

В результате выполнения программы в 4-ю слева позицию дисплея выводится символ «Н».

ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ. Напишите программу, в которой каждый новый символ, соответствующий коду нажатой клавиши, будет вводиться в следующую позицию дисплея. Возможный алгоритм такой программы приведен на рис. 27.

Указание. Таблицу кодов семисегментных символов (для перекодировки) целесообразно разместить на 3-ей странице памяти команд.

Для того, чтобы рассмотреть следующий пример, необходимо предварительно заполнить память дисплея какими-нибудь символами, например, используя рассмотренное выше задание очистки дисплея (заменить по адресу 008H команду MOV A, #00H на команду MOV A, #data; в качестве data можно использовать код любого семисегментного символа из табл. 8).

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

010

FC

ANL P2,#0FCH

;

Адрес ККД

012

B8

FF

MOV R0,#0FFH

;

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

014

23

63

MOV A,#063H

;

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

016

90

MOVX @R0, A

;

ОЗУ дисплея»

017

C8

DEC R0

;

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

018

80

MOVХ A, @R0

;

Чтение 3-ей ячейки памяти

019

АВ

MOV R3, A

;

дисплея и сохранение ее в R3

01А

04

STOP: JMP STOP

;

Останов

В результате выполнения программы в R3 будет загружен код символа из 3-ей ячейки памяти дисплея.

 


Примечание. Перед выполнением программы необходимо убедиться, что переключатель S1.2 замкнут (в верхнем положении).

Рис. 27. Алгоритм программы вывода на дисплей символов нажимаемых клавиш

3.3.2.Изучение команд «Программная очистка» и «Управление бланкированием/запрещение записи в ОЗУ дисплея»

Если дисплей используется как двойной 4-позиционный, то удобно маскировать одну из тетрад, чтобы работа процессора с одной тетрадой не отражалась на другой. Это реализуется при помощи команды «Управление бланкированием/запрещение записи в ОЗУ дисплея» (ее формат показан на рис. 24). На выходах DА или DВ устанавливается специальный бланкирующий код. Содержимое памяти дисплея при этом не изменяется. Если дисплей используется как единый 8-позиционный, то необходимо устанавливать бланкирующий код на обоих выходах.