Разработка алгоритма управляющей программы
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

При проектировании системы в основу данной разработки блок-схемы алгоритма (БСА) была положена та же процедура модульного проектирования, которая традиционно используется разработчиками аппаратурных средств. Алгоритм управляющей программы составлен для контроллера шлюза и ориентирован на микроконтроллер AT89C51-20PI (см. чертеж “Блок схема алгоритма”).

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Алгоритм имеет разветвленную структуру и дальнейшее его описание будет происходить в строгом соответствии с каждым символом-блоком действий.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Запрос прерывания. Алгоритм начинается с проверки условий запроса прерывания. Имеется в виду прерывание по портам P3.2 (INT0) и P3.3(INT1). Инициатором прерывания являются электронные идентификаторы. Регистор масок прерываний устанавливается в “разрешение внешних прерываний”. От внешних прерываний (если пользователь прикоснулся идентификатором считывателя кода) устанавливаются флаги IE0 или IE1 в регистре TCON, которые инициируют вызов соответствующей подпрограммы обслуживания прерывания. .........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Флаги опрашиваются аппаратно в каждом машинном цикле. Внешние прерывания INT0 и INT1 вызываются переходом сигнала из 1 в 0 на входах МК51. То есть проверка запроса прерывания заключается в проверке условий: установлен флаг IE0 (или IE1) или нет. Если флаг установлен, значит есть запрос прерывания и программа переходит к обслуживанию ввода 64-ех битного кода идентификатора пользователя. Если флаг не установлен (то есть нет запроса прерывания), тогда программа переходит к блоку обработки - “Опрос датчиков”.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Ввод кода. После того как обнаружено прерывание, происходит переход к вводу идентификационного кода, который заключается в комбинациях минизадержек и опросов порта P3.2 (или P3.3). Задержка организуется запуском таймера (105 мксек), в течении которой опрашиваются входные порты. Инициатором запуска таймера выступает микроконтроллер, который выдает “стробирующие импульсы” на выход порта P3.5( или Р3.7) и переходит в режим ожидания ответа от идентификатора в течении задержки. Считывая код, микроконтроллер каждый бит заносит в резидентную память данных. Программа считывания кода с идентификатора приведена в приложении 3.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

ИК1=1; ИК2=1. После того как код считан и занесен в РПД, программа переходит к следующему блоку. В данном случае блок индикации. Контроллер настраивает порты Р1.0 и Р1.1 на вывод логических нулей, для того чтобы “зажечь” красные светодиоды на обеих сторонах шлюза. Красные светодиоды сигнализируют пользователю, что код считан и система обрабатывает полученные данные, причем внешние прерывания от идентификаторов игнорируются. Затем программа переходит к блоку передачи кода в моноканал.

 .........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Вывод кода. Вывод кода в моноканал для передачи его на пульт управления происходит следующим образом. МК51 переходит в режим ожидания запроса от пульта управления. Имеется в виду следующее.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

В регистре специальных функций SCON микроконтроллера имеется управляющий бит SM2, который в режиме 3 УАПП позволяет относительно простыми средствами реализовать обмен информацией в локальной сети между контроллерами и пультом управления (компьютером). Механизм обмена информацией через последовательный порт МК51 построен на том, что в режиме 3 программируемый девятый бит данных при приеме фиксируется в бите RB8. УАПП программируется таким образом, что при получении стоп-бита прерывание от приемника будет возможно только при условии RB8=1. Это выполняется установкой управляющего бита SM2 в регистре SCON. Компьютер в протокольном режиме “широковещательной” передачи (всем ведомым контроллерам) выдает в моноканал слово-адрес микроконтроллера, которое отличается от слов-данных только тем, что в его девятом бите содержится 1. Программа реализации протокола сетевого обмена информацией построена таким образом, что при получении слова-адреса, МК51 сверяет полученный адрес со своим адресом и в случае совпадения выдает в моноканал слово подтверждающее запрос адреса. Затем сбрасывает свой управляющий бит SM2 и готовится к подтверждению ответа от компьютера. После подтверждения микроконтроллер переходит к передаче кода-идентификатора в моноканал и заканчивает передачей кода “конец связи”. Передача ведется в режиме 3 УАПП.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Ожидание1. “Ожидание1” является подпрограммой обслуживающей обмен данными между компьютером и контроллером. Когда МК51 передает данные в моноканал он затем переходит в режим ожидания от компьютера. Это реализуется аппаратурной реализацией временного интервала на основе таймера задержки длительностью 2мсек.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

В задачу ожидания также входит определение момента прихода ответа от компьютера. Для этого каждые два цикла микроконтроллера опрашивается регистор SCON.0( или бит RI). Бит RI устанавливается аппаратно в единичное состояние для фиксации приема байта в регистре SBUF. (Флаг прерывания приемника RI устанавливается аппаратурно в середине периода стоп-бита в режиме 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI). То есть если обнаружено, что в течении ожидания RI=1, значит пришел ответ от компьютера.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Ввод ответа. В течении ожидания приходит ответ от компьютера, который заносится в РПД. А в резидентной памяти программ (РПП) хранятся коды правильных и неправильных кодов-ответов (см. Таблицу3.5)

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Таблица 3.5Правильные и неправильные коды - ответы

