Программа устройства на Ассемблере



; Определение символических имён

; Определение символических имён бит порта 1

C BIT P1.0; датчик температуры +1 (камера 1)

D BIT P1.1; датчик температуры +8 (камера 1)

E BIT P1.2; датчик двери (камера 1)

F BIT P1.3; компрессор

G BIT P1.4; сигнал

H BIT P1.5; датчик температуры -18 (камера 2)

I BIT P1.6; датчик температуры -8 (камера 2)

J BIT P1.7; датчик двери (камера 2)

; Определение символических имён бит порта 2

K BIT P2.0; вкл/выкл (разморозка)

; Программа

START: JB E, L1; перейти на метку L1 если бит равен 1

CALL PAUSE; вызов подпрограммы PAUSE

L0: JB E, L1; перейти на метку L1 если бит равен 1

CALL ALARM; вызов подпрограммы ALARM

CALL ONESEC; вызов подпрограммы ONESEC

JMP L0; перейти на метку L0

L1: JB J, L3; перейти на метку L3 если бит равен 1

CALL PAUSE; вызов подпрограммы PAUSE

L2: JB J, L3; перейти на метку L3 если бит равен 1

CALL ALARM; вызов подпрограммы ALARM

CALL ONESEC; вызов подпрограммы ONESEC

JMP L2; перейти на метку L2

L3: JNB D, L4; прейти на метку L4 если бит равен 0

SETB F; установка бита

L4: JNB C, L4; прейти на метку L4 если бит равен 0

CLR F; сброс бита

JB I, L5; прейти на метку L5 если бит равен 0

SETB F; установка бита

L5: JNB H, L5; прейти на метку L5 если бит равен 0

CLR F; сброс бита

L6: JNB K, START; прейти на метку START если бит равен 0

JMP L6; перейти на метку L6

; Подпрограммы

ALARM: SETB G; установка бита

CALL ONESEC; вызов подпрограммы ONESEC

CPL G; инвертировать бит G

RET; возврат

Подпрограмма задержки на 30 секунд

PAUSE: MOV R6,#30; загрузить в регистр R6 константу

CALL ONESEC; вызов подпрограммы ONESEC

DJNZ R6, PAUSE; декремент регистра R6 и переход если не 0

RET; возврат

; Подпрограмма задержки на 1 секунду

ONESEC: MOV R7,#20; загрузить в регистр R7 константу

SEC:CALL DELAY; вызов подпрограммы DELAY

DJNZ R7, SEC; декремент регистра R7 и переход если не 0

RET; возврат

; Подпрограмма задержки на 50 мс

DELAY: MOV TMOD,#0001B; установка таймера /счетчика в режим 1

MOV TH0,#65536; загрузить в регистр TH0 константу

MOV TL0,#15536; загрузить в регистр TL0 константу

SETB TCON.4; пуск таймера / счетчика

DEL: JNB TCON.5, DEL; ожидание переполнения таймера / счетчика

CPL TCON.4; остановка таймера / счетчика

CPL TCON.5; сброс флага

RET; возврат

 

 


Список используемых источников

 

1. Сташин В.В., Урсулов А.В., Мологонцева О.Ф. Проектирование цифровых устройств на одно-кристальных микроконтроллерах. М.: Энерго-атомиздат, 1990. 224 с.

2. Методические указания к лабораторной работе №2 по курсу «Цифровые устройства и микропроцессоры» В.А. Добряк, В.К. Рагозин. Екатеринбург: Изд-во УГТУ, 1999. 32 с.

 

 


Приложение 1. Блок-схема основной программы

 

 


Нет

 


Дата добавления: 2018-04-15; просмотров: 204; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!