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

Основным измерителем элементарных временных интервалов при работе терморегулятора является внутренний счетчик: микроконтроллера, используемый в режиме таймера (далее просто таймер). Длительность элементарного временного интервала определяется кодом, загружаемым в таймер. При этом требуемый код подобран таким образом, чтобы период времени между моментами входа в прерывания от таймера с вектором 07Н (при использовании кварцевого резонатора с частотой 6 МГц) был равен 3,125 мс, т.е. частота прерываний составляет 320 Гц. С такой частотой осуществляется сканирование и выдача информации на индикаторы. Полный цикл сканирования 6—ти семисегментиых индикаторов и двух линеек светоднодов осуществляется, таким образам, за (3,125 х 3)= 25 мс, что соответствует частоте полной смены информации на индикаторе и светоднодах 40 Гц. При такой частоте смены информации мерцание индикаторов человеческим глазом не воспринимается.

Интервалы  времени  в  3,125  мс  (а   точнее,   количество обращений к п/программе прерываний от  таймера)  последовательно суммируются в ячейке TIM_PR1 и при достижении суммой  величины 40Н (длительность временного  интервала  200  мс  или  64  цикла прерываний) производится инкремент  второй  ступени  счетчика  в ячейке  TIM_PR2.  При  достижении  второй  ступенью   счетчика значения  05Н  (т.е.  общая  длительность  временного  интервала достигла  1  сек  или  320   циклов   прерываний)   производится инкриментированне  счетчика   секунд   во   внешнем   ОЗУ,   где организованы счетчики:

- общего времени работы программы ( в сек, мин, час);

- счетчик времени в пределах сегмента ( в сек, мин, час);

- счетчик времени-в  пределах  сегмента  в  секундах.  Если


программа  автоматического регулирования не активизирована (например, режим задания программ разогрева), то модификации содержимого счетчиков не происходит»/

Для обеспечения  периодического  запуска  АЦП  организована своя вторая ступень  счетчика  циклов  обращений  к  п/программе прерываний от  таймера  (READY_ADC),причем  в  качестве  первой ступени также используется счетчик TIM_PR1.  Содержимое  ячейки READY_ADC,  загружаемое  предварительно,   определяет   период дискретизации АЦП»

Для   обеспечения   коррекции   смещения   нуля   в   ОпЗд2 осуществляется также подсчет  количества  запускав  АЦП  (ячейка READY_ADC+1).   При   достижении   количества   запусков   АЦП некоторого заданного значения N АЦП  устройства  переключается в режим коррекции  нуля,  которая  производится  (дополнительный запуск  АЦП)  в  середине  интервала  времени  между   N-м   и (N+D-м запуском АЦП на измерение текущей  температуры.  После получения результата измерения смещения нуля он  размещается  во внешнем  ОЗУ  и  АЦП  возвращается  в  рабочий  режим  измерения температуры.  Изменяя  содержимое  ячейки  READU_ADC+1,  можно увеличивать или уменьшать количество коррекций  нуля  в  единицу времени (например, в час).

В  расмках  оперативной  задачи   2   осуществляется   также непосредствееное  управление   двигателем   в   соответствии   с содержимым ячейки WORK. Если содержимое WORK не нулевое, то по состоянию старшего бита В7 данной ячейки исполнительный механизм включается на нагрев (87 = "0") или охлаждение (Б7 = " 1"-) , после чего   производится   декремент    значения    ячейки    WORK. Декрементирование  производится  после  этого  раз  в   секунду. Серводвигатель остается включенным до тех пор, пока  WORK  без