адрес РПП информационный код назначение
0CH 00001111 пользователь идентифицирован
0DH 11110000 пользователь неидентифицирован
0EH 00011111 подлиность подтверждена
0FH 11100000 подлиность неподтверждена

 

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Сверяя полученные ответы с хранящимися кодами, МК51 принимает соответствующее решение о переходе на ту или иную подпрограмму.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Опрос датчиков. Контроллер обрабатывает информацию снимаемую с датчиков. Эта задача реализуется обращением к порту P.0 и сравнении снятого кода с таблицей кодов положения дверей хранящихся в РПП (см. таблицу 3.6)

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Таблица 3.6 Таблица кодов положения дверей, хранящихся в РПП

 

положение дверей

  закрыто нейтрально открыто
д1.1 1 0 1
д1.2 1 0 0
д1.3 1 0 0
д1.4 1 0 1
д2.1 1 0 1
д2.2 1 0 0
д2.3 1 0 0
д2.4 1 0 1

 

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Таблица 3.7 коды соответствующие возможным положениям дверей шлюза.

адрес РПП информационный код назначение
05H 00001001 двери1 открыты
06H 00001111 двери1 закрыты
07H 10010000 двери2 открыты
08H 11110000 двери2 закрыты

 

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

В таблице 3.7 хранятся коды соответствующие возможным положениям дверей шлюза. В нейтральном положении на входе порта Р.0 присутствуют все нули (т. е. 00000000). В зависимости от считанного кода порта Р.0 принимается соответствующее решение о переходе на соответствующую подпрограмму.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Кроме того опрашивается порт Р.2 , который предназначен для считывания кода с АЦП, в котором содержится информация о физической массе. Если масса равна нулю и двери закрыты происходит переход на начало программы. В случае не выполнения этих условий запускается подпрограмма инициализации запуска тревоги, которая заключается в передаче соответствующего кода на пульт управления.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Микроконтроллер переходит в режим ожидания запроса адреса от компьютера (См. блок “Вывод кода”). Установив связь с компьютером МК сбрасывает в регистр SBUF байт соответствующей определенному виду тревоги. Т.е. если масса не равна нулю то в SBUF записывается 01011000 (что говорит о присутствии в шлюзе нарушителя), если двери открыты, то в SBUF записывается 00001001 или 10010000 (что говорит о саботаже работы дверей). Запись в SBUF означает автоматическую передачу кода в моноканал.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Звуковая сигнализация. После выдачи в моноканал кода-тревоги, МК инициирует подпрограмму включения звуковой сигнализации, которая предупреждает нарушителя о саботаже работы системы. Длительность звуковой сигнализации - 5 секунд. После чего программа снова возвращается к опросу датчиков. Еще раз опросив датчики и если условие m=0, d=0 (т.е. масса =0, двери закрыты) программа возвращается в начало.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

ИК1=0, ИЗ1=1. Если пользователь идентифицирован программа переходит к следующей операции: погасить красный светодиод на входе в шлюз (на выходе красный остается включенный), включить зеленый. Для этого на порт P.1.0. подается 1, на порт Р.1.2 подается 0. Если пользователь не идентифицирован происходит переход на подпрограмму запуска звуковой сигнализации, а затем в начало программы.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

После того как пользователь идентифицировался запускается подпрограмма открывания сдвижных дверей (см. приложение 3) и переход в режим ожидания. Ожидание заключается в аппаратно-программной задержке на 10 секунд для того, чтобы дать пользователю время войти в шлюз. Если по истечении этого времени он не войдет, двери автоматически закрываются. В течении задержки программа постоянно (каждые 10 циклов) опрашивает датчик массы. Как только не выполняется условие m=0, происходит переход к следующему блоку программы. А именно - закрытие дверей1. Закрытие дверей заключается не только в подаче кода-закрытия на Р.1.6. и Р.1.4. Попутно с запуском подпрограммы задержки (на время закрытия двери) происходит опрос датчиков для обнаружения возможного факта нарушения регламента работы сдвижных дверей. Т.е. если во время задержки двери не будут закрыты, поступит команда на их повторное открывание (ситуация - пользователь не спел войти в шлюз). Если по истечении одной минуты конфликтная ситуация не разрешится с компьютера поступит код-сигнал блокировки дверей до прихода службы безопасности. Если пользователь находится в шлюзе (m не равна 0, т.е. код на порте Р.2.1-Р2.7 не равен 0) программа переходит к ожиданию кода своего сетевого адреса на входе УАПП (см. ввод кода). После установки связи контроллер выдает в моноканал код соответствующий массе пользователя после чего переходит в режим ожидания1 (см. приложение 3) ответа от компьютера. Полученный код сверяется с адресом 0СН в случае совпадения - переход к подпрограме “открытия двери”.

.........................................................................................................................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

Дата: 2019-02-24, просмотров: 192.