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

add A,0071h        ; N6+K

mov R1,A

sub A,R0   ; Если N6 меньше N5, то переход по метке

jc GN6K

mov A,R1;A:=N5

ljmp COMPQ

GN6K:         mov A, R0;A:=N6+K

mov DPTR,FF00h; адрес регистра

COPMPQ:  subb A, Q0

jc GQ0                ; то переход по метке

mov A,00100000b;установить У2

movx @DPTR,A; вывод в регистр

Y2:              mov R2, #4

mov R1, #100

DELY2:       mov R0, #0

mov R0,#48

DEСR0Y2: DJNZ R0, DELY2

DJNZ R1, DELY2

mov R1, #0

mov R1, #100

DJNZ R2, DELY2

mov R0, #0

mov R0, #194

RESY2:       DJNZ R0, RESY2

mov A,0h  ; выключение Y2 

movx @DPTR,A

ljmp endy

GQ0:           mov A, 00100000b;установить У3

movx @DPTR,A; вывод в регистр

Y3:              mov R2, #4

mov R1, #50

DELY3:       mov R0, #0

mov R0, #48

DEСR0Y3: DJNZ R0, DELY3

DJNZ R1, DELY3

mov R1, #0

mov R1, #100

DJNZ R2, DELY3

mov R0, #0

mov R0, #94

RESY3:       DJNZ R0, RESY2

mov A, 0h  ; выключение Y3

movx @DPTR, A

endy:

3.2.4. Разработка блока формирования Y4

Для формирования Y4 необходимо осуществлять ввод аналогового сигнала X7. Ввод осуществляется аналогично X5 и X6. Полученный в результате этой операции код N7, используется для получения цифрового значения Q4 по следующей формуле:

, где А0=0.17 и А1=0.125 – коэффициенты, хранящиеся в ПЗУ.

Полученный цифровой код выводиться во внутренний регистр микросхемы ЦАП, для преобразования в аналоговую форму.

Текст программы формирования Y4:

; ввод аналогового сигнала X7

mov R3,12

mov DPTR, #FF04h  ; адрес АЦП канал U1

setb P3.0 ;установить AADC

movx A,@DPTR

DELN7:       djnz R3, DELN7; задержка 25мкс

mov R3,#0

clr P3.0      

mov R0,A; R0:=X5

inc DPTR

setb P3.0 ;установить AADC

movx A,@DPTR;A:=N7

; умножение N7 на A1

mov B, A1

mul A, B;A:=A*125

mov B, 100

div A, B;A:=A/100

mov B, 10

div A, B;A:=A/1000=>A=N7*0.125

add A, A0;A:=A+0.17

mov DPTR, FF10h;Адрес ЦАП               

movx @DPTR,A; вывод цифрового значения в ЦАП

mov 0071h, A ; Сохранение текущего значения Q4

; для вывода на индикаторы

ljmp beg               ; Возврат к началу цикла управления

3.2.5. Разработка обработчиков прерываний

          При поступлении какого-либо сигнала прерывания он попадает на вход внешнего прерывания Р3.2 и инициирует запуск одной из трех подпрограмм.

0003h         jb P1.0, failcall; вызов обработки аварии

jb P1.1, pwrcall; вызов обработки питания

jb P1.2, keycall;вызов обработки клав.

reti

3.2.5.1. Разработка обработчика прерывания от аварийного датчика

При поступлении прерывания от аварийного датчика, необходимо осуществить вывод текущих значений X1 – X4, и цифрового кода Q4. Текущие значения хранятся в ОЗУ по адресам 0070h – X1-X4, и 0071h – Q4.

Вывод значений X1 – X4 на индикацию осуществляется путем занесения в соответствующие разряды регистра КР1554ИР22 из текущих значений. Единичное значение отображается свечением соответствующего светодиода.

Вывод Q4 на индикаторы осуществляется в подпрограмме displ.

Сигнал аварии выдается путем занесения 7 в 4-ый разряд индикаторного регистра. Выбор именно этого разряда избавляет от  необходимости изменения программы в случае увеличения числа индикаторов.

После выдачи сигналов, переводим систему в состояние ожидания командой HLT.

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

org addr_failure

push ACC; Сохранение A

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

setb TR0; Включение аварийной сигнализации

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 DPTR, #tbl

mov A, R0

movc A, @A+DPTRr;a:=[dptr+<a>]

push DPTR

push ACC

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

mov DPTR, #FF0Ch

mov @DPTR, A

pop ACC

mov DPTR, #FF0Dh

mov @DPTR, A

pop DPTR

mov A, R1

movc A,@A+DPTR

push DPTR

push ACC

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

mov DPTR, #FF0Ch

mov @DPTR, A

pop ACC

mov DPTR, #FF0Dh

mov @DPTR, A

pop DPTR

pop ACC

clr P1.0

hlt; Останов процессора

ret                            ; Возврат из прерывания