48017 (588515), страница 6

Файл №588515 48017 (Охранная система с дистанционным управлением) 6 страница48017 (588515) страница 62016-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

6. Базовое програмное обеспечение

6.1 Блок-схема алгоритма работы микроконтроллера

Основной особенностью данного устройства является, необходимость создания условий для одновременной работы трёх программ: основной (где производится индикация, программирование АЦП и модуля MSSP, переключение режимов работы ОС а также обмен данными с ПК) и прерывающих программ высокого и низкого приоритета (где производится опрос датчиков, ИК-приёмника, включение режима оповещение при помощи СИФУ).

Работа программы начинается с инициализации контроллера и переменных. В инициализацию контроллера входит:

настройка портов на вывод или ввод и отключение подтягивающих резисторов;

включение таймеров TMR0, TMR1, TMR2 и настройка их предделителей;

настройка контроллера прерываний;

включение периферийных модулей MSSP, USART, ADC и их настройка;

очистка регистров общего назначения.

Настройка портов ввода-вывода выполняется согласно таблице 6.1.1:

Таблица 6.1.1 – направление портов ввода-вывода

Порт и номер бита

Направление

PORTA,0

PORTA,1

PORTA,2

PORTA,3

PORTA,4

PORTA,5

ввод

ввод

ввод

ввод

вывод

вывод

PORTB,0

PORTB,1

PORTB,2

PORTB,3

PORTB,4

PORTB,5

PORTB,6

PORTB,7

ввод

ввод

ввод

ввод

ввод

ввод

ввод

ввод

PORTC,0

PORTC,1

PORTC,2

PORTC,3

PORTC,4

PORTC,5

PORTC,6

PORTC,7

вывод

вывод

вывод

ввод

ввод

вывод

ввод

ввод

PORTD,0

PORTD,1

PORTD,2

PORTD,3

PORTD,4

PORTD,5

PORTD,6

PORTD,7

вывод

вывод

вывод

вывод

вывод

вывод

вывод

вывод

PORTE,0

PORTE,1

PORTE,2

вывод

вывод

вывод

Перед каждым таймером должен быть включен предделитель. Предделители настраиваются согласно таблице 6.1.2. Для опроса ИК-пульта используется таймер TMR0. Он необходим для измерения периода между двумя соседними импульсами в передаваемом пакете данных.

Для опроса датчиков, вкл.\выкл. нагрузки и переключения ступени в СИФУ использован таймер TMR1.

Таймер TMR2 используется при управлении нагрузкой методом импульсно-фазового управления. Значение, записанное в регистр данного таймера, определяет промежуток времени от перехода фазы сетевого напряжения через нулевой порог до включения триака VS4.

Таблица 6.1.2 – значение предделителя для таймеров.

Таймер

Разрядность

Предделитель

Постделитель

Период

TMR0

8 бит

1:64

-

16 мс

TMR1

16 бит

1:1

-

65 мс

TMR2

8 бит

1:16

1:2

8 мс

Прерывающая программа состоит из прерываний высокого и низкого уровня. Прерывание INT0, которое возникает при переходе логического уровня с “0” в ”1” нулевого бита порта B, имеет высокий приоритет. Все остальные прерывания выполняются с низким приоритетом. Это необходимо для корректного опроса ИК-приёмника, подключенного к нулевому биту порта B.

ИК-пульт работает следующим образом. Выдается пакет, состоящий из 6 байт. Формат каждого передаваемого байта состоит из импульса сброса, стартового, 8 информационных и импульса чётности. Диаграмма передаваемого байта изображена на рисунке

Рисунок 6.1.1 – формат ИК-команд

Кодирование информации происходит следующим образом. Длительность паузы в 10 мс от импульса сброса R до стартового импульса S означает, что начата передача байта. Длительность паузы от стартового импульса до информационного (и между информационными) в 2 мс означает кодирование логического “0” а длительность в 4 мс – логической “1”. Таким же образом кодируется 9 бит чётности. Если длительность паузы не укладывается в данный диапазон, то считается что при передаче возникла ошибка, в результате чего данный пакет игнорируется. Пауза измеряется с помощью таймера TMR0. Если пауза была слишком большой, то TMR0 переполняется и начинает отсчет сначала, при этом выставляется влаг прерывания в регистре INTCON. Именно поэтому при измерении паузы необходимо проверять данный флаг прерывания. После того как весь пакет будет принят правильно, выставляется специальный флаг, который сообщает основной программе, что была принята команда с пульта. После проверки данного флага основная программа выполняет принятую команду. Формат передаваемого пакета изображён в таблице 6.1.3.

Таблица 6.1.3 – формат ИК протокола.

№ байта

Обозначение в программе

значение

1

ID_KEY

Идентификатор пульта

2

COMMAND

Передаваемая команда

3

PASS1

1 и 2 цифры пароля

4

PASS2

3 и 4 цифры пароля

5

PASS3

5 и 6 цифры пароля

6

PASS4

7 и 8 цифры пароля

После получения пакета в прерывании проверяется байт идентификатора. Если он равен 15, то принятый пакет принадлежит пульту от данной ОС и выставляется флаг, который сообщает основной программе о том что была принятя команда с ПДУ. Пульт передаёт 4 различных команды. Их код приведён в таблице 6.1.4.

