Sunteți pe pagina 1din 15

Universitatea Ovidius Constanta

Facultatea de Stiinte Aplicate si Inginerie, Sectia Electronica


Aplicata

Proiect Microcontrolere
Student:
Luca Ionut Cristian
EA IV

Microcontrolerul PIC 16F84


PIC16F84 apartine unei clase de microcontrolere
de 8 biti cu arhitectura RISC. Structura lui generala
este aratata in schita urmatoare reprezentand
blocurile de baza.
Memoria program (FLASH)-pentru inmagazinarea unui
program scris. Pentru ca memoria ce este facuta in
tehnologia FLASH poate fi programata si stearsa mai
mult decat odata, aceasta face microcontrolerul
potrivit pentru dezvoltarea de componenta

EEPROM-memorie de date ce trebuie sa fie salvate cand

nu mai este alimentare. Este in mod uzual folosita pentru


inmagazinarea de date importante ce nu trebuie pierdute
daca sursa de alimentare se intrerupe dintr-o data.
RAM-memorie de date folosita de un program in timpul
executarii sale. In RAM sunt inmagazinate toate
rezultatele intermediare sau datele temporare ce nu sunt
cruciale la intreruperea sursei de alimentare.
PORTUL A si PORTUL B sunt conexiuni fizice intre
microcontroler sin lumea de afara. Portul A are 5 pini, iar
portul B are 8 pini.
TIMER-ul LIBER este un registru de 8 biti in interiorul
microcontrolerului ce lucreaza independent de program.
La fiecare al patrulea impuls de ceas al oscilatorului isi
incrementeaza valoarea lui pana ce atinge maximul
(255), si apoi incepe sa numere tot din nou de la zero.

Semnificatia pinilor
RA0...RA3 portul A
RB0...RB7 portul B
MCLR reseteaza intrarea si
tensiunea de programare Vpp
a microcontrolerului.
VSS alimentare, masa
Vdd polul pozitiv al sursei
OSC1 pin desemnat pentru
conectarea la un oscilator
OSC2 pin desemnat pentru
conectarea la un oscilator

Ceas digital cu PIC 16f84


Schema este foarte simplu de realizat i este
alctuit din trei elemente, circuit-ul de alimentare,
microcontrolerul i display-ul cu 7 segmente. Pentru
alimentare am folosit un regulator de tensiune,
respectiv 7805 (un regulator des folosit pentru
aceste microcontrolere), acesta asigur tensiunea
de 5 V necesar microcontrolerului.
PB1 este folosit pentru a seta minutele, PB2 este
folosit pentru a seta ora, PB3 este buton de reset.
LED/ul D1 indica secundele.

List componente:
R1 R8

100

R9

10k

R10 R13

10k

C1

22pF

C2

22pF

D1

LED

U1 U4

Display cu 7 segmente, catod comun

Q1 Q4

C828

Xtal1

4 MHz Cristal

IC1

7805 Regulator IC

PIC1

PIC 16F84 sau PIC16F84A

PB1 -PB3

Buton fr meninere (microcontact)

Codul de programare al unui ceas cu afisaj de


12 ore

CBLOCK
S1
S10
M1
M10
H1
H10
DEL
DEL0
DEL01
DEL02
WHAT
QSTAT
ENDC
#DEFINE
DELAY01

0Ch

DP PORTB,0 ; PIN NO 06 DECIMA POINT


DECFSZ
DEL,1
GOTO$-.1
CLRF PORTB
RETURN
DELAY02
MOVLW
.2
MOVWF
DEL01
DECFSZ
DEL01,1
GOTO$-.1
RETURN
; SEVEN SEGMENT DISPLAY CONNECTING TABLE
TABLE
ADDWF
PCL,1;
hgfedcba segments

SCANMOVLW B'00000001'
MOVWF PORTA

MOVF M1,0
CALL TABLE
MOVWF PORTB
CALL DELAY01
MOVLW B'00000010' ;SEGMENT 02
MOVWF PORTA
MOVF M10,0
CALL TABLE
MOVWF PORTB
CALL DELAY01
MOVLW B'00000100' ;SEGMENT 03
MOVWF PORTA
MOVF H1,0
CALL TABLE
MOVWF PORTB
CALL DELAY01
MOVLW B'00001000' ;SEGMENT 04
MOVWF PORTA
MOVF H10,0
CALL TABLE
MOVWF PORTB
CALL DELAY01
RETURN

INCR INCF S1,1


MOVF S1,0

;SEGMENT 01

BCF STATUS,Z
XORLW .10
BTFSS STATUS,Z
RETURN
CLRF S1
INCF S10,1
MOVF S10,0
BCF STATUS,Z
XORLW .6
BTFSS STATUS,Z
RETURN
CLRF S10

INCR_SM

INCR_SH

INCF M1,1
MOVF M1,0
BCF
STATUS,Z
XORLW
.10
BTFSS
STATUS,Z
RETURN
CLRF M1
INCF M10,1
MOVF M10,0
BCF
STATUS,Z
XORLW
.6
BTFSS
STATUS,Z
RETURN
CLRF M10
INCF H1
SWAPF
ADDWF
BCF
XORLW
BTFSS
GOTO$+6
CLRF H1
CLRF H10
MOVLW .1
MOVWF
RETURN

H10,0
H1,0
STATUS,Z
13h
STATUS,Z

H1

ISR

LABLE

BCF
INTCON,GIE
MOVWF
WHAT
SWAPF
STATUS,0
MOVWF
QSTAT
BCF
INTCON,T0IF
MOVLW
.5
MOVWF
TMR0
INCF DEL0,1
MOVF DEL0,0
ANDLW
B'01111111'
BCF
STATUS,Z
XORLW
.125
BTFSS STATUS,Z
GOTO LABLE
BTFSS DEL0,7
GOTO $+.5
CLRF DEL0
CALL INCR
GOTO LABLE
GOTO LABLE
BTFSS DEL0,7
GOTO $+.5
CLRF DEL0
BCF DP
; DECIMAL POINT
CALL INCR
GOTO LABLE
MOVLW
.200 ; DECIMAL POINT DELAY SETTING
MOVWF
DEL0 ;DECIMAL POINT
BSF DP
SWAPF
QSTAT,0
MOVWF
STATUS

; **********************************
SM1 BTFSC PORTB,1 ; SET MINITUS
GOTO SH1
CALL INCR_SM
GOTO KEYX
;***********************************
;***********************************
SH1
CALL DELAY02
BTFSC PORTB,2 ; SET HOUR
GOTO KEYDE
CALL INCR_SH
;***********************************
KEYX
BSF
STATUS,RP0
CLRF TRISB
BCF
STATUS,RP0
MOVLW
.100
MOVWF
DEL02
CALL SCAN
DECFSZ
DEL02,1
GOTO $-.2
BSF
INTCON,GIE
BCF
OPTION_REG,7
RETURN
KEYDE BSF

MAIN

CLRF

STATUS,RP0
CLRF
BCF
BSF
BCF
RETURN
S1
CLRF
CLRF
CLRF
CLRF

S10
M1
M10
H1

TRISB
STATUS,RP0
INTCON,GIE
OPTION_REG,7

Schema cablajului

Aranjarea pieselor pe cablaj

Ceasul in forma finala

S-ar putea să vă placă și