Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсовой проект / Курсовая по МП1 / Программа управления контроллером

.doc
Скачиваний:
35
Добавлен:
21.02.2014
Размер:
76.8 Кб
Скачать

Программа управления контроллером

ORG 0000h

LXI SP,0FFEh ; Указатель стека

MVI A,11011001b ; Инициализация порта В/В №1

OUT 43h

MVI A,11110111b ; Инициализация порта В/В №2

MAIN:

m1: IN 40h ; Ждем срабатывания датчика влажности

ANI 10000000b

JZ m1

MVI A,11110111b ; Открыть клапан 1 для заливки порции воды в емкость

OUT 80h

m2: IN 40h ; Ждем пока не сработает датчик заполнения емкости водой

ANI 01000000b

JZ m2

MVI A,11111111b ; Закрыть клапан 1 заливки воды

OUT 80h

IN 81h

ANI 11111111b ; Считаем номер текущей позиции устройства поливки

MOV B,A ; Сохраним номер текущей позиции в регистре В

IN 41h

ANI 11111111b ; Считаем номер позиции, где сработал датчик в регистр А

MOV C,A ; Сохраним номер позиции, где сработал датчик в регистре С

CMP B ; Сравним позиции , текущую и позицию где сработал датчик

JZ mS ; Если равны откроем клапан 2 сброса воды

JC mL ; Проверим , если позиция, где сработал датчик, слева от

; текущей , то включим вращение двигателя влево

; иначе вправо

mR: MVI A,01111111b ; Включим вращение двигателя вправо

OUT 80h

JMP m3

mL: MVI A,10111111b ; Включим вращение двигателя влево

OUT 80h

m3: IN 81h

ANI A,11111111b

CMP C

JNZ m3 ; Позиция где сработал датчик ?

MVI A,11111111b ; Выключим двигатель

OUT 80h

m4: IN 40h

ANI 00010000b ; Проверка вращения двигателя вправо

JNZ m4

m5: IN 40h

ANI 00100000b ; Проверка вращения двигателя влево

JNZ m5

mS: MVI A,11011111b ; Открыть клапан 2 сброса воды

OUT 80h

m6: IN 40h

ANI 00001000b ; Ждем срабатывания датчика окончания сброса воды

JNZ m6

MVI A,11111111b ; Закрыть клапан 2 сброса воды

OUT 80h

END: HLT

Соседние файлы в папке Курсовая по МП1