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

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

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

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

РЛС обзора земной поверхности
РЛС обзора земной поверхности, предназначенные для картографирования земной поверхности, решения задач воздушной разведки и т.д., имеют высокую разрешающую способность, определяющую ...

Разработка системы бесконтактного термометрирования поршня ДВС
Прогнозирование развития какого-либо процесса на основе существующих данных является важным вопросом в любой предметной области. В настоящее время существуют различные системы моделирова ...

Разработка передающего устройства телеуправления
Аппаратура автоматики системы электроснабжения позволяет обеспечить непрерывный контроль и поддержание заданного режима работы основного оборудования и тем самым повысить его надежность ...

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

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