Мегаобучалка Главная | О нас | Обратная связь


Описание алгоритмов программы



2019-07-03 197 Обсуждений (0)
Описание алгоритмов программы 0.00 из 5.00 0 оценок




 

Общая схема алгоритма приведена на рисунке 4.

 

 

Программа для разрабатываемой системы состоит из нескольких основных частей:

· Блок начальной инициализации системы;

· Блок обработчиков прерываний;

· Блок обработки режимов микроконтроллера;

· Блок служебных подпрограмм.

Рассмотрим эти алгоритмы более подробно.

Блок начальной инициализации системы содержит операции для программирования таймера, UART-интерфейса и других различных настроек.

Инициализация UART заключается в установке скорости его работы в значение 9600 бит/с путём загрузки в регистр UBRR значения 25, а также в настройке его на чтение (а не на запись), что осуществляется записью в UCR значения 144.

Инициализация таймера заключается в задании режима его работы от внешнего резонатора (а не от внутреннего генератора частоты), разрешении прерываний таймера (по переполнению). Далее осуществляется запуск таймера.

Блок обработчиков прерываний обслуживает возникающие в системе прерывания в соответствии с заложенным алгоритмом. Выделено два обработчика прерываний: от таймера и от UART-интерфейса.

Обработчик прерывания UART осуществляет запоминание введённой пользователем по последовательному интерфейсу команды в одном из внутренних регистров процессора, что позволяет произвести её обработку в подходящий момент времени, не нарушая работы канала передачи.

Обработчик прерывания таймера осуществляет корректировку текущего времени, увеличивая счётчик секунд, минут, часов, дней и месяцев. Одна секунда отсчитывается таймером (частота работы которого задаётся от внешнего резонатора частотой 32768 Гц) за 32768 цикла. Использовать делители частоты при работе от внешнего резонатора, в отличие от работы от внутреннего генератора, нельзя, а частота кварца 32768 Гц рекомендована производителем МК для реализации часов реального времени.

Так как таймер 8-ми разрядный, то у нас есть возможность досчитать только до 256, таким образом, необходимо организовать ещё дополнительный множитель 128, что и организовано в регистре R28.

По прошествии одной секунды увеличивается значение секунд в регистре R27, а затем полученное значение сравнивается с 60-ю. При получении равенства, счётчик секунд обнуляется, а счётчик минут инкрементируется, с последующим сравнением количества минут с 60-ю и возможной инкрементацией счётчика часов. И так продолжается до тех пор, пока все значения (месяца, дня, часа, минуты, секунды) не будут посчитаны.

Блок обработки режимов микроконтроллера содержит три основные подпрограммы для каждого из возможных режимов работы микроконтроллера: режима корректировки времени, режима установки времени и режима установки расписания.

Режим корректировки времени осуществляет увеличение счётчика дней на 1, с последующей проверкой на достижение 32-х с возможной корректировкой месяца. Это может использоваться пользователем, когда прошлый месяц содержал только 30 дней, и первого числа следующего месяца часы показывают 31-е (так нет разграничения на 30-ти и 31-но дневные месяцы). Тогда выбором этого режима пользователь легко корректирует дату.

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

Режим установки расписания позволяет пользователю задать дату и время включения и выключения выбранного им прибора. После выбора этого режима микроконтроллер ожидает ввода номера прибора, для которого будет задаваться расписание. После выбора прибора пользователь должен ввести дату и время включения выбранного прибора в формате ММ-ДД-ЧЧ-мм, а затем дату и время выключения данного прибора в том же формате. После ввода система переходит в обычный режим работы.

Блок служебных подпрограмм представляет собой остальные подпрограммы, необходимые для работы. К ним относятся подпрограмма предварительной очистки EEPROM (хотя её можно было отнести к блоку инициализации), подпрограмма ожидания (основной режим), а также подпрограмма, осуществляющая включение или выключение приборов при совпадении текущего времени с каким-либо расписанием.

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

Далее программа переходит в основной режим своей работы, в течение которого вызывается подпрограмма проверки расписания, осуществляющая сравнение текущей даты-времени со всеми значениями расписания в памяти и вызов при необходимости подпрограммы активации/деактивации подключенных устройств. Также основная программа постоянно опрашивает значение регистра, работающего с UART для обнаружения факта задания одного из режимов работы МК. При обнаружении этого факта управление передаётся подпрограмме выявления номера режима, и далее на обработчик выбранного режима.

Если режим не задан, то основная программа вновь осуществляет проверку расписания. Это необходимо делать довольно часто в связи с достаточно большим объемом программного кода, осуществляющего эту проверку, а также в связи с достаточно большим значением самих проверяемы значений (80 байт).

При подаче пользователем через последовательный интерфейс сигнала о выборе режима, генерируется прерывание от UART, что впоследствии быстро выявляется в основной программе.




2019-07-03 197 Обсуждений (0)
Описание алгоритмов программы 0.00 из 5.00 0 оценок









Обсуждение в статье: Описание алгоритмов программы

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (197)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.02 сек.)