Разработка микроконтроллера сбора данных о температуре печи для плавки металла, страница 19

JM    PER2            ; если ст. разр. = 1

dad   h               ; сдвиг делимого влево

dcr   b               ; уменьшение счетчика

JMP   DIVcycle2       ;

PER2:       lxi   d,0             ; обнуление частного

sub   c               ;

inx   d               ; установка разряда частного = 1

JNC   PER3            ; если разность > 0

dcx   d               ; сброс разряда частного =0

add   c               ; восстановление делимого

PER3:       mov   h,a             ;

xra   a               ; проверка счетчика циклов на 0

add   b               ;

JZ    DIVend          ; если счетчик = 0

DIVcycle:   xchg                  ;

dad   h               ; сдвиг влево частного (DE)

xchg                  ;

dad   h               ; и остатка (HL)

mov   a,h             ; (A) - стб остатка

JC    PER4            ; если переполнение остатка

sub   c               ;

JNC   PER5            ; если разность > 0

add   c               ; разность < 0, восст. остатка

mov   h,a             ;

JMP   PER6            ;

PER4:       sub   c               ; вычитание делителя

PER5:       mov   h,a             ;

inx   d               ; разряд частного = 1

PER6:       dcr   b               ; проверка конца цикла

JNZ   DIVcycle        ;

DIVend:     pop   psw             ; (A) - счетчик циклов

RZ                    ; если счетчик = 0 (CY=0)

mov   c,a             ;

xra   a               ;

add   h               ; (A) - остаток

DIVcycle3:  rar                   ;

dcr   c               ;

JNZ   DIVcycle3       ;

mov   h,a             ;

RET                   ;

ENDPROC               ;

;----------------------------------

;▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒

;           Delay50ms

; Главнаязадержка 50 мс

;----------------------------------

Delay50ms   PROC                  ;

lxi   b,2060          ;  49.5 мс всего (500 мкс на MAIN)

Loop50ms:   dcx   b               ;  5T

mov   a,c             ;  5

ora   b               ;  4

JNZ   Loop50ms        ; 10T - в цикле 24T

ret                   ;

ENDPROC               ;

;----------------------------------

            end



Рис. 8. Подпрограмма сканирования кнопок на панели упрвления.


Рис. 9. Подпрограмма обновления данных дисплея


Рис. 10. Подпрограмма установки предельных значений с декадных переключателей



3.  Подпись: Рис. 11. Подпрограммы оцифровки входных данных.

4. ОПИСАНИЕ РАБОТЫ ПРИНЦИПИАЛЬНОЙ СХЕМЫ

Особенностью разработанного микроконтроллера является то, что он работает с аналоговыми входными сигналами, которые затем обрабатываются цифровыми методами. Для этого производится оцифровка аналогового сигнала с помощью АЦП  К1113ПВ1. Для обработки двух входных сигналов одним каналом оцифровки (усилитель DA5 + АЦП DA6) на входе системы использован аналоговый коммутатор DA1 (КР590КН7), которым выбирается один из входных аналоговых сигналов для обработки. Управление коммутатором осуществляется записью нуля или единицы в четвертый разряд порта PC микросхемы DD6.

Затем выбранный входной сигнал (номинальные пределы 0…3 В) усиливается неинвертирующим усилителем на ОУ DA5 в два раза и поступает на вход АЦП. Точная регулировка входного коэффициента осуществляется резистором R15. Регулировка смещения нуля в данной схеме не применяется, т.к. у АЦП смещение нуля не превышает 10 мВ, что после программного деления на 2 составит не более 5 ед., а входной усилитель на прецизионном ОУ 140УД17 дает смещение не более 0,1 мВ, что практически незаметно на фоне ошибки АЦП.

Для правильной работы АЦП необходимо его тактировать по входу С (выв. 11) след. образом: сначала производится сброс выходных данных (гашение) низким уровнем по входу С на время не менее 5 мкс, затем по высокому уровню на С  начинается преобразование входного аналогового напряжения. Данный АЦП содержит встроенный тактовый генератор, и время преобразования составляет до 30 мкс. По окончании преобразования на цифровых выходах АЦП появляются данные в двоичном коде и высокий уровень на выходе Ready (состояние последнего можно опросить через разряды PC2, PC3 микросхемы ППИ DD6). После этого процессор может считать правильные данные с АЦП через порты PB (разряды 7-0 от АЦП) и PC (разряды 8-9) ППИ DD6. Таким образом обеспечивается сопряжение 10-разрядного АЦП с 8-разрядной вычислительной системой.