На главную           Статьи              Ссылки                Схемы                Форум               Все новости    


 

Конфигурация микроконтроллера PIC16F628A применённая в схеме часов

        конфигурация




  Правильная конфигурация микроконтроллера при программировании позволяет избежать непрятного момента, когда схема собрана, включена и почему-то не работает. При прошивке контроллера очень удобно использовать программу IC-Prog. В программе сразу отображаются все биты конфигурации, которые легко изменить при необходимости.
 Когда первая из схем часов была мною собрана и включена, она категорически отказывалась нормально работать. Индикаторы непонятно мерцали, но совершенно не хотели показывать то, что от них ожидалось. После многократной проверки монтажа, напряжения в разных точках платы и измерения тока, совершенно случайно решил попробовать изменить один из битов в слове конфигурации, и чудо свершилось...ЗАРАБОТАЛО! Причём заработало устойчиво и так как надо.
 В соответствии с таблицей 14 на странице 90 даташита PIC16F62X при частоте кварцевого резонатора частотой 4 МГц нужно выставить бит XT_OSC. Вот здесь и была "зарыта собака". Всё наладилось только после того, как этот бит был изменён на HS_OSC. Именно из-за этой неточности схема отказывалась работать.
 Применительно к своим программам часов теперь я использую код, который приведён ниже и прокомментирован.

                    list                   p=16f628a                ;задали тип контроллера
                    include            <p16F628a.inc>      ;подключили файл опций
; Конфигурация 
                    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _BODEN_OFF & _MCLRE_OFF

 _CP_OFF        означает, что защита кода выключена, при отладке устройства в ней нужды  нет

 _WDT_OFF    сторожевой таймер выключен. Сторожевой таймер при срабатывании начинает программу сначала, и если мы его включим и  умудримся в процессе работы часов получить такое зависание программы, при котором он сработает, то показания часов будут  потеряны, придётся выставлять их снова. Помочь он нам не может, поэтому отключаем его и даём себе наказ  – никаких зависаний.          

 
_PWRTE_ON   таймер задержки включения контроллера. Проверяет напряжение питания при включении. При достижении номинального  напряжения выжидает 72 миллисекунды затем запускает программу контроллера на выполнение. Полезное устройство, включаем.

 
_HS_OSC    выбор типа резонатора. Здесь у меня сначала было указано _XT_OSC в соответствии с таблицей 14 на странице 90 даташита PIC16F62X. Когда микроконтроллер был прошит, вставлен в плату, а часы включены, индикатор непонятно мерцал. При прикосновении рукой к резонатору и вовсе всё гасло. Поставил в конфигурации _HS_OSC, и часы чудесно заработали. Сделав для себя вывод, что не всё то правда, что написано, ставлю _HS_OSC.        
  _LVP_OFF  включение/выключение режима низковольтного программирования контроллера.  При включении бессовестно отнимает у нас  порт RB4. Отключаем.           

 
_BODEN_OFF  сброс по снижению напряжения питания. Пользы от него для часов никакой нет.  Отключаем.            
 
 
_MCLRE_OFF  выбор режима работы порта RA5. Порт RA5 используем в качестве обычного порта, чего отключением режима MCLR успешно добиваемся.     
                          



















Rambler's Top100