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. Подпрограмма установки предельных значений с декадных переключателей
Особенностью разработанного микроконтроллера является то, что он работает с аналоговыми входными сигналами, которые затем обрабатываются цифровыми методами. Для этого производится оцифровка аналогового сигнала с помощью АЦП К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-разрядной вычислительной системой.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.