Листинг программ

ü Листинг программы для передатчика.

sjmp start_vzyat bit P1.0_snyat bit P1.1bit P1.2:

; Делаем начальные установкиkey_vzyatkey_snyatkontrolPSW, #00001000b; Выбор банка регистров RB1

; Производим опрос клавишьkey_vzyat, vzyat_ohr; если нажата кнопка "взять", то берем под охрануkey_snyat, snyat_ohr; если нажата кнопка "снять", то снимаем с охраны

sjmp start_ohr: acall vzyatstart_ohr: acall snyat

sjmp start

; ***Подпрограмма задержки на 50 мс***_50ms: orl TMOD, #00000001b; Переводим тайер T0 в 1-ый режим работыTH0, #HIGH (not (50000-1)); заносим старшую часть от 50 мсTL0, #LOW (not (50000-1)); заносим младшую часть от 50 мсTR0; запускаем таймер: jnb TF0, wait1; Установился ли флаг прерыванияTR0; Остановка таймераTF0; сброс флага прерывания

; ***Подпрограмма зажигания контрольного светодиода на 1 с

; после отправки пакета с командой:

setb kontrolR0, #20_w: acall delay_50ms

djnz R0, sec_wkontrol

ret

; Подпрограмма отправки комады взять под охрану:SCON, #01100000b; настройка последовательного порта на 1-ый

; режим работыTMOD, #00001111b; настройка таймера 1 на 2-ый режим работы

orl TMOD, #00100000bTH0, #fdhTL0, #fdhTR1sbuf, #10010101b; отправка команды

jnb TI, $; ждем пока отправитсяTI; очистка флага TIsvetodiod; зажигаем контрольный светодиод

; Подпрограмма отправки комады снять с охраны

snyat:SCON, #01100000bTMOD, #00001111bTMOD, #00100000bTH0, #0fdhTL0, #0fdhTR1sbuf, #01110110b

jnb TI, $TIsvetodiod

ret

ü Листинг программы для приемника.

sjmp startBIT P2.0BIT P2.1BIT P2.2; Зеленый светодиод. горит, когда объект не под охраной,

; орана снятаBIT P2.3; Красный светодиод. Горит, когда шлейф оборван

; или не закрыты двери при взятии объект под охрануBIT P2.4; Желтый светодиод горит, когда объект под охраной

shleyf1 BIT P2.5BIT P2.6

flag SET 0; если flag=1, то объект под охраной

; если flag=0, то объект не под ораной:

; Делаем начальные установкиshleyf1; устанавливаем значение 1 на битах 5 и 6shleyf2; порта 2 для регистрации возможного обрываgreen; зажигаем зеленый светодиодredyellowPSW, #00001000b; Выбор банка регистров RB1_paket:

; проверяем установлина ли охрана, если да, то проверяем шлейфы на обрыв

; если нет, то проверка на пакетflag, #1, proverka1RI, proerka1; Если пакет пришел, то proverka1 - его анализ

mov R0, P2R0, #00100000bR1, P2R1, #01000000bR0, #00100000b, vzlom

cjne R1, #01000000b, vzlomread_paket

; анализ входящих пакетов:

; ***Настройка последовательного порта на 1-ый режим работы***SCON, #01110000b

; настройка таймера 1 на 2-ый режим работы

anl TMOD, #00001111bTMOD, #00100000bTH0, #0fdhTL0, #0fdh

setb TR1RI,$; ждем окончания приема пакетаA, SBUF; заносим его в аккуляторRIA, #10010101b, proverka2; если пакет = команда взят под охрану (10010101),

; тогда проверяем закрыты ли двери_or:

mov R0, P2R0, #00100000bR1, P2

anl R1, #01000000bR0, #00100000b, onred; если двери не закрыты, тогда зажигаем красныйR1, #01000000b, onred; светодиод и ждем новой команды

; Если двери закрыты, тогда берем под охрану

Перейти на страницу: 1 2

Прочтите также:

Инженерно-психологическое и эргономическое проектирование Монитора пациента
В настоящее время непрерывно расширяется область применения методов регистрации параметров биосигналов в практических и исследовательских задачах. Современный уровень научных достижений ...

Проект регулируемого двухполярного блока питания
Рост эффективности общественного производства, повышение качества продукции, научные достижения сегодня становятся практически невозможными без широкого применения электронной аппара ...

Система охранной сигнализации
охранный сигнализация микроконтроллер Развитие микроэлектроники и широкое применение ее изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объе ...

Основные разделы

2019 © Все права защищены! >> www.techeducator.ru