"DVDXpert" - компас в мире Hi-Fi и High End техники и другой stereo и home cinema аппаратуры.

ЭЛЕКТРОННЫЕ ЧАСЫТЕРМОМЕТР НА PIC16F84

25-08-2020

•Разрешается таймерное прерывание и начинается индикация текущего времени.

После инициализации, в ожидании поступления таймерного прерывания, программа работает циклически. Поочередно опрашивается состояние кнопок "+час" и "+минута", обслуживается ЖКиндикатор, после чего цикл повторяется Поскольку для нормальной работы ЖК индикатора требуется постоянно инвертировать уровень на подложке, подпрограмма обслуживания индикатора включена в основной, достаточно быстрый цикл

т?

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

Формирование таймериого прерывания

Как уже было сказано в описании схемы, на вход таймера RA4/T0CKI через внутренний предделитель 1:8 поступают импульсы с частотой 4000Гц с выхода SQW/OUT микросхемы часов реального времени DS1307. Прерывание формируется при переполнении таймера, т.е. при переходе состояния его счетчика из 255 в 0 (каждый 256й импульс). Поэтому частота следования прерываний составляет около двух Герц: (4000/8)/256= 1,95. С такой частотой происходит опрос часов или термометра, в зависимости от того, какой режим включен в этот момент. Частота следования прерывания никак не влияет на точность хода часов.

Обработка таймериого прерывания

После генерации таймериого прерывания сохраняются текущие значения регистров W и STATUS, сбрасывается флаг прерывания и очищается таймер. Затем проверяется состояние бита <1> переменной flags. Если бит сброшен, значит происходит отображение текущего времени. Значения часов и минут считываются из регистров микросхемы часов реального времени и конвертируются в формат отображения на индикаторе при помощи подпрограммы clock. Состояние бита, управляющего включением/выключением разделительной точки, меняется на противоположное. Таким образом, в режиме отображения времени разделительная точка мигает с частотой 1 Герц.

Если бит <1> переменной flags установлен в 1, значит считывается значение температуры из регистров микросхемы термометра и конвертируется в формат отображения при помощи подпрограммы celsio. Разделительная точка гасится и во время отображения температуры не включается.

Затем, и в том и в другом режиме, декрементируется счетчик секунд отображения текущего режима. Если время индикации данного режима истекло, значение бита режима индикации меняется на противоположное и в счетчик индикации загружается время индикации другого режима. При окончании режима индикации температуры, кроМе этого, отдается команда термометру начать конвертацию (измерение) очередного значения температуры. Измерение температуры производится только один раз за все время отображения потому, что микросхема термометра преобразует температуру в цифровое значение довольно долго. Время конвертации с учетом страховочного интервала может достигать 2х секунд, поэтому термометр просто не успеет измерить температуру за один цикл прерывания. Впрочем, для измерения температуры в нашем случае задержка в несколько секунд не играет никакой роли и сопоставима с тепловой инерцией самой микросхемы.


Смотрите также:
 Цифровое телевидение в России
 Небесная битва
 ОСТАНОВ ПО УСЛОВИЮ
 Недостатки аналогового телевидения
 Виды телевидения. Спутниковое телевидение.

Добавить комментарий:
Введите ваше имя:

Комментарий:

Защита от спама - решите пример: