Декомпозиция задачи
На начальном этапе декомпозиции программа микроконтроллера представлена в виде черной сферы. Изображение начального этапа декомпозиции приведено на рисунке 4.1.

Рисунок 4.1 – Начало декомпозиции
Исходную задачу можно разделить на опрос датчиков, контроль температуры, отображение показаний, обмен данными и ввод параметров. Результат декомпозиции изображен на рисунке 4.2.

Рисунок 4.2 – Промежуточный результат декомпозиции
Опрос датчиков можно разделить на чтение с АЦП и обработку прерывания от счетчика оборотов. Контроль температуры можно разделить на преобразование значения АЦП в температуру, ПИД-регулирование и контроль перегрева. Отображение показаний можно разделить на вывод на ЖК-дисплей и вывод на индикаторы. Обмен данными можно разделить на прием данных и отправку данных. Ввод параметров можно разделить на опрос кнопок и управление меню. Результат декомпозиции представлен на рисунке 4.3.

Рисунок 4.3 – Результат декомпозиции
Назначение процедур, выделенных в результате текущей декомпозиции, очевидно. Дальнейшее разбиение не требуется.
Алгоритмы
В данном разделе представлены блок-схемы алгоритмов, выделенных в результате декомпозиции. Блок-схема алгоритма макроуровня приведена на рисунке 4.4, а блок-схемы алгоритмов, выделенных в п. 4.1, представлены на рисунках 4.5 – 4.20. Код программы приведен в приложении А.

Рисунок 4.4 – Алгоритм макроуровня
Рисунок 4.5 – Алгоритм процедуры инициализации

Рисунок 4.6 – Алгоритм опроса датчиков

Рисунок 4.7 – Алгоритм преобразования значений АЦП в температуру

Рисунок 4.8 – Алгоритм процедуры контроля температуры

Рисунок 4.9 – Алгоритм процедуры контроля перегрева

Рисунок 4.10 – Алгоритм работы ПИД-регулятора

Рисунок 4.11 – Алгоритм обработки ввода

Рисунок 4.12 – Алгоритм обработки действий

Рисунок 4.13 – Алгоритм процедуры обмена данными

Рисунок 4.14 – Алгоритм процедуры приема данных

Рисунок 4.15 – Алгоритм процедуры проверки принятых данных

Рисунок 4.16 – Алгоритм обработки принятых команд

Рисунок 4.17 – Алгоритм процедуры отправки данных

Рисунок 4.18 – Алгоритм управления индикаторами

Рисунок 4.19 – Алгоритм процедуры вывода изображения на ЖК-дисплей

Рисунок 4.20 – Алгоритм процедуры получения текущего изображения
ЖК-дисплея






