Разработка автоматического программируемого терморегулятора ТР-1, страница 11

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

Для ввода/вывода информации в рамках оперативной задачи 2 осуществляется сканирование клавиатуры и индикации при каждом обращении к п/программе прерываний от таймера (т„е„ через 3,125 мС. При этом полный цикл сканирования, как указывалось выше составляет 25 мС. Информация на индикацию выгружается из буфера дисплея, расположенного во внутреннем ОЗУ микроконтроллера. Особенностью организации индикации является то, что для обеспечения мигания некоторой выводимой информации (это требуется по техническому заданию для повышения внимания оператора к индицуруемой информации) буфер дисплея разбит на два банка: основной BUF_DISP и дополнительный DISP_BUF. При этом информация на индикаторы из них выгружается циклически поочередно: определенное количества циклов прерываний из одного, такое же количество циклов из другого. Если информация в обоих банках буфера дисплея полностью совпадает, то мигание индикаторов и светодиодов отсутствует. Если же в дополнительный банк буфера дисплея заносятся коды (3FFH, то это приводит к миганию всей информации, выводимой на индикаторы. Записью логической единицы в определенный бит определенного байта дополнительного буфера дисплея можно управлять миганием как отдельного светодиода, так и отдельного сегмента индикатора. При записи кода 0FFH сразу в оба банка буфера дисплея все


индикаторы и все светодиоды гасятся.

Ввод информации с восьмикнапочной  клавиатуры  производится через вход ТО микроконтроллера K1S16BE35. За  одно  обращение  к

/ n/программе прерываний от таймера опрашивается  одна  из  восьми кнопок клавиатуры, определяемая кодом  в  регистре  сканирования R2 банка регистров  RB 1 »  Состояние  клавиш  запоминается  в регистре R6 того же  банка.  После  завершения  полного  цикла опроса (полного цикла сканирования) информация из регистра  R6 банка  RB1  заносится  в  ячейку   BLJF_KEY   внешнего   ОЗУ, представляющую  собой  буфер   клавиатуры.   Через  эту   ячейку производится передача информации о нажатых  клавишах  в  фоновую задачу.

4.3 ФОНОВАЯ ЗАДАЧА.

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

1. введения программ регулирования температуры и программ срабатывания событийных реле (режим "ПРОГ");

2. автоматической регулировки темературы по заданным программам и включения/выключения событийных реле в заданные моментв времени (режим "АВТ");

3. работы в ручном режиме  регулирования  температуры  (режим

"РУЧН") ;

4. выполнения  различных  специальных  функций  при  контроле задания программ регулирования (режим "ФУНКЦИИ").

В соответствии с этим вся  фоновая  задача,  разбивается  на части,  обслуживающие,- каждую  из  выше  перечисленных  задач  и


имеющие свои алгоритмы (•рИс .——*»-,——тЦ——85 . Все приведенные алгоритмы являются достаточно детализированными, что позволяет не приводить здесь их детального описания.Однако особое значение следует уделить разработке и организации алгоритма автоматического регулирования температуры, являющегося составной частью алгоритма работы в режиме "АВТ" (см. разд. 2). Здесь же отметим лишь общие особенности фоновой задачи при ее совместной работе с оперативной задачей 2.

Информация, выводимая на индикацию, формируется при выполнениин фоновой задачи и передается в оперативную задачу 2 для индикации через общие ячейки внешнего ОЗУ. Период обновления всего объема индицируемой информации может быть больше периода сканирования. Это может привести к тому что на одной части индикаторов будет отображаться часть новой информации, на другой части индикаторов ~ часть старой. Для исключения таких ситуаций используются два буфера дисплея индицируемой информации. Один из них располагается во внешнем ОЗУ микроконтроллера. В нем накапливается по мере дешифрации новый объем информации к индикации. Другой буфер расположен во внутреннем ОЗУ (см. п. 1.2 ОПЕРАТИВНАЯ ЗАДАЧА 2), из него информация передается непосредственно на индикаторы. Перезапись информации из буфера во внешнем ОЗУ в буфер внутреннего ОЗУ микроконтроллера производится лишь после окончания обновления текущей информации в первом буфере. Признак смены информации в первом буфере устанавливается с помощью внутреннего флага микроконтроллера F0.

Таким образом, достигается совместная работа всей фоновой задачи и оперативной задачи 2 при отсуствии сбоев в индикации.