- •1 Обзор литературы
- •1.1 Общие сведения о сигнализациях
- •1.3 Автосигнализация Pantera clk-350
- •Дистанционные характеристики
- •Функциональные характеристики
- •Характеристики питания
- •2 Выбор элементной базы. Обоснование выбора
- •2.1 Микроконтроллер ат89с5131
- •3 Схемотехническая часть (описание электронной схемы и ее функционирования)
- •2.2 Буфер uln2003a
- •4 Программная часть (описание разработанных алгоритмов и программ)
- •Заключение
- •Список использованных источников
4 Программная часть (описание разработанных алгоритмов и программ)
В начале выполнения программы производится инициализация контроллера (блок 2), а затем следует вечный цикл, в теле которого последовательно вызывается ряд процедур, выполняющих определенную функцию (блоки 3-5).
В блоке 2 происходит настройка периферии: устанавливается частота работы микроконтроллера, обработчик прерывания, настраивается таймер, настраивается сторожевой таймер. Так же происходит инициализация внутренних данных: все счетчики и контрольные флаги устанавливаются в начальное состояние, из энергонезависимой памяти считываются ранее сохраненные установки.
В блоке 3 считываются показания всех датчиков. Первоначально считывается состояние датчика удара, затем состояние датчика объёма, после чего считывается состояние датчика предупредительной зоны. Для этих трёх датчиков состояние считывается за один раз. Затем считывается состояние зажигания: если состояние зажигания после задержки 0,05 с. изменится, то цикл возвращается до этапа проверки состояния зажигания. Это происходит дважды до совпадения с задержкой 0,05 с. После этого состояние зажигания сохраняется.
Затем считывается состояние концевого датчика дверей: если счётчик чтений не равен 0, то проверяется совпадение состояния с предыдущим. При данном совпадении алгоритм перебрасывается на увеличение счётчика на 1. Если же счётчик чтений равен 0, то сохраняется текущее состояние как предыдущее и обнуляется счётчик. Так происходит пять раз (пока счётчик не будет проверятся на равенство с пятью) до совпадения.
Аналогично алгоритм повторяется и для остальных концевых датчиков (багажника и капота), а так же для положения кнопки аварийного отключения.
В блоке 4 происходит анализ всех полученных данных текущего состояния системы, в соответствии с которыми происходит либо настройка системы (программирование), либо изменение состояния системы с подготовкой команд на исполнительные устройства, сопровождающейся записью нового состояния во внешнюю энергонезависимую память через USB. Здесь проверяются четыре режима: норма, охрана, тревога и паника.
Из состояния норма система может перейти в состояние охрана по истечении времени автоматической постановки на охрану. В состояние паника система переходит при отключённом зажигании. В состояние программирование система переходит при одновременном получении соответствующей команды при открытом капоте и включенном зажигании. Из состояния охрана система может перейти в состояние: тревога при срабатывании любого из датчиков, в норма – при включённом зажигании, паника – при выключенном зажигании. Из состояния тревога система может перейти в состояние охрана по истечении времени тревоги, в состояния норма, паника – при выключенном зажигании.
В блоке 5 производится запись в порты ввода-вывода команд управления исполнительными внешними устройствами: замками дверей, габаритами и т. п., сиреной и сигнальным светодиодом. Здесь поочерёдно проверяется постановка на различные состояния и с помощью микроконтроллера выбирается то состояние, которое необходимо или выбирает пользователь, команда передаётся на буфер, а от буфера подаётся непосредственно сигнал на выходы: габаритные огни, блокировка, постановка на охрану, замки дверей, сирена и т.д.
