о тривогу і знову повертаємося до перевірки прапора. p align="justify"> Якщо FLAG = 0, тоді ми аналізуємо надійшли пакет:
. Якщо пакет дорівнює послідовності 10010101, то ми перевіряємо шлейфи (закриті двері чи ні). Якщо шлейфи в порядку, то "беремо" об'єкт під охорону, присвоюємо FLAG = 1 і повертаємося до п.1. Якщо шлейфи не в порядку, то запалюємо червоний світлодіод і повертаємося в п.1. p align="justify">. Якщо пакет дорівнює послідовності 01110110, тоді ми "знімаємо" об'єкт з охорони, присвоюємо FLAG = 0 і йдемо в п.2. p align="justify"> Якщо пакет не дорівнює послідовності 01110110, то видаємо тривогу і повертаємося до п.1.
Блок-схема роботи приймача зображена нижче.
В
7. Лістинг програм
Гј Лістинг програми для передавача.
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; Зелений світлодіод. горить, коли...