Разработка аппаратных средств МПС. Разработка структурной схемы МПС. Разработка микропроцессорного блока, страница 14

addr_timer:

000Bh         mov TL0, #11010000b

000Ch         mov TH0, #00000111b

000Dh         setb TR0

000Eh         reti

3.2.6. Разработка обработчика прерывания от источника питания

При поступлении прерывания от источника питания, необходимо переписать регистры микропроцессора в энергонезависимое ОЗУ. Это можно осуществить командами записи в стек PUSH, т.к. стек был предварительно настроен на определенный адрес.

Текст обработчика прерывания от источника питания:

org addr_power

push ACC

push DPTR

push PSW

pop ACC

clr P1.1

hlt

ret

3.2.7. Разработка обработчика прерывания от клавиатуры

Сигнал прерывания от клавиатуры поступает с микросхемы ККД. В данном случае, микросхема ККД работает в режиме сканирования клавиатуры. В этом режиме номер строки, в которой нажата клавиша, возвращается в разрядах D3 – D5, а номер столбца в разрядах D0 – D2. Т.к. входы SH и CO/STB микросхемы ККД заземлены, то два старших разряда возвращаемого кода всегда равны 0.

При приходе запроса прерывания возможны две ситуации:

1)  Система находится в режиме нормального функционирования;

2)  Система находиться в режиме ввода уставки.

Наличие того или иного режима будем определять по состоянию ячейки памяти 0073h. Если там 0, значит режим нормального функционирования. В этом случае, анализируется код нажатой клавиши. Если нажата одна из клавиш: «УСТАВКА", «ВЫВОД», «ОСТАНОВ», то система выполняет соответствующие действия. В противном случае, система выходит из обработчика.

Если по адресу текущего состояния находится не 0, то система находится в режиме ввода уставки. Пусть ввод уставки состоит из ввода одной шестнадцатеричной цифры. После ввода, новое значение уставки заменяет старое в ОЗУ, и флаг текущего состояния сбрасывается.

Текст обработчика прерывания от клавиатуры:

org addr_keyboard

push ACC

mov A,01000000b;команда чтение ОЗУ датчиков

mov DPTR, #FF0Ch

movx @DPTR, A

inc DPTR

movx A, @DPTR; ввод кода нажатой клавиши

mov R0, A

mov A, 0073h; Текущее значение флага режима

cje A, #0, install;Если режим ввода уставки, то вызов ;процедуры по метке

cje A, #1, output;Если режим вывода, то вызов ;процедуры по метке

cjne A, #2, end

hlt

end:

pop ACC

clr P1.2

ret

Процедура ввода уставки:

Install:; Объявление процедуры

mov A, #0

mov 0073h, A; Сброс флага режима

mov A, R0

cje A, #0Eh, m1; Если клавиша от 1 до 6

subb A, #07h; то вычитаем 7, получаем цифру

mov 0073h, A; записываем новое К

ajmp instend

m1:

cje A, #16h, m2; Если клавиша 7 - С

subb A, #09h; Вычитаем 9, получаем цифру

mov 0073h, A; Записываем новое К

ajmp instend

m2:

cje A, #1Bh, m3; Если нажали D - F

subb A, #0Bh; Вычитаем 11, получаем цифру

mov 0073h, A; Записываем новое К

ajmp instend

m3:

cjne A, #1Ch, instend; Если нажата клавиша 0

mov A, #0                       ; Формируем 0

mov 0073h, A; Записываем новое К

instend:

ret                                    ; Возврат из процедуры

Процедура вывода:

Output:       

mov A, 0070h; Текущие значения X1 – X4

сигнализации

mov DPTR, FF14h; Адрес регистра со светодиодами

movx @DPTR, A

; Вызов процедуры вывода на дисплей

mov A,0071h; A:=Q4

mov b,#10

div ab; a:=a div b; b:=a mod b

mov R0, A

mov R1, B

push ACC

mov A,10000000b;1-ый символ дисплея

mov DPTR, #FF0Ch

movx @DPTR, A

pop ACC

mov DPTR, #FF0Dh

movx @DPTR, A

pop DPTR

mov A, R1

push ACC

mov A,10000001b;2-ой символ дисплея

mov DPTR, #FF0Ch

movx @DPTR, A

ret

Таким образом, вся программа управления разместилась в адресном пространстве ПЗУ 0000h – 1675h, из них:

Следовательно, всего программы занимает 1536 байт.

4. Заключение

В результате данного проекта получили МПС но основе ОМЭВМ на микросхемах памяти серий К537 и К573 с применением в цепях управления микросхем серии КР1554.

При построении данной МПС используются  1 микросхема ОМЭВМ серии К1816, 1 микросхема памяти КР537РУ10, 1 микросхема памяти КР573РФ4, 15 корпусов логических элементов  серии КР1554 , 1 ЦАП серии К594, 1 АЦП серии К572, индикаторы серии К490, светодиоды серии АЛ307, микропереключатели, а также  20 резисторов и  25 конденсаторов, при этом потребляемая МПС мощность не превышает 7.3 Вт.