Входы CNTL и SHIFT игнорируются.
Матрица датчиков (ОЗУ клавиатуры):
данные с линий возврата поступают в тот байт ОЗУ клавиатуры, номер которого равен номеру опрашиваемого столбца матрицы датчиков. Входы CNTL и SHIFT игнорируются.
Индикаторное ОЗУ:
D7 ¸D4 - передаются на выводы A3 ¸ А0 микросхемы (DSPA);
D3¸D0 - передаются на выводы ВЗ ¸ В0 микросхемы (DSPB).
После подачи сигнала RESET запрограммируем БИС в следующем режиме:
- 8-ми символьный 8-ми разрядный дисплей (8´8 бит) ввод слева;
- сканирование контактной клавиатуры c внешней дешифрацией и с запретом одновременного нажатия 2-х и более клавиш;
- коэффициент деления входной частоты равен 14h, т.к. входной синхронизирующий сигнал CLK имеет частоту 2МГц, а для получения 100кГц частоты внутренней синхронизации необходимо задать делитель равный 20.
- чтение ОЗУ клавиатуры и запись индикаторного ОЗУ;
- запись в ОЗУ дисплея начиная с нулевого адреса с автоинкрементом
- вывод строки
Программа инициализации БИС c выводом на дисплей сообщения:
адрес ОЗУ дисплея 0 1 2 3 4 5 6 7
H |
E |
L |
L |
O |
В 7-сегм. коде 6Eh 9Eh 1Ch 1Ch FCh 0
defseg d8279, start=720h, class=Data ; сегмент данных
seg d8279
mes db 6Eh 9Eh 1Ch 1Ch FCh ,0 ; описание выводимой строки в кодах 7-сегментного
; индикатора, 0 - задаёт конец строки (на дисплей не
;выводится)
defseg c_seg, start=100h, class=Code ; сегмент команд
seg c_seg
MVI A, 00h ; Команда установки режима работы индикатора и
OUT 09h ; клавиатуры (заполнение строки слева, дисплей 8*8, ;сканирование клавиатуры с блокировкой одновременного ;нажатия клавиш, дешифрация внешняя)
MVI A, 34h ; Команда программирования синхронизации
OUT 09h ;(делитель на 20)
MVI A, 0DСh ; Команда сброса
OUT 09h ; Разрешение заполнении индикаторного ОЗУ.
; ОЗУ заполняется нулями.
MVI A, 90h ; Команда записи в индикаторное ОЗУ с автоинкрементом
OUT 09h ; начиная с 0 адреса
LXI B, mes ; В регистр BC заносится адрес строки выводимых символов
L1: IN 09h ; Чтение слова состояния FIFO
ANI 80h ; Выделение флага Du (недоступность индикаторного ОЗУ)
JNZ L1 ; Переход, пока флаг Du=1
; (Ждём пока ОЗУ не станет доступным)
L2: LDAX B ; Загрузка кода выводимого символа из памяти,
; адрес в регистра BC
ANA A ; Логическое И регистра А с регистром А,
; для установки флагов
JZ L3 ; Переход, если А=0
OUT 08h ; Вывод строки
; запись аккумулятора в OЗУ клавиатуры
INX B ; Инкрементировать содержимое регистра BC,
; Переход к следующему выводимому символу.
JMP L2 ; Перейти к выводу следующего символа
L3: end ; End Program
В ходе выполнения работы была разработана микропроцессорная система на базе микропроцессора I-8085A, имеющая 2 Кбайта ПЗУ и 2 Кбайта ОЗУ, а также периферийные БИС контроллера параллельного интерфейса I-8255 и контроллера клавиатуры и дисплея I-8279. И написана программа начальной инициализации и контроллера дисплея и клавиатуры.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.