DU - индикаторное ОЗУ недоступно;
S/E - сенсорный датчик / нажато несколько клавиш;
ЕO - ошибка - переполнение ОЗУ клавиатуры;
EU - ошибка - чтение из пустого буфера ОЗУ клавиатуры;
F - буфер клавиатуры полон;
N - количество символов в буферном ОЗУ клавиатуры (00H-07H)
Форматы данных
Сканирование контактной клавиатуры (ОЗУ клавиатуры):
D7 - состояние на входе CNTL микросхемы;
D6 - состояние на входе SHIFT микросхемы;
D5 ¸D3 - код, номера столбца;
D2 ¸D0 - код номера строки.
Стробируемый ввод (ОЗУ клавиатуры):
D7 ¸D0 - состояние линий возврата (выводы RL7 ¸ RL0 микросхемы ) при подаче сигнала STB.
Матрица датчиков (ОЗУ клавиатуры):
данные с линий возврата поступают в тот байт ОЗУ клавиатуры, номер которого равен номеру опрашиваемого столбца матрицы датчиков.
Индикаторное ОЗУ:
D7 ¸D4 - передаются на выводы A3 ¸ А0 микросхемы (DSPA);
D3¸D0 - передаются на выводы ВЗ ¸ В0 микросхемы (DSPB).
Адреса БИС КР580ВВ79 в адресном пространстве ВУ следующие:
- регистр данных - 40h;
- регистр команд и состояния - 41h.
После подачи сигнала RESET запрограммируем БИС в следующем режиме:
- сканирование контактной клавиатуры c внутренней дешифрацией и с запретом одновременного нажатия 2-х и более клавиш;
- 16 разрядный 8-ми символьный дисплей (16´8 бит);
- заполнение строки слева направо с инкрементом;
- чтение ОЗУ клавиатуры и запись индикаторного ОЗУ;
- адрес индикаторного ОЗУ равен нулю;
- коэффициент деления входной частоты равен 0Ah, т.к. входной синхронизирующий сигнал CLK имеет частоту 1МГц, а для получения 100кГц частоты внутренней синхронизации необходимо задать делитель равный 10.
Программа инициализации БИС c выводом на дисплей сообщения:
адрес ОЗУ дисплея 0 1 2 3
2 |
0 |
1 |
0 |
В 7-сегм. коде 5Bh 3Fh 06h 3Fh
defseg d8279, start=720h, class=Data ; сегмент данных
seg d8279
nov db 5Bh 3Fh 06h 3Fh ,0 ; описание выводимой строки в кодах 7-сегментного
; индикатора, 0 - задаёт конец строки (на дисплей не
;выводится)
defseg c_seg, start=100h, class=Code ; сегмент команд
seg c_seg
MVI A, 01h ; Команда установки режима работы индикатора и
OUT 41h ; клавиатуры SW0
MVI A, 2Ah ; Команда программирования синхронизации SW1
OUT 41h
MVI A, 0DСh ; Команда гашения дисплея SW6
OUT 41h
MVI A, 91h ; Команда записи в индикаторное ОЗУ с автоинкрементом
OUT 41h ; начиная с 1 адреса SW4
LXI B, nov ; В регистр BC заносится адрес строки выводимых символов
L1: IN 41h ; Чтение слова состояния FIFO
ANI 80h ; Выделение флага Du
JNZ L1 ; Переход, пока флаг Du=1
L3: LDAX B ; код выводимого символа
ANA A ; Обнаружение конца строки символов A&A→в А
JZ L2 ; Переход, если А=0
OUT 40h ; вывод строки
INX B
JMP L3
L2: end ; End Program
В ходе выполнения работы была разработана микропроцессорная система на базе микропроцессора I-8080, имеющая 4 Кбайта ПЗУ и 2 Кбайта ОЗУ, а также периферийные БИС универсального синхронно-ассинхронного приёмо- передатчика I-8251 и контроллера клавиатуры и дисплея I-8279. Определены режимы программирования, написана программа начальной инициализации и подпрограммы обмена данными.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.