Программная модель контроллера:
| Ячейка 0
|
| Ячейка 1
|
|
| Ячейка 1
|
| Ячейка 2
|
|
¼
|
ОЗУ дисплея
|
| ОЗУ клавиатуры / портов вывода
| ¼
|
| Ячейка 15
|
| Ячейка 8
|
|
Команды для управления контроллера:
- общие (используются во всех режимах);
- управляющие дисплеем;
- управляющие клавиатурой (портами ввода).
Тип команды
| Наименование
|
Общие
| — установка режимов работы
— программа очистки
— управление частотой сканирования.
|
Команды управления дисплеем
| — чтение из ОЗУ дисплея
— запись в ОЗУ дисплея
— бланкирование – запрет записи.
|
Управление клавиатурой (портами ввода)
| — чтение ОЗУ клавиатуры (портов ввода)
— установка режима ошибки – сброс прерывания.
|
Команды установки режимов работы.
|
|
|
|
|
|
|
|
|
|
| Д
| Д
| К
| К
| К
|
|
|
|
Тип
команд
| Управление
дисплеем
| Управление
клавиатурой
|
Д
| Д
|
|
|
| Восьми позиционный дисплей
| Ввод слева
|
|
| Ввод справа
|
|
| Шестнадцати позиционный дисплей
| Ввод слева
|
|
| Ввод справа
|
Пример ввода числа 245 слева:
Пример ввода числа 245 справа:
К
| К
| К
| Примечание
|
|
|
|
| Режим ввода с клавиатуры с обнаружением двух и более нажатых клавиш
| Кодирование SL0 … SL3
|
|
|
| Декодирование SL0 … SL3
|
|
|
| Режим ввода с клавиатуры без блокирования ввода одновременно нажатых клавиш
| Кодирование SL0 … SL3
|
|
|
| Декодирование SL0 … SL3
|
|
|
| Опрос восьми портов ввода
| Кодирование SL0 … SL3
|
|
|
| Декодирование SL0 … SL3
|
|
|
| Режим стробируемого ввода
| Кодирование SL0 … SL3
|
|
|
| Декодирование SL0 … SL3
|
Кодирование – на линейное кодирование вырабатывается двоичный код (бегущий ноль).
Декодирование – с выхода контроллера идет действительный код сканирования (бегущая 1).
Программная очистка.
F – сброс регистра слова состояния и сброс сигнала запроса прерывания.
0 – бит общей очистки FIFO, ОЗУ дисплея.
Д
| Д
| Д
| Примечание
|
|
| Х
| Запись в ОЗУ нулей (гашение индикаторов)
|
|
|
| Запись в ОЗУ кода пробела
|
|
|
| Запись в ОЗУ единиц (горение всех сегментов)
|
Код пробела: 20Н = 00100000В
Управление частотой сканирования.
Р – коэффициент деления.
Условные регистры:
РУС – при А0 = 1
DAN – при А0 = 0
Пример: произвести инициализацию контроллера со следующими параметрами: произвести ввод данных с клавиатуры с блокировкой, шестнадцати позиционный дисплей, ввод слева, частота сканирования 5 кГц, частота синхронизации 2 мГц.
fclk – 2 мГц
f1 = 2000/100 = 20 кГц
f2 = fskan = 5 кГц
Кдекг = 4
INIT1
| MVI A,001H
| Управляющее слово
|
| OUT РУС
|
|
| MVI A,008H
| Команда режима
|
| OUT РУС
|
|
| MVI A,24H
| Установка частоты сканирования
|
| OUT РУС
|
|
Чтение из ОЗУ дисплея.
|
|
|
|
|
|
|
|
|
|
| АI
| А
| А
| А
| А
|
|
|
|
|
|
|
|
|
Признак
команды
|
| Адрес ячейки
ОЗУ дисплея
|

АI – бит автоинкремента адресации (автоматически увеличивает адрес после каждой команды чтения).
Запись в ОЗУ дисплея.
Пример: составить программу чтения кода символа, отображается на пять позиций дисплея.
01100101 = 65Н
MVI A,65H
OUT РУС
IN DAN ; в регистре А – содержимое ячейки 0101
Пример: составить программу для вывода «,» на вторую позицию дисплея.
01100010 = 62Н
MVI A,62H;
OUT РУС;
IN DAN;
ORI 10000000B ; установить Д7 = 1
MOV C,A;
MVI A,82H; – 10000010В
OUT РУС ; команда записи
MOV A,C;
OUT DAN;
Бланкирование – запрещение записи.
При вводе информации данные помещаются в ОЗУ ввода:
- режим опроса портов ввода (можно опрашивать восемь восьмиразрядных портов ввода, данные из каждого порта помещаются в ОЗУ ввода).
| Ячейка 0
|
| Ячейка 1
|
| M
|
| Ячейка 7
|
|
|
|
|
|
|
|
|
|
|
| АI
| Х
| А
| А
| А
|
|
|
|
|
|
|
|
|
|
|
|
|
| Адрес ячейки
ОЗУ ввода
|
- режим опроса клавиатуры, (ОЗУ организована по принципу FIFO – прочитать можно только верхушку регистра; при каждом нажатии данные записываются снизу).
Пример: прочитать код нажатой клавиши.
MVI A,40H
OUT РУС
IN DAN