Таблица 6.1.4 – коды команд ПДУ.

Код, hex

Значение

#A0

Вкл.\выкл. силовой канал №1

#B0

Вкл.\выкл. силовой канал №2

#C0

Вкл.\выкл. силовой канал №3

#EE

Переключить режим охранной системы

В подпрограмме прерывания по переполнению таймера TMR1 производится опрос подключенных датчиков. Если какой-либо датчик выдаст логическую “1” на вход то если его срабатывание разрешено байтами SENSOR_MODE и HL_STAT устанавливается флаг, проверяемый в цикле главной программы. Также в данном векторе прерывания производится увеличение ступеньки СИФУ на 25.

При возникновении прерывания таймера TMR2 производится подача импульса на триак VS4, длительность которой составляет 100 мкс. Этот импульс открывает данный триак, в результате чего нагрузка включается. Закроется триак лишь когда сетевое напряжение достигнет нулевого значения.

Значение ступени для импульсно-фазового управления заносится в таймер TMR2 при возникновении прерывания INT1. Данное прерывание происходит при переходе сетевого напряжения через нулевое значение.

Цикл основной программы состоит из следующих этапов:

чтение данных с термометра и АЦП;

Приём данных с ПК;

Передача данных на ПК;

Проверка наличия невыполненной команду ПДУ;

Анализ принятых данных и установка переменных в соответствии с ними;

Вывод данных на экран.

Цикл главной программы начинается с чтения данных цифрового термометра и АЦП, после чего производится приём данных. Если данные не поступают в течение 500 мс, значит соединение прервано, и весь цикл будёт начат заново. Формат принимаемых данных описан в таблице 6.1.6

После того как будут приняты все 10 байт, начинается передача 6 байт в ПК. Формат передаваемых данных приведен в таблице 6.1.5.

После того как обмен данными завершен, производится проверка наличия невыполненной команды с ПДУ. В том случае если таковая имеется, выполняется проверка правильности принятого пароля с паролем, считанным с ПК. В том случае если пароль верен, производится анализ принятой команды и ее выполнение.

Следующий этап главного цикла состоит в установке переменных в соответствии с данными, полученными с ПК. Здесь производится установка порогов срабатывания датчика и сравнение их с текущим значением. Если какой-либо датчик сработал, включается режим оповещения.

После обработки полученной информации, на экран выводится текущее состояние системы и температура. Затем весь цикл повторяется.

Таблица 6.1.5 – формат передаваемых данных в ПК.

Название

Назначение

1

Address

Сетевой номер охранной системы

2

SENS1_STAT

0 – флаг дверного датчика

1 – флаг оконного датчика

2 – флаг лазерного датчика

3 – знак измеренной температуры объекта

4 – десятая часть градуса температуры

5 – была команда с ПДУ на вкл.\выкл. силового канала №1

6 – была команда с ПДУ на вкл.\выкл. силового канала №2

7 – была команда с ПДУ на вкл.\выкл. силового канала №3

3

SENS2_STAT

0 – флаг доп. датчика №1

1 – флаг доп. датчика №2

2 – флаг доп. датчика №3

3 – флаг доп. датчика №4

4 – флаг доп. датчика №5

5 – флаг доп. датчика №6

6 –была команда с ПДУ

7 – была команда с ПДУ на переключение режима ОС

4

AD

Значение, полученное с аналогового датчика

5

TERMAL

Измеряемая температура объекта

6

ADD_BYTE

0 – флаг “пароль не верен”

1…7 – не используются

Таблица 6.1.6 – Формат принимаемых данных с ПК.

Название

Назначение

1

Address

Сетевой адрес охранной системы

2

HL_STAT

0 – флаг состояния силового канала №1

1 – флаг состояния силового канала №2

2 – флаг состояния силового канала №3

3 – вкл.\выкл. режим охраны

4 – отбой тревоги, очистка флагов

5 – режим оповещения (мерцание\включение)

6 – вкл.\выкл. дверной датчик

7 – команда ПДУ передана на ПК

3

TERMAL_L

Нижний порог срабатывания термометра

4

TERMAL_H

Верхний порог срабатывания термометра

5

AD_VREF

Порог срабатывания аналогового датчика

6

SENSOR_MODE

0 – вкл.\выкл. доп. датчик №1

1 – вкл.\выкл. доп. датчик №2

2 – вкл.\выкл. доп. датчик №3

3 – вкл.\выкл. доп. датчик №4

4 – вкл.\выкл. доп. датчик №5

5 – вкл.\выкл. доп. датчик № 6

6 – вкл.\выкл. оконный датчик

7 – вкл.\выкл. лазерный датчик

7

DEF_PASS1

1 и 2 цифры устанавливаемого пароля

8

DEF_PASS2

3 и 4 цифры устанавливаемого пароля

9

DEF_PASS3

5 и 6 цифры устанавливаемого пароля

10

DEF_PASS4

7 и 8 цифры устанавливаемого пароля

6.2 Разработка программы поддержки

Характеристики

Тип файла
Документ
Размер
56,56 Mb
Учебное заведение
Неизвестно

Список файлов ВКР

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7021
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее