Автор работы: Пользователь скрыл имя, 09 Ноября 2012 в 22:26, курсовая работа
Последние годы отмечены массовым наполнением рынка всевозможной автоматизированной аппаратурой самого различного назначения и самой различной сложности от пластиковой платежной карточки до холодильника, автомобиля и сложнейших установок. Это стало возможным благодаря микроконтроллерам (МК) Микроконтроллеры входят во все сферы жизнедеятельности человека, их насыщенность в нашем окружении растет из года в год.
Введение
1.Разработка структурной схемы устройства
2.Выбор элементной базы
3.Разработка схемы электрической принципиальной
4.Разработка программного обеспечения
5.Программирование микроконтроллера
Заключение
Список литературы
Область ОЗУ организована
как 128 х 8. К ячейкам ОЗУ можно адресоваться прямо или
косвенно, через регистр указатель FSR (04h).
Это также относится и к EEPROM памяти данных-констант.
В регистре статуса (03h) есть биты выбора страниц, которые позволяют обращаться к четырем страницам будущих модификаций этого кристалла. Однако для PIC16F84 память данных существует только до адреса 02Fh. Первые 12 адресов используются для размещения регистров специального назначения. Регистры с адресами 0Ch-2Fh могут быть использованы, как регистры общего назначения, которые представляют собой статическое ОЗУ. Некоторые регистры специального назначения продублированы на обеих страницах, а некотрые расположены на странице 1 отдельно. Когда установлена страница 1, то обращение к адресам 8Ch-AFh фактически адресует страницу 0. К регистрам можно адресоваться прямо или косвенно. В обоих случаях можно адресовать до 512 регистров.
Watchdog таймер представляет собой полностью независимый встроенный RC генератор, который не требует никаких внешних цепей. Он будет работать, даже если основной генератор остановлен, как это бывает при исполнении команды SLEEP. Таймер вырабатывает сигнал сброса. Выработка таких сбросов может быть запрещена путем записи нуля в специальный бит конфигурации WDTE. Эту операцию производят на этапе программирования микросхем.
Номинальная выдержка WDT
составляет 18 мс (без использования
делителя). Она зависит от температуры,
напряжения питания, от особенностей типов
микросхем. Если требуются большие
задержки, то к WDT может быть подключен
встроенный делитель с коэффициентом деления до 1:128;
который программируется путем записи
в регистр OPTION. Здесь могут быть реализованы
выдержки до 2.5 секунд.
Команды "CLRWDT" и "SLEEP" обнуляют
WDT и делитель, если он подключен к WDT. Это
запускает выдержку времени сначала и
предотвращает на некоторое время выработку
сигнала сброс. Если сигнал сброса от WDT
все же произошел, то одновременно обнуляется
бит "TO" в регистре статуса (f3). В приложениях
с высоким уровнем помех, содержимое регистра
OPTION подвержено сбою. Поэтому регистр
OPTION должен обновляться через равные промежутки
времени. Следует учесть, что наихудшей
комбинацией является: Vdd=min, температура=max
и max коэффициент деления делителя,- это
приводит к самой большой выдержке времени,
она может достигать нескольких секунд.
Также в устройстве будет
использован цифро-буквенный
3.Разработка схемы электрической принципиальной
Применение микроконтроллеров P
Кристаллы PIC16F84 могут работать с четырьмя типами встроенных генераторов. Пользователь может запрограммировать два конфигурационных бита (FOSC1 и FOSC0) для выбора одного из четырех режимов: RC, LP, XT, HS. Кристаллы PIC16... могут также тактироваться и от внешних источников. Генератор, построенный на кварцевых или керамических резонаторах, требует периода стабилизации после включения питания. Для этого, встроенный таймер запуска генератора держит устройство в состоянии сброса примерно 18 мс после того, как сигнал на /MCLR ножке кристалла достигнет уровня логической единицы. Таким образом, внешняя цепочка RC , связанная с ножкой /MCLR во многих случаях не требуется.
Встроенные генераторы работоспособны при определенных номиналах питающего напряжения:
Vdd |
OSC mode |
Max Freq |
2..3V |
RC |
2 MHz |
LP |
200 kHz | |
3..6V |
RC, XT |
4 MHz |
LP |
200 kHz | |
4,5..5,5 |
HS |
10 MHz |
При частотах ниже 500 кГц, внутренний генератор может генерировать сбойный импульс на гармониках, когда переключается бит 0 порта A. Этого не происходит при использовании внешнего генератора или при встроенном RC генераторе. PIC16F84-XT, -HS или -LP требуют подключения кварцевого или керамического резонатора к выводам OSC1 и OSC2. Маркировка следующая: XT - стандартный кварцевый генератор, HS - высокочастотный кварцевый генератор, LP - низкочастотный генератор для экономичных приложений. Резистор Rs может потребоваться для генератора "HS", особенно при частотах ниже 20 МГц для гашения гармоник. Он также может потребоваться в режиме XT с резонатором типа AT strip-cut. Необходимые значения конденсаторов для разных частот приведены в таблице.
Более высокая емкость будет увеличивать стабильность генератора, но также будет увеличивать время запуска. Значения приведены для ориентировки. В режимах HS и XT, чтобы избежать гармоник может потребоваться последовательный резистор Rs.
Таблица Выбор конденсатора для кварцевого генератора
Тип генератора |
Частота |
Конденсатор С1 |
Конденсатор С2 |
LP |
32 КГц |
30 пФ |
30 - 50 пф |
100 КГц |
15 пф |
15 пФ | |
200 КГц |
0- 15 пФ |
0 - 15 пФ | |
XT |
100 КГц |
15 - 30 пФ |
200 - 300 пФ |
200 КГц |
15- 30 пФ |
100 - 200 пФ | |
455 КГц |
15 - 30 пФ |
15 -100 пФ | |
1 МГц |
15 - 30 пФ |
15 - 30 пФ | |
2 МГц |
15 пФ |
15 пФ | |
4МГц |
15 пФ |
15 пФ | |
HS |
4 МГц |
15 пФ |
15 пФ |
10 МГц |
15пФ |
15 пФ |
Ввод информации для управления электронными часами осуществляется через 2 кнопки подключенных к портам RB0 и RA0 микроконтроллера. Схема подключения показана на рисунке 6. Меры по предотвращению дребезга контактов могут реализоватся програмным метадом. Сопротивление резисторов выбирается из расчета протикания наименьшего тока необходимого для фиксации логической 1 на входах микрокантроллера при неактивных позициях кнопок и в данном случае составляют 10 Ком.
Рисунок 6 . Подключение клавиатуры управления
Рисунок 7. Схема подключения устройства индикации
Также в устройстве присутствует блок индикации состоящий из 4-х индикаторов АЛС324А которые управляются микропроцессором через токоограничивающие резисторы R4...R10 номеналом 180 ом. Индикация осуществляется динамическим способом т.е вывод осуществляется по порядку 1,2,3,4 - индикатор по 10мс на каждый индикатор. Схема подключения индикаторов показана на рисунке 7.
Электрическая
принципиальная схема
4.Разработка программного обеспечения
При разработке и отладке программы была использована бесплатная программа Mplab предоставляемая фирмой Microchip.
MPLAB - это интегрированная среда
разработки (IDE) для семейства
Инструментальные средства MPLAB, организованные как ниспадающие меню и определяемые быстрые клавиши, позволяют:- ассемблировать, компилировать исходный текст;- отлаживать логику работы, наблюдая с помощью симулятора или, в реальном времени, с эмулятором MPLAB-ICE ;- просматривать переменные в окнах просмотра;- программировать кристаллы с помощью программаторов PICSTART Plus или PRO MATE II- и многое другое.
Рисунок 8. Блок схема программы
MPLAB работает под Microsoft Windows 3.1x, Windows
95, 98, NT, 2000 (начиная с версии 5.00.00).
Правда не все дополнительное
оборудование, такое как внутрисхемные
эмуляторы и программаторы
Описание программы можно
Блок схема разрабатываемой программы приведена на рисунке 8.Она состоит из блока началиных установок в который входят процедуры обнуления переменных используемых в программе, установки направления портов, установки нужного коэффициента предделителя, тест работоспособности индикаторов. Блока вывода на идикацию в катором осуществляется преодразование двоичного кода в код семисегментных индикаторов, формируются необходимые задержки времени для динамической индикации, также контроль вывода выбронного пользователем режима индикации (режим часы : минуты и минуты : секунды ). Участок программы сканирования клавиатуры отвечает за выбор режима индикации и установку времени вводимых с клавиатуры, в следующей последовательности в режиме (часы : минуты ) кропкой установки времени может быть изменено только значение раздела часов а в режиме (минуты : секунды) только минут.
Самая ответственная часть программы
это обработка прерывания полученного
от встроенного таймера
1. F(г)=4 мГц/4=1000000
2. 1000000/64=15625
3. 15625/125=125
4. 125/125=1 Гц
LIST p=16F84A ; указатель процессора
include <p16F84A.inc>
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
ADDWF PCL, F
;0 1 2 3 4 5 6 7 8 9
dt 0,0,0,0,0,0,0,0,0,0
dt 1,1,1,1,1,1,1,1,1,1
dt 2,2,2,2,2,2,2,2,2,2
dt 3,3,3,3,3,3,3,3,3,3
dt 4,4,4,4,4,4,4,4,4,4
dt 5,5,5,5,5,5,5,5,5,5
Data2 ;***********единицы
CLRF PCLATH
ADDWF PCL, F
;0 1 2 3 4 5 6 7 8 9
dt 0,1,2,3,4,5,6,7,8,9 ;0
dt 0,1,2,3,4,5,6,7,8,9 ;10
dt 0,1,2,3,4,5,6,7,8,9 ;20
dt 0,1,2,3,4,5,6,7,8,9 ;30
dt 0,1,2,3,4,5,6,7,8,9 ;40
dt 0,1,2,3,4,5,6,7,8,9 ;50
; Программные регистры:
skan1 equ 20 ;рег хранения RB1,2
clok1 equ 21 ; хранение часов
sek equ 22 ;регистр хранения секунд
min equ 23 ;регистр хранения минут
cl_k equ 24
Dig_x equ 25 ; Значение X0:00 для индикации.
Dig_y equ 26 ; Значение 0X:00 для индикации.
Dig_z equ 27 ; Значение 00:X0 для индикации.
Dig_exp equ 28 ; Значение 00:0X для индикации.
cnt1 equ 29 ;переменная исп для задержки времени
Информация о работе Разработка часов на микроконтроллере PIC16F84