Настенные часы-термометр » Программирование устройств на PIC микроконтроллерах


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки Написать нам
Опрос

Какой средой программирования вы пользуетесь?


MPLab/MPLabX
MicroC
MicroBasic
MicroPascal
Другой


Последние материалы
  • Каршеринг в Москве - это Просто, Удобно и Недорого.
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Программирование на C микроконтроллеров PIC24
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Популярные материалы
    Случайная книга
    Настенные часы-термометр
    Автор публикации: alex Просмотров: 14935 Добавлен: 9-08-2012, 09:30 Комментарии: 0

         Сегодня в литературе можно найти много описаний конструкций часов-термометров, которые в подавляющем большинстве отображают информацию на ЖКИ, что дает им такие преимущества, как компактность и экономичность. Но есть и недостатки. Например, небольшая высота и контрастность изображения на ЖКИ не позволяют прочитать показания с большого расстояния или в темное время суток. Предлагаемые в статье настенные часы-термометр оснащены яркими светодиодными индикаторами желтого цвета свечения с высотой знака 57 мм.
         Часы-термометр (далее — просто часы) выполнены на базе микроконтроллера PIC16F628A. В зависимости от загруженной в него программы они работают с датчиком температуры DS18B20 или DS18S20, который может быть размещен не только в комнате, но и за окном или на балконе. Особенность примененного в часах индикатора SA23-11YWA с большим размером знака заключается в том, что в его элементах установлено по четыре светодиода, суммарное падение напряжения на которых достигает 8 В. Это не позволяет соединять индикатор непосредственно с выводами МК, питаемого напряжением 5 В. Пришлось предусмотреть узлы сопряжения, применив в них логические микросхемы с открытым коллектором, способные коммутировать напряжение до 30 В.
         Часы выполняют следующие функции:
         — отображают время в 24-часовом формате с погрешностью не более 1 с в сутки;
         —    отображают с дискретностью 1 °С температуру в интервале от -55 до +125 °С, измеренную выносным датчиком;
         —    каждые 3 с автоматически переходят от отображения времени к отображению температуры и обратно. Возможно постоянное отображение величины, выбранной пользователем;
         —    в заданное время подают звуковой сигнал (будильник), если он включен.
         Предусмотрена ручная установка часов и минут, коррекция показаний по сигналам точного времени. Часы питаются от любого источника постоянного напряжения 12 В, потребляя ток не более 200 мА. В случае отключения этого источника светодиодный индикатор гаснет, но отсчет времени не прерывается, так как питание тактового генератора и микроконтроллера продолжается от резервного источника — литиевого элемента напряжением 3 В.
    Настенные часы-термометр

         Схема часов изображена на рис. 1. Для повышения точности хода МК DD3 тактируется от внешнего интегрального кварцевого генератора DD2 частотой 4 МГц. Сигналы с выходов RB4—RB7 МК поступают на преобразователь двоичнодесятичного кода в семиэлементный — микросхему DD4. Логический инвертор DD1.3 в нужные моменты времени включает на индикаторе HG4 элемент А, дополняющий включенные преобразователем DD4 элементы В, F и G до символа "градус''. Инвертор DD1.4 включает элемент G индикатора HG1, когда на нем нужно изобразить знак "минус".
         Инверторы DD1.1, DD1.2, DD1.5, DD1.6 по сигналам МК управляют транзисторами VT1, VT2, \Л4, VT5, поочередно подключающими аноды индикаторов HG1—HG4 к цепи +12 В. Транзистор VT3 формирует сигнал, подаваемый на звукоизлучатель с встроенным генератором НА1 при срабатывании будильника.
         В программе МК задействованы два таймера-счетчика — TMR0 и TMR1. Первый служит для управления динамической индикацией, второй — для формирования точного интервала времени длительностью 1 с. С таким периодом следуют запросы прерывания при переполнении таймера TMR1, подсчитывающего импульсы частотой Fosc/4 (1 МГц) с предделителем на 4. Подбором константы в регистре TMR1L можно устранить возможную погрешность хода часов.
    Настенные часы-термометр

         Сразу после включения питания на индикаторы HG1—HG4 выводятся нули, начинается счет времени и мигает светодиод HL2 — нижняя точка, разделяющая разряды часов и минут. Если кнопка SB1 не нажата, через 3 с вместо времени на индикаторах будет показано значение температуры, измеренное подключенным к разъему ХР2 выносным датчиком. Номера контактов разъема соответствуют номерам выводов датчиков DS18B20 и DS18S20. Если датчик не подключен, неисправен или еще не успел выполнить измерение (так бывает сразу после включения), на индикаторе появится значение 85°. Еще через 3 с вновь будет показано время и т. д.
         Кнопкой SB4 "Часы" при необходимости устанавливают соответствующее точному времени число часов, а кнопкой SB5 "Минуты” — минут. Нажатие на кнопку SB6 "Коррекция" приостанавливает счет времени и выводит на индикатор ноль минут. С момента отпускания этой кнопки (обычно по началу шестого сигнала точного времени) счет времени возобновляется.
         При нажатии на кнопку SB3 "Установка будильника" на индикатор выводится значение 07:00, но счет микроконтроллером текущего времени продолжается. Удерживая кнопку SB3 нажатой, кнопками SB4 и SB5 устанавливают на индикаторе необходимое время подачи звукового сигнала. После отпускания кнопки SB3 часы переходят в обычный режим, показывая текущее время и температуру.
         Когда текущее время совпадет с заданным, на выходе RB2 МК на 1 мин будет установлен низкий уровень напряжения, что приведет к открыванию транзистора VT3 и, если кнопка SB2 "Включение будильника" зафиксирована в нажатом состоянии, включению звукоизлучателя НА1. Эта же кнопка, будучи нажатой, замыкает цепь светодиода HL1 — верхней точки, разделяющей на индикаторе разряды часов и минут. Поочередное мигание верхней и нижней (HL2) разделительных точек сигнализирует о том, что будильник включен. Для его выключения достаточно повторным нажатием на кнопку SB2 разомкнуть ее контакты.
    Настенные часы-термометр

         Нажатие на кнопку SB1 "Режим" и ее фиксация в этом состоянии переводит часы в режим постоянного отображения текущего значения той величины, которая была выведена на индикатор в момент нажатия — времени (рис. 2,а) или температуры (рис. 2,6). С размыканием контактов кнопки периодическая смена отображаемой величины возобновляется.
         Детали часов смонтированы на двух печатных платах размерами 205x110 мм каждая, изготовленными из фольгированного с одной стороны стеклотекстолита. Плата, на которой находятся индикаторы и органы управления, изображена на рис. 3. Она рассчитана на установку кнопок SB1 и SB2 (с фиксацией) PC700L и кнопок SB3—SB5 (без фиксации) TS-A6PS-130. Под кнопки других типов топологию платы придется, возможно, изменить. Поскольку ширина зазора между корпусами индикаторов HG2 и HG3 всего 2 мм, толщину корпусов расположенных между ними светодиодов HL1 и HL2, возможно, придется уменьшить, обработав их напильником.
         Остальные детали часов находятся на плате, изображенной на рис. 4. Значительная часть площади этой платы осталась незанятой и на рисунке не показана. Литиевый элемент CR2032 (G1) помещен в батарейный отсек ВН-642. Плавкую вставку FU1 для удобства замены можно установить в держатель, поместив его в подходящем месте и соединив с контактными площадками платы проводами. Если используемый для питания часов блок уже содержит предохранитель, от вставки FU1 можно отказаться, заменив ее проволочной перемычкой.
    Настенные часы-термометр

         Обе платы собраны "этажеркой", помещены в корпус — прозрачную коробку от подарочного столового набора и закреплены в нем термоклеем. Изнутри коробка окрашена темной краской, за исключением прямоугольного участка перед индикаторами, на лицевую поверхность которых для повышения контрастности наклеена прозрачная пленка зеленого цвета. Толкатели кнопок SB1 — SB6 выведены в отверстия, просверленные в передней панели корпуса. Через просверленные в корпусе отверстия подключают и ответные части к установленным на краю печатной платы разъемам ХР1, ХР2.
         Правильно собранное устройство налаживания не требует. Необходимо лишь до монтажа МК на плату записать в его память программу, соответствующую типу используемого датчика температуры. Коды программы для датчика DS18B20 находятся в файле c_t_b.hex, а для датчика DS18S20 — в файле c_t_s.hex. Датчик DS18B20 можно заменить более дешевым аналогом DS1822, однако последний измеряет температуру с погрешностью, доходящей до 2 °С, а за пределами интервала -10...+85 °С его погрешность еще больше. При установке датчика на улице советую воспользоваться рекомендациями, приведенными в моей статье "Часы-термометр" ("Радио", 2003, № 10, с. 39 — 41).
         Микросхему К555ИД18 можно заменить импортным аналогом SN74LS247, а импортную SN74LS07N — отечественным аналогом К155ЛП9, но в последнем случае придется подобрать резисторы R25—R27, иначе при нажатиях на кнопки будут подсвечиваться элементы индикаторов, управляемых сигналами с тех же выводов МК, с которыми соединены кнопки. Вместо звукоизлучателя НРМ14АХ можно установить генератор мелодий, например, от музыкальной открытки, ограничив до необходимого значения подаваемое на него напряжение.
    Материал взят из: Журнала Радио 2008 №12

    В архиве исходный код программы на ассемблере для 18S20, 18B20 и прошивки к ним

    nastentimer.rar [16,52 Kb] (cкачиваний: 808)

    Комментарии