Автор работы: Пользователь скрыл имя, 28 Ноября 2013 в 21:27, курсовая работа
Задание. Разработать Частотомер на микроконтроллере PIC16F84, программное обеспечения для него на языке ассемблер, рассмотреть вопросы программирования микроконтроллера.
Последние годы отмечены массовым наполнением рынка всевозможной автоматизированной аппаратурой самого различного назначения и самой различной сложности от пластиковой платежной карточки до холодильника, автомобиля и сложнейших установок. Это стало возможным благодаря микроконтроллерам (МК) Микроконтроллеры входят во все сферы жизнедеятельности человека, их насыщенность в нашем окружении растет из года в год.
Введение
1.Разработка структурной схемы устройства
2.Выбор элементной базы
3.Разработка схемы электрической принципиальной
4.Разработка программного обеспечения
5.Программирование микроконтроллера
Заключение
Список литературы
Область ОЗУ организована как 128 х
8. К ячейкам ОЗУ можно
Это также относится и к EEPROM памяти данных-констант.
В регистре статуса (03h) есть
биты выбора страниц, которые позволяют
обращаться к четырем страницам
будущих модификаций этого
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 . Подключение клавиатуры управления
Также в устройстве присутствует
блок индикации состоящий из 4-х
индикаторов АЛС324А которые
Электрическая принципиальная схема устройства приведена на чертеже 1.
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). Правда не все дополнительное оборудование, такое как внутрисхемные эмуляторы и программаторы будет функционировать под всеми операционными системами. Для более подробного описания обращайтесь к специализированной литературе и техническим описаниям фирмы Microchip.
Описание программы можно найти на Интернет сайте фирмы Microchip
Блок схема разрабатываемой программы приведена на рисунке 8.Она состоит из блока начальных установок в который входят процедуры обнуления переменных используемых в программе, установки направления портов, установки нужного коэффициента пред делителя, тест работоспособности индикаторов. Блока вывода на индикацию в котором осуществляется преобразование двоичного кода в код семисегментных индикаторов, формируются необходимые задержки времени для динамической индикации, также контроль вывода выбранного пользователем режима индикации. Участок программы сканирования клавиатуры отвечает за выбор режима индикации. Самая ответственная часть программы это обработка прерывания полученного от встроенного таймера микроконтроллера от неё зависит точность измерения т.е ошибки в этой части программы приводят к значительной погрешности прибора там же может быть осуществлена точная подстройка.
Рассмотрим получение
интервала в 1 секунду с помощью
таймера, при конфигурации
1. F(г)=4 МГц/4=1000000
2. 1000000/64=15625
3. 15625/125=125
4. 125/125=1 Гц
processor 16f84a ;for Microchip MPLAB
#include p16f84a.inc
LIST p=16F84A
__config _HS_OSC & _WDT_OFF & _PWRTE_ON
;
;Регистры статуса:
pc equ 02 ;програмный счетчик
porta equ 05 ;I/O регистра
portb equ 06 ;I/O регистра
status equ 03 ;статус регистра
tmr equ 01 ;8-bit счетчик
trisa equ 0x5 ;порт "a" направление регистра
trisb equ 0x6 ;порт "b" направление регистра
intcon equ 0x0B ;прервать контроль регистра
;
;главный регистр:
H_byte equ 0x10
;высокий байт измерения
L_byte equ 0x11 ;низкий байт измерения частоты
count_r equ 0x12 ;перезагрузка счетчика
U equ 0x13 ;единицы
D equ 0x14 ;десятки
H equ 0x15 ;Сотни
M equ 0x16 ;тысячи
count1 equ 0x17 ;счетчик регистра
N equ 0x18 ;главный регистр
;
;*************************** Главная программа
org 0
start
movlw 0x27
option ;загрузка 00100111 в опции регистра
movlw 0x10
movwf intcon
clrf porta
clrf portb
bsf status,5
movlw 0x10
movwf trisa ;портa:0-3 = выпуск, porta:4 = ввод
clrf trisb ;портb:0-7 = выпуск
bcf status,5
movlw 0x08 ;все сегменты включены
movwf U ;проверить индикаторы
movwf D
movwf H
movwf M
movlw .125 ;проверить перезагрузку 0.5 сек.
movwf count_r
loop1 call refresh ;перезагрузка дисплея
decfsz count_r
goto loop1
work clrf tmr ;очистка таймера
clrwdt ;очистка делителя частоты
bsf status,5
movlw b'10000000' ; портB:7 - вход, счет возможен
movwf trisb ;-
bcf status,5 ; |
movlw .99 ; |
movwf count1 ; |
ms1 nop ; |
nop ; |
nop ; |
nop ; |
nop ; |
nop ; |- Это 1 миллисекунда измеряющая время для 4Mhz.
nop ; |- этот блок не изменять если не потребуется коллибровка!
decfsz count1 ; |
goto ms1 ; |
nop ; |
nop ; |
nop ; |
nop ; |Если потребуется коллибровка добавь или передвинь один или более NOP сюда.
nop ; |
Информация о работе Цифровые устройства и микропроцессоры. Частотомер