Напряжение Х7 преобразуется с помощью АЦП в цифровую форму N7, затем вычисляется функция Q4=A0+A1*N7, где А0 и А1 - коэффициенты, хранящиеся в ПЗУ МПС.
Предполагается, что значения всех исходных величин меньше 1 и представляются в форме с фиксированной запятой. Значение коэффициента А1 равно 0.25, а значение А0=0.17. Значение Q4 с помощью ЦАП преобразуется в напряжение Y4, которое далее поступает на ИМ.
Рис. 28. Схема алгоритма управления объектом. |
При инициализации МПС необходимо выполнить следующие действия:
· запрещение всех аппаратных прерываний на время инициализации,
· программирование регистров контроллера прерываний,
· заполнение таблицы векторов прерываний,
· организация стека в ОЗУ,
· программирование портов ввода/вывода на чтение или запись в порты,
· гашение всех индикаторных элементов,
· разрешение аппаратных прерываний.
cli ;Запрещение всех аппаратных прерываний.
; Организация стека.
; Установка сегментных регистров
xor ax,ax
mov ss,ax
mov sp,0FFFh ; 0FFFh - старшая ячейка ОЗУ
mov ds,ax
;Программирование параллельного интерфейса .
; Порт А - вывод информации (значения Q4 через ЦАП)
; Порт В - вывод информации для управления таймером
; разряды С0-С2 порта С вывод - Y1-Y3
; разряды С4-С7 порта С - ввод значений Х1-Х4
mov al,10001010b
out [53h], al
;Программирование контроллера прерываний.
;СКИ1
mov al , byte ptr 00010010b
out [40h], al
; СКИ2
mov al, byte ptr 00000000b
out [41h], al
; Заполнение таблицы векторов прерываний.
;Прерывание 0
xor bx,bx
mov [bx],offset IRQ0;
mov [bx+2],word ptr seg IRQ0
;Прерывание 1
mov [bx+4],offset IRQ1;
mov [bx+6],word ptr seg IRQ1
;Прерывание 2
mov [bx+8],offset IRQ2;
mov [bx+10],word ptr seg IRQ2
; Программирование контроллера клавиатуры/дисплея
mov al,00000001b
out [49h], al
mov al,39h ;частота перебора линий сканирования
out [49h], al
;гашение всех индикаторных элементов.
mov al, byte ptr 10010000b
out [49h], al
mov al,0FFh
out [48h], al
out [48h], al
out [48h], al
out [48h], al
;Чтение значений Х1,Х2,Х3,Х4.
in al,[52h] ;AL = X4 X3 X2 X1 0 0 0 0
xor bx,bx
;Преобразование формата хранения сигналов к удобному для обработки
rol al,1 ;сдвиг влево на 1 разряд
;с установкой флага переноса
adc bh,0 ;bh= 0 0 0 0 0 0 0 X4 - сложение с учетом переноса
rol al,1 ;далее - аналогично для X3,X2,X1
adc bl,0 ;bl=X3
rol al,1
adc ah,0 ;ah=X2
rol al,1 ;al = 0 0 0 0 X4 X3 X2 X1
mov [x1234],al ; x1234 - имя ячейки памяти
and al,1 ;al=X1
;Вычисление логической функции f1 = X1+X2+X3+X4
;Вычисление значения Y1 в AL
xor al,ah ;X1+X2
xor al,bl ;X1+X2+X3
xor al,bh ;X1+X2+X3+X4
;Сравнение с нулем
or al,al ;Вырабатывается флаг Z
;Если равно единице, то выдаем сигнал 1
jz notY1
;Если f1 равна 1
;Формирование Y1 длительностью Т1 = 90мс.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.