Автор работы: Пользователь скрыл имя, 09 Ноября 2012 в 22:26, курсовая работа
Последние годы отмечены массовым наполнением рынка всевозможной автоматизированной аппаратурой самого различного назначения и самой различной сложности от пластиковой платежной карточки до холодильника, автомобиля и сложнейших установок. Это стало возможным благодаря микроконтроллерам (МК) Микроконтроллеры входят во все сферы жизнедеятельности человека, их насыщенность в нашем окружении растет из года в год.
Введение
1.Разработка структурной схемы устройства
2.Выбор элементной базы
3.Разработка схемы электрической принципиальной
4.Разработка программного обеспечения
5.Программирование микроконтроллера
Заключение
Список литературы
cnt2 equ 2A ;переменная исп для задержки времени
cnt_r equ 2B ;переменная исп для задержки времени
temp equ 2C
clok2 equ 2D
temp1 equ 2E
n1 equ 2f
n2 equ 30
Start ; Начальная инициализация.
clrw
bsf STATUS,RP0 ; Обращение к банку 1.
clrf PORTA ; Обнулить порт А.
clrf PORTB ; Обнулить порт В.
movlw b'00010000'
movwf TRISA ; RA0 - RA3 выходы, RA4 вход.
movlw b'00000001'
movwf TRISB ; RB1 - RB7 выходы.RB0 вход
movlw b'00000101' ;коэффициен предделителя 64
movwf OPTION_REG
bcf STATUS,RP0 ; Обращение к банку 0.
movlw b'10100000'
movwf INTCON
clrf min
clrf sek
clrf cl_k
movlw 0
movwf TMR0
movlw 01 ; Для контроля дисплея
movwf Dig_x
movlw 02 ; загрузить во все регистры индикации 8.
movwf Dig_y
movlw 03
movwf Dig_z
movlw 04
movwf Dig_exp
movlw .131
movwf clok1
movwf TMR0
movlw .1
movwf temp1
Start1 ; Основной цикл программы.
movlw 19 ; Установить счетчик циклов индикации.
movwf cnt_r
loop1 clrwdt
call refresh ;индикаторы.
decfsz cnt_r, f
goto loop1
;***присвоение значения
clrwdt
btfss temp1,0
call Temp_min
btfsc temp1,0
call Temp_clk
;******присвоение значения регистрам индикации
movf n1,0
call Data1
movwf Dig_x
movf n1,0
call Data2
movwf Dig_y
movf n2,0
call Data1
movwf Dig_z
clrwdt
movf n2,0
call Data2
movwf Dig_exp
;********клавишы установки режима индикации и времени*******
call Delay
btfss PORTA,4 ;сканируем клавишу установки режима RA4 вывод 3
incf temp1,1 ;прибавляем к темпу 1
btfss PORTB,0 ;клавиша установки времени RB0 вывод 6
call Min_clk
goto Start1
;*****************************
Temp_min
movf min,0
movwf n1
movf sek,0
movwf n2
return
;*****************************
Temp_clk
movf cl_k,0
movwf n1
movf min,0
movwf n2
return
;****************выбор прибавить минуты(0) или часы(1)***********
Min_clk
clrwdt
btfss temp1,0
incf min,1
btfsc temp1,0
incf cl_k
;*******проверка 60 мин 24 часа*****************
movf min,0
sublw .60
btfsc STATUS,Z
clrf min
movf cl_k,0
sublw .24
btfsc STATUS,Z
clrf cl_k
clrwdt
return
Sek ;*****************деление на125
movlw .131 ;записываем 131 т.к 256-125=131
movwf clok1
incfsz sek
movf sek,0
sublw .60
btfsc STATUS,Z
call Min
return
Min
clrf sek
incfsz min
movf min,0
sublw .60
btfsc STATUS,Z
call Clok
retfie
Clok
clrf min
incfsz cl_k
movf cl_k,0
sublw .24
btfsc STATUS,Z
clrf cl_k
retfie
Int1 ;процедура обработки прерывания
movlw .131 ;записываем 131 т.к 256-125=131
addwf TMR0,1 ;256(
incfsz clok1 ;125(нужный коэффициен деления)
return
call Sek
return
;***********************Вывод
refresh ; Процедура сканирования индикации.
movf Dig_x, W ; Значение деситых.часов для индикации.
call segment ; Преобразование DEC -> семисегментный код.
movwf PORTB ; Вывод цифры на индикатор.
bcf PORTA, 0 ; Активизировать индикатор.
call Delay ; Задержка времени для сканирования.
bsf PORTA, 0 ; Отключить индикатор.
movf Dig_y, W ; Значение ед.часов для индикации.
call segment ; Преобразование DEC -> семисегментный код.
movwf PORTB ; Вывод цифры на индикатор.
bcf PORTA,1 ; Активизировать индикатор.
call Delay ; Задержка времени для сканирования.
bsf PORTA,1 ; Отключить индикатор.
movf Dig_z, W ; Значение десят.минут для индикации.
call segment; Преобразование DEC -> семисегментный код.
movwf PORTB ; Вывод цифры на индикатор.
bcf PORTA,2 ; Активизировать индикатор.
call Delay ; Задержка времени для сканирования.
bsf PORTA,2 ; Отключить индикатор.
movf Dig_exp, W ; Значение ед.минут.
call segment; Преобразование DEC -> семисегментный код.
movwf PORTB ; Вывод цифры на индикатор.
bcf PORTA,3 ; Активизировать индикатор.
call Delay ; Задержка времени для сканирования.
bsf PORTA,3 ; Отключить индикатор.
return
; ******************************
Delay ; Подпрограмма задержки времени
clrwdt
movlw .5 ; для сканирования индикации.
movwf cnt1
nop
beta movlw .150
movwf cnt2
Alfa nop
nop
decfsz cnt2, f
goto Alfa
nop
nop
decfsz cnt1, f
goto beta
nop
return
; ******************************
end
5.Программирование микроконтроллера
Конструкция представляет из себя очень простое и дешевое устройство для программирования и последующего чтения внутренней памяти PIC контроллеров типа PIC16C84 /83, PIC16F84 /83, PIC16CE625 /624/623. В отличие от многих аналогичных конструкций, программатор допускает внутрисхемное программирование. При разработке за основу была взята схема , рекомендуемая фирмой "Microchip" . Программатор питается от источника напряжением 12…13v с током до 100ma и подключается к порту LPT1 персонального компьютера. Управляющая программа разрабатывалась для MS DOS, поэтому при работе в среде «Windows» для соблюдения необходимых временных соотношений при программировании ее необходимо запускать в режиме эмуляции MS DOS. Хотя сама программа прекрасно работает и в оконном режиме, попытка программирования в этом случае ни к чему хорошему не приведет. Алгоритм программирования большинства PIC контроллеров одинаков, поэтому не составит труда расширить их номенклатуру. Интерфейс программы прост и интуитивно понятен. |
Схема электрическая принципиальная приведена на чертеже.Протокол работы микросхемы при программировании рассмотрен в диаграммых на рисунке 9, вывод данных из микроконтроллера и рисунке 10 ввод данных в микроконтроллер.
PIC16F84 может быть запрограммирован в готовом изделии по последовательному каналу. Это реализовано с помощью двух линий тактового сигнала и данных, ка также трех других линий: питание , земля, напряжение программирование . Это позволяет производить платы с незапрограммированными устройствами и программировать микроконтроллер непосредственно перед поставкой продукции. Это также позволяет снабжеть устройство самым свежим программным обеспечением или настраивать программное обеспечение для кристалла.
Устройство входит в режим программирования Удержанием низкого уровня на выводах RB6, RB7 во время перехода сигнала на выводе MCLR/Vpp из нижнего уровня в высокий. После этого RB6 становится тактовым сигналом, а RB7-данными программирования.
После входа в режим
программирования можно послать 6-ти
битную команду. В зависимостии от нее
можно записать или считать 14-битные
данные.
Заключение
По полученному заданию была проделана работа в полном объеме, разработаны электронные часы на микроконтроллере, написана программа для него рассмотрены вопросы программирования МК. При выполнении данной работы был получен ценный опыт разработки подобных устройств получены навыки в разработке програм на языке ассемблер также был закреплены знания полученные на занятиях.
Список литературы
1. Радио №1 2001г. с.21
"Частотомер на PIC-
2. Угрюмов Е.П. Цифровая
3. Микроконтроллеры. Выпуск 2:Однокристальные микроконтроллеры PIC12c5x, PIC16x8x, PIC14000, M16C/61/62. Перевод с англ.Б.Я.. Прокопенко/ Под ред.Б. Я. Прокопенко.- М.: ДОДЭКА, 2000.- 336 с.
Internet - Ресурсы
http://www.microchip.ru:8101/
http://www.paguo.ru/
http://www.disall.narod.ru/
http://www.chipnews.ru/html.
Микроконтроллеры. Выпуск 2:
Однокристальные микроконтроллеры PIC12c5x, PIC16x8x, PIC14000,
Информация о работе Разработка часов на микроконтроллере PIC16F84