Построение СУ манипулятором.
Формирование требований к аппаратной реализации СУ.
I. Сигналы от конечных выключателей манипулятора должны быть с уровнями ТТЛ.
II. Манипулятор должен воспринимать управляющие сигналы с уровнями ТТЛ.
III. При чтении из порта 0FCh биты с 0-го по 3-й должны быть равны 1 при включенных ПВ1, ПВ2, ПВ3 и ПВ4 соответственно и 0 при выключенных. При записи в этот же порт биты с 0-го по 3-й равны X, Y, X и Y соответственно.
IV. УП располагается в ПЗУ с адреса 0FFFFh:0000h.
Разработка УП.
После старта программы происходит инициализация переменной Z. Из [2] видно, что Z=1, когда манипулятор держит деталь, и Z=0, когда в руке манипулятора деталь отсутствует. УП работает согласно таблице истинности решений с элементами памяти [2, табл. 3.6.].
Текст программы:
mov ah,0 ;В регистр ah заносится значение Z=0.
cikl: ;Метка для зацикливания вычислений.
in al,0FCh ;Чтение из порта с адресом 252.
;Теперь al=(x x x x ПВ4 ПВ3 ПВ2 ПВ1)b
and al,00001111b ;Обнуление битов с 4-го по 7-й.
mov dl,00000001b ;Поместить в dl комбинацию Y=0,X=0,Y=0,X=1.
cmp ax,0000000000000101b ;Проверить комбинацию Z=0,ПВ4=0,ПВ3=1,ПВ2=0,ПВ1=1.
;Регистр AX в битах 0-7 хранит содержимое AL, а в
;битах 8-15 – AH.
jz exit1 ;Если в AX проверяемая комбинация, перейти к метке exit1.
cmp ax,0000000100000110b ;Проверить комбинацию Z=1,ПВ4=0,ПВ3=1,ПВ2=1,ПВ1=0.
jz exit1 ;Если в AX проверяемая комбинация, перейти к метке exit1.
mov dl,00000010b ;Поместить в dl комбинацию Y=0,X=0,Y=1,X=0.
cmp ax,0000000100000101b ;Проверить комбинацию Z=1,ПВ4=0,ПВ3=1,ПВ2=0,ПВ1=1.
jz exit1 ;Если в AX проверяемая комбинация, перейти к метке exit1.
mov dl,00001000b ;Поместить в dl комбинацию Y=1,X=0,Y=0,X=0.
cmp ax,0000000000000110b ;Проверить комбинацию Z=0,ПВ4=0,ПВ3=1,ПВ2=1,ПВ1=0.
jz exit1 ;Если в AX проверяемая комбинация, перейти к метке exit1.
mov dl,00000100b ;Поместить в dl комбинацию Y=0,X=1,Y=0,X=0.
cmp al,00001001b ;Проверить комбинацию ПВ4=1,ПВ3=0,ПВ2=0,ПВ1=1.
jz exit2 ;Если в AL проверяемая комбинация, перейти к метке exit2.
cmp al,00001010b ;Проверить комбинацию ПВ4=1,ПВ3=0,ПВ2=1,ПВ1=0.
jz exit2 ;Если в AL проверяемая комбинация, перейти к метке exit2.
mov dl,00000000b ;Поместить в dl комбинацию Y=0,X=0,Y=0,X=0.
jmp exit1 ;Перейти к метке exit1.
exit2: ;Метка для выхода из проверок.
xor ah,1 ;Инвертировать значение Z.
exit1: ;Метка для выхода из проверок.
mov al,dl ;Поместить в AL комбинацию выходных сигналов.
out 0FCh,al ;Отправить эту комбинацию в порт 252.
jmp cikl ;Повторить вычисления.
Дата добавления: 2020-10-01; просмотров: 389;