Реферат: Разработка часов на микроконтроллере PIC16F84

Блок схема разрабатываемой программы приведена на рисунке 8.Она состоит из блока началиных установок в который входят процедуры обнуления переменных используемых в программе, установки направления портов, установки нужного коэффициента предделителя, тест работоспособности индикаторов. Блока вывода на идикацию в катором осуществляется преодразование двоичного кода в код семисегментных индикаторов, формируются необходимые задержки времени для динамической индикации, также контроль вывода выбронного пользователем режима индикации (режим часы : минуты и минуты : секунды ). Участок программы сканирования клавиатуры отвечает за выбор режима индикации и установку времени вводимых с клавиатуры, в следующей последовательности в режиме (часы : минуты ) кропкой установки времени может быть изменено только значение раздела часов а в режиме (минуты : секунды) только минут.

Самая ответственная часть программы это обработка прерывания полученного от встроенного таймера микроконтроллера от неё зависит точность хода часов т.е ошибки в этой части программы приводят к значительному отстованию или опережению хода часов тамже может быть осуществлена точная подстройка. Рассмотрим получение интервала в 1 секунду с помощью таймера, при конфигурации таймера его надо подключить к внутреннему генератору который по заданию вырабатывает частоту 4,00 Мгц после такого подключения в данном микроконтроллере на таймер будет подаватся частота генератора (Fг)/4 и будет равна 1000000 гц с помощью встроенного предделителя она делится на 64 и на таймер приходит уже 15625 гц. После этого нам необходимо разделить это число на такоеже чтобы получить частоту колебаний в 1гц. Из за небольшой разрядности таймера (8) эта процедура делается в два этапа длем на 125 и еще раз на столько же. Сразу после этого прибавляем 1 к регистру секунд (в программе sek).Результат приведен ниже :

1. F(г)=4 мГц/4=1000000

2. 1000000/64=15625

3. 15625/125=125

4. 125/125=1 Гц


LIST p=16F84A ; указатель процессора

include

org 0x00 ; Вектор сброса

Goto Start

;***************************************************************

org 004 ;Начало процедуры обработки прерывания

movwf temp ; Сохранение рабочего регистра W в регистре temp

clrwdt ;Очистка сторожевого таймера для предотврашения

call Int1 ; сброса процессора каждый 18мс

movlw b'10100000' ; Разрешаем прерывания от таймера

movwf INTCON ;

movf temp,w ;Востанавливаем значение рабочего регистра

clrwdt ;Очистка сторожевого таймера

return ;Выход из процедуры обработки прерывания


;****************************************************************

org 0x10

segment ; Таблица преобразования DEC -> семисегментный код.

CLRF PCLATH

ADDWF PCL, F

dt 07E, b'00001100', 0B6, 09E, 0CC, 0DA, 0FA, 00E, 0FE, 0DE

Data1 ;*************десятки

CLRF PCLATH

К-во Просмотров: 1023
Бесплатно скачать Реферат: Разработка часов на микроконтроллере PIC16F84