Автор работы: Пользователь скрыл имя, 21 Ноября 2013 в 16:43, курсовая работа
В курсовой работе предложено разработать нерегулируемый выпрямитель напряжения постоянного тока со следующими характеристиками: – период изменения температуры 1 секунда; – погрешность измерения температуры 0,5 °C;
– дискретность отображения 0,5 °C; – количество программируемых пороговых значений 0..127,5 °C; –дискретность установки пороговых значений 0,5 °C; –напряжения питания 5 в; –максимальное напряжение, подводимое к выходам LOAD1 и LOAD2- ограничено максимально допустимыми U1 и U2 примененных VT1 и VT2.
При частотах ниже 500 кГц, внутренний генератор может генерировать сбойный импульс на гармониках, когда переключается бит 0 порта A. Этого не происходит при использовании внешнего генератора или при встроенном RC генераторе. PIC16F84-XT, -HS или -LP требуют подключения кварцевого или керамического резонатора к выводам OSC1 и OSC2. Маркировка следующая: XT - стандартный кварцевый генератор, HS - высокочастотный кварцевый генератор, LP - низкочастотный генератор для экономичных приложений. Резистор Rs может потребоваться для генератора "HS", особенно при частотах ниже 20 МГц для гашения гармоник. Он также может потребоваться в режиме XT с резонатором типа AT strip-cut. Необходимые значения конденсаторов для разных частот приведены в таблице.
Более высокая емкость будет
Таблица Выбор конденсатора для кварцевого генератора
Тип генератора |
Частота |
Конденсатор С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А которые
4 .Программирование микроконтроллера
Конструкция представляет из себя очень простое и дешевое устройство для программирования и последующего чтения внутренней памяти PIC контроллеров типа PIC16C84 /83, PIC16F84 /83, PIC16CE625 /624/623. В отличие от многих аналогичных конструкций, программатор допускает внутрисхемное программирование. При разработке за основу была взята схема, рекомендуемая фирмой "Microchip" .
Программатор питается от
источника напряжением 12…13v с током
до 100ma и подключается к порту LPT1
персонального компьютера. Управляющая
программа разрабатывалась для MS
DOS, поэтому при работе в среде
«Windows» для соблюдения необходимых
временных соотношений при
Схема электрическая принципиальная приведена В приложении 1. Протокол работы микросхемы при программировании рассмотрен в диаграммах на рисунке 9, вывод данных из микроконтроллера и рисунке 10 ввод данных в микроконтроллер.
PIC16F84 может быть запрограммирован в готовом изделии по последовательному каналу. Это реализовано с помощью двух линий тактового сигнала и данных, а также трех других линий: питание, земля, напряжение программирование. Это позволяет производить платы с незапрограммированными устройствами и программировать микроконтроллер непосредственно перед поставкой продукции. Это также позволяет снабжать устройство самым свежим программным обеспечением или настраивать программное обеспечение для кристалла.
Устройство входит в режим программирования Удержанием низкого уровня на выводах RB6, RB7 во время перехода сигнала на выводе MCLR/Vpp из нижнего уровня в высокий. После этого RB6 становится тактовым сигналом, а RB7-данными программирования.
После входа в режим
программирования можно послать 6-ти
битную команду. В зависимости от
нее можно записать или считать
14-битные данные.
Заключение
В результате выполнения курсового проекта был разработан
электронный термометр, соответствующий следующим условиям:
– период изменения температуры 1секунда;
– погрешность измерения температуры 0,5 °C;
– дискретность отображения 0,5 °C;
– количество программируемых пороговых значений 0..127,5 °C;
–дискретность установки пороговых значений 0,5 °C;
–напряжения питания 5 в;
–максимальное напряжение, подводимое к выходам LOAD1 и LOAD2-
ограничено максимально допустимыми U1 и U2 примененных VT1 и
VT2.
Список использованных источников
1. Радио №1
2001г. с.21 "Частотомер на PIC-
2. Угрюмов Е.П. Цифровая схемотехника. -СПб.:БХВ - Санкт-Петербург,2000.-528 с.: ил.
3. Микроконтроллеры. Выпуск 2:Однокристальные микроконтроллеры PIC12c5x, PIC16x8x, PIC14000, M16C/61/62. Перевод с англ.Б.Я.. Прокопенко/ Под ред.Б. Я. Прокопенко.- М.: ДОДЭКА, 2000.- 336 с.
4. http://www.cxema.at.ua
5. http://www.microchip.ru//
Содержание
Листинг программы
--- Константы ---
--- Макрокоманды ---
jnz MACRO metka1 ; условный переход,
btfss STATUS,Z ; если не 0
goto metka1
endm
jz MACRO metka2 ; условный переход,
btfsc STATUS,Z ; если 0
goto metka2
endm
jnc MACRO metka3 ; условный переход,
btfss STATUS,C ; если нет переноса
goto metka3
endm
jc MACRO metka4 ; условный переход,
btfsc STATUS,C ; если перенос
goto metka4
endm
mov MACRO DEST1,SOURCE1 ; пересылка регистр-регистр
movf SOURCE1,W
movwf DEST1
endm
mvi MACRO DEST2,CONST2 ; пересылка константы в регистр
movlw CONST2
movwf DEST2
endm;
--- ОПИСАНИЕ РЕГИСТРОВ ---
W_copy EQU 020h ; В этих регистрах будет
ST_copy EQU 021h ; сохраняться контекст
FSR_copy EQU 022h
ADDRESS EQU 023h ; Хранение адреса ячейки,
SELECTOR EQU 024h ; Код выбора знакоместа (т.е зажигаемого разряда)
TH EQU 025h ; Температура - старший байт
TL EQU 026h ; Температура - младший байт
CRCPIC EQU 027h ; Контрольная сумма, подсчитанная
TRY EQU 028h ; Попытки чтения по 1-Wire
COUNTER EQU 029h ; Счетчик (используется при
FIGX000 EQU 02Ah ; Ячейки для хранения
FIG000X EQU 02Bh ; разрядов
FIG00X0 EQU 02Ch ; двоично-десятичных цифр,
FIG0X00 EQU 02Dh ; выводимых на индикатор
OUTA EQU 02Eh ; Хранение состояний защелок
TEMP1 EQU 03Ch ; Ячейки для временного
TEMP2 EQU 03Dh ; хранения данных
FLAGS EQU 03Fh ; Флаги пользователя
--- ПУСК ---
ORG 0 ;Вектор сброса
Reset bcf STATUS,RP0 ;
bcf STATUS,RP1
goto Begin ;Обходим обработчик прерываний и
--- ОБРАБОТЧИК ПРЕРЫВАНИЙ ---
ORG 4 ;Вектор прерываний
Interrupt movwf W_copy ;
mov ST_copy,STATUS
mov FSR_copy,FSR
movlw B'00010000'
andwf OUTA,F ;Обнуляем биты, управляющие светодиодами (PORTA)
movf OUTA,W ;Гасим
movwf PORTA
movf SELECTOR,W
iorwf OUTA,F ;разряд индикатора
movf ADDRESS,W ;Адрес ячейки с требуемыми на данном шаге данными
movwf FSR ;заносим в FSR (косвенная адресация)
movf INDF,W ;Переносим данные из ячейки с
movwf PORTB ;И выдаем через PORTB на
movf OUTA,W ;Зажигаем текущий
movwf PORTA ;разряд индикатора
bcf STATUS,C
rrf SELECTOR,F
;Далее ветвление, посчитаем шаги и уравняем пути (a,b)
btfss STATUS,C ;Цифра была последней в этом цикле, пропускаем переход (1)
goto Int_label ;Цифра еще не последняя, переход (2a) / nop(1b)
movlw FIGX000 ;Снова заносим адрес ячейки (1b)
movwf ADDRESS ;в ячейку ADDRESS - начался
movlw B'00001000' ;Снова готовимся к (1b)
movwf SELECTOR ;выводу начальной цифры (1b)
goto End_int ;(2b) Путь по b: 1b+1b+1b+1b+1b+2b = 7 шагов
Int_label incf ADDRESS,F ;В следующем прерывании будем
nop
nop
goto End_int ;(2a) Путь по а: 2a+1a+1a+1a+2a = 7
End_int bcf INTCON,T0IF ;
mov FSR,FSR_copy
mov STATUS,ST_copy ;
swapf W_copy,F
swapf W_copy,W ;(movf его может изменить, а swapf - нет)
retfie ;Возврат из обработчика с установкой бита GIE
--- ПОДПРОГРАММЫ ---
;Подпрограмма дешифрации для 7-сегм. индикатора
DC7 clrwdt
clrf PCLATH
addwf PCL,F ;Табличная конвертация
retlw B'00100100' ; 0
retlw B'11100111' ; 1
retlw B'01001100' ; 2
retlw B'01000101' ; 3
retlw B'10000111' ; 4
retlw B'00010101' ; 5
retlw B'00010100' ; 6
retlw B'01100111' ; 7
retlw B'00000100' ; 8
retlw B'00000101' ; 9
retlw B'00010101' ; точка
Конец подпрограммы дешифрации для 7-сегм. индикатора
Подпрограмма паузы (
Pause clrwdt
movwf TEMP1 ;Длительность паузы задается числом в W (примерно в мс)
movf TEMP1,F ;Проверка на 0
btfsc STATUS,Z ;Если длительность не равна 0, то Z=0 и пропускаем return
return ;Если же длительность равна 0, то сразу возврат
clrw ;Очищаем W
P_label addlw 01h ;Внутренний цикл по W
jnz P_label
decfsz TEMP1,F ;Внешний цикл по TEMP1
goto P_label ;
Информация о работе Разработка термометра на основе микроконтроллера pic 16xx