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

Автор работы: Пользователь скрыл имя, 09 Ноября 2012 в 22:26, курсовая работа

Описание

Последние годы отмечены массовым наполнением рынка всевозможной автоматизированной аппаратурой самого различного назначения и самой различной сложности от пластиковой платежной карточки до холодильника, автомобиля и сложнейших установок. Это стало возможным благодаря микроконтроллерам (МК) Микроконтроллеры входят во все сферы жизнедеятельности человека, их насыщенность в нашем окружении растет из года в год.

Содержание

Введение
1.Разработка структурной схемы устройства
2.Выбор элементной базы
3.Разработка схемы электрической принципиальной
4.Разработка программного обеспечения
5.Программирование микроконтроллера
Заключение
Список литературы

Работа состоит из  1 файл

проект1.doc

— 369.00 Кб (Скачать документ)

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. Угрюмов Е.П. Цифровая схемотехника.-СПб.:БХВ-Санкт-Петербург,2000.-528 с.: ил.

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/picpro.htm

http://www.chipnews.ru/html.cgi/arhiv/index.htm

Микроконтроллеры. Выпуск 2:

Однокристальные микроконтроллеры PIC12c5x, PIC16x8x, PIC14000,

 


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