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

Значение выходного сигнала Y1 формируется на основе значений входных сигналов X1 - X4. Ввод осуществляется с регистра DIG микросхемы КР1554ИР22. Четыре старших разряда – незначащие, в процессе работы они обнуляются. После того, как значение Y1 сформировано, необходимо сформировать задержку, равную 100 мс. Будем делать это программно. Известно, что время цикла ОМЭВМ tCYMIN=12TBQ1=12*83,3 нс=0.9996 мкс. Зная, что команда DJNZ R0,addr выполняется за 2 цикла, команда MOV R0,#data – за 1 цикл и команда LJMP addr, можно рассчитать, что последовательность команд:

mov R2,#5

mov R1,#200

DELY1:       mov R0,#0

mov R0,#48

DEСR0Y1: DJNZ R0, DELY1

DJNZ R1, DELY1

mov R1,#0

mov R1,#200

DJNZ R2, DELY1

mov R0,#0

mov R0,#93

RESY1:       DJNZ R0, RESY1

выполняется за 1+1+5*200(1+1+48*2)+(1+1+2)*200+5*2+2+93*2 = 100000 циклов, или 100000*1 мкс =100 мс. Следовательно, запустив эту последовательность, получим требуемую задержку 100 мс.

Вывод Y1 осуществляется установкой 4-ого разряда регистра КР1554ИР22 в единицу на требуемое время, с последующим сбросом.

После ввода значений X1 – X4, эти значения сохраняются в ячейке ОЗУ 200h для вывода на индикацию при нажатии клавиши "ВЫВОД".

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

beg:         mov DPTR,#00h

movx a, @DPTR          ; Ввод значений X1 – X4

anl A,#0Fh           ; Обнуление незначащих разрядов

mov 0070h, A      ; Cохранение текущих значений X1 – X4

; Вычисление функции Y1

          mov R0, #00000001b

push ACC

          anl A, R0

mov R0, A

mov R1, #00000010b

pop ACC

anl A, R1

mov R1, A

mov R2, #00000100b

pop ACC

anl A, R2

mov R2, A

mov R3, #00001000b

pop ACC

anl A, R3

mov R3, A

mov A, R1

xnl A, R2;A:=X2+X3

xnl A, R3;A:=X4+X2+X3

xnl A, R1:A:=X1+X4+X2+X3

jnz y1                   ; Если Y1 неравно 1

ljmp prdel                      ; переход по метке

mov DPTR, FF00h        ; иначе вывод Y1

          movx @DPTR, A

Y1:              mov R2, #5

mov R1, #200

DELY1:       mov R0, #0

mov R0, #48

DEСR0Y1: DJNZ R0, DELY1

DJNZ R1, DELY1

mov R1, #0

mov R1, #200

DJNZ R2, DELY1

mov R0, #0

mov R0, #93

RESY1:       DJNZ R0, RESY1

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

movx @DPTR, A

3.2.3. Разработка блока формирования Y2 (Y3)

Для формирования управляющего воздействия Y2 (или Y3), необходимо осуществить ввод аналоговых сигналов X5, X6. Для ввода этих сигналов необходимо управлять аналоговым цифровым преобразователем. Управление осуществляется подачей сигнала AADC и выбором канала с помощью адресных входов A0,A1. После подачи на вход CS  АЦП напряжения низкого уровня, время преобразования составит 25мкс х 3 канала=75мкс.

Таким образом, необходимо задержать вычислительный процесс на 75мкс. Для этого воспользуемся программой задержки, аналогичной приведенной выше. Ввод цифрового значения осуществляется командой чтения из внутреннего регистра АЦП.

Ввод сигнала X6 осуществляется аналогично.

После ввода X5 и X6, осуществляется вычисление Q4,по формуле приведенной ниже:

, где N5, N6 – преобразованные значения Х5 и Х6 соответственно, а К – значение уставки, записанной ранее в ОЗУ по адресу [0204h].

По результатам сравнения, осуществляется вывод Y2, либо Y3. Задержка сигналов формируется аналогично задержке по пункту 3.2.1 (Вывод значения У1). Приведем лишь расчет значений, загружаемых в регистры:

1.  Для У2: 1+1+4*100(1+1+48*2)+(1+1+2)*100+4*2+2+194*2 = 40000 циклов, или 40000*1 мкс =40 мс;

2.  Для У3: 1+1+4*50(1+1+48*2)+(1+1+2)*50+4*2+2+94*2 = 20000 циклов, или 20000*1 мкс =20 мс.

Текст программы формирования Y2 (Y3):

INX56:    ; ввод аналоговых сигналов X5 –X6

mov R3,12

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

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

movx A, @DPTR

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

mov R3, #0

clr P3.0      

mov R0, A; R0:=X5

inc DPTR

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

movx A, @DPTR

mov R3,12

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

mov R3, #0

clr P3.0      

mov R1, A; R1:=X6

inc DPTR

mov A,R1   ; Здесь N6