Пример программирования устройства на PIC-контроллере при помощи ICD2-SeVeN дебаггера и пакета MPLAB.


Часы - Термометр


ФОТО УСТРОЙСТВА
 


Данное устройство на PIC16F876A приведено для примера начинающим программистам PIC контроллеров. В нём приведены схемотехнические и программные решения таких вопросов как :

  • динамическая индикация на LED индикаторах
  • динамическое сканирование клавиатуры
  • часы реального времени
  • организация иерархического меню настроек
  • электронный термометр

Часы - Термометр
  Часы - Термометр

Описание конструкции.


  • часы реального времени
  • будильник со звуковой сигнализацией
  • таймер включения/выключения
  • термометр -40/+99 градусов Цельсия
  • режим текущей индикации
  • режим установок

Режим текущей индикации.

В этом режиме на дисплее попеременно отображается текущее время и значение температуры. Смена индикации происходит каждые 10 секунд. При активированном будильнике в разряде минут светится десятичная точка. Время срабатывания будильника можно посмотреть нажав кнопку "M-". На время удержания этой кнопки на дисплее отобразится время срабатывания. При активированном таймере включения/выключения нажатие кнопки "M-" отобразит время включения исполнительного реле, а нажатие кнопки "М+" отобразит время выключения исполнительного реле. Длительное удержание кнопки "М-" (более 6 секунд) приведёт к включению реле, а удержание кнопки "М+" выключит реле. Это сделано для того, чтобы запустить или остановить отработку интервалов управления таймером в любой момент.

Режим установок.

Для входа в режим установок необходимо нажать кнопку "СО". На индикаторе отобразится пункт меню "END". Кнопкой "DI" производится переход по пунктам меню. После выбора нужного пункта меню, нажатие кнопки "СО" переключит прибор в режим установки выбранного параметра. Для временных установок используются кнопки "DI" и "М+".Кнопкой "DI" выбирается изменяемый разряд (разряд начинает мигать) а кнопкой "М+" производится изменение значения выбранного разряда. При настройке часов реального времени на время нахождения в режиме настройки отсчёт времени останавливается до момента выхода в режим индикации пунктов меню. Для изменения значения "ADJ" используются кнопки "M-" и "М+". Для выхода из режима изменения параметра необходимо нажать кнопку "СО".

Пункты меню.

Часы - Термометр

"CLOC" настройка часов реального времени.
Часы - Термометр

"ON" установка ремени включения будильника/исполнительного реле
Часы - Термометр

"OFF" установка времени выключения исполнительного реле (режим таймера)
Часы - Термометр

"ADJ" установка поправки для АЦП термометра
Часы - Термометр

"SAVE" сохранение значений в энергонезависимой памяти PIC.
Часы - Термометр

"END" пункт меню выхода из режима установок

Включение режима будильника производится нажатием кнопки "DI" во время режима текущей индикации. Отключение режима будильника происходит при повторном нажатии кнопки "DI". При этом гаснет десятичная точка в разряде минут.

Включение режима таймера производится в режиме установок при индикации пункта меню "ON" или "OFF" кнопкой "М+". Индикация "ON" изменится на "_ON" ("_OFF"). Для выключения режима таймера необходимо нажать кнопку "М-".

При сохранении установок в памяти мспользуется кнопка "СО".На дисплее кратковременно отобразится "----".

В энергонезависимой памяти сохраняются только параметры "ON", "OFF", "ADJ".

ПРИМЕЧАНИЕ: В тексте использованы названия кнопок (см.фото на сайте), соответствующие обозначениям на принципиальной схеме:

  • "СО" - S1
  • "DI" - S2
  • "M-" - S3
  • "М+" - S4

Маркировка кнопок никакой смысловой нагрузки не имеет, т.к. при изготовлении крнструкции применялись детали, имеющиеся под руками.

При изготовлении конструкции применяйте кварцевые резонаторы только импортного производства (резонаторы пр-ва СНГ или плохо работают или совсем непригодны для работы с PIC).

В конструкции используются 7-сегментные светодиодные индикаторы с общим катодом. Звуковой сигнализатор со встроенным тональным генератором.

ПЕРЕЙТИ К ОПИСАНИЮ СХЕМЫ И ПЕЧАТНЫХ ПЛАТ   |  ПЕРЕЙТИ К ОПИСАНИЮ СХЕМЫ АНАЛОГОВЫХ ЦЕПЕЙ

Hosted by uCoz