Разработка микропроцессорной системы на базе микропроцессора I-8080, содержащей: 4 кБ ROM памяти, 2 кБ RAM памяти, периферийные БИС I-8251 и I-8279, страница 6

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

4. Выводы

В ходе выполнения работы была разработана микропроцессорная система на базе микропроцессора I-8080, имеющая 4 Кбайта ПЗУ и 2 Кбайта ОЗУ, а также периферийные БИС универсального синхронно-ассинхронного приёмо- передатчика I-8251 и контроллера клавиатуры и дисплея I-8279. Определены режимы программирования, написана программа начальной инициализации и подпрограммы обмена данными.


Приложение 1                    Структурная  схема МПС

Приложение 2        Принципиальная электрическая схема МПС