Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zapiska_27.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
339.97 Кб
Скачать

4 Проектирование программного обеспечения

С точки зрения программиста, разработанная система управления состоит из программно доступных регистров микроконтроллера и четырёх портов A, В, C и E. Вся работа системы заключается в определении состояния входных портов, выполнения определённых вычислений и выводе данных из микроконтроллера Motorola (ввод данных в порты).

Блок-схема алгоритма работы программы приведена на чертеже БГУИ.100701.027 ПД.

Вначале выполняется инициализация микроконтроллера. Выделяется память для стека, устанавливается предделитель таймера (так чтобы интервал между срабатываниями был равен 1 с), порт C устанавливается на ввод, таймер устанавливается на 1 секунду. Далее в бесконечном цикле выполняются следующие действия:

    1. Проверка состояния кнопок установки температурного режима.

    2. Проверка текущей температуры.

    3. Проверка состояния двери.

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

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

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

Каждую секунду срабатывает таймер. В обработчике прерывания от таймера выполняются следующие действия:

      1. Сброс флага прерывания.

      2. Установка таймера еще на 1 секунду.

      3. Увеличение времени, в течение которого дверь холодильника открыта (если дверь закрыта, этот счетчик очень скоро обнулится, т.е. так и не достигнет значения 4 минут).

      4. Если время, в течение которого дверь холодильника открыта, стало больше 4 минут, то выдается сигнализация открытия двери.

      5. Если мотор охлаждения включен, то проверяется, уменьшилась ли температура с момента его включения. Если уменьшилась, то счетчик времени работы мотора охлаждения обнуляется.

      6. Если мотор охлаждения включен, температура не уменьшилась, и прошло 4 минуты (к примеру), то это свидетельствует о невозможности поддерживать температурный режим (выходит, что мотор охлаждения неисправен). В таком случае выдается сигнализация невозможности поддержания температурного режима.

Полный листинг программы приведен в приложении. В таблице 1 приведена карта памяти для устройства управления холодильником.

Таблица 1 – Карта памяти

ОЗУ

$0000 - $0040

$0041 - $0081

Стек

Переменные

Регистры и Порты

$1000

$1004

$1006

$100A

$1025

$1024

$1026

$1007

PORTA

PORTB

PORTC

PORTE

TFLG2

TMSK2

PACTL

DDRC

ПЗУ

$E000 - $E01D

$E01E - $E0D3

$E0D4 - $E100

$FFF0 - $FFFE

Основная программа

Пользовательские подпрограммы

Подпрограмма обработки прерывания

Вектора обработки прерываний

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]