Sunteți pe pagina 1din 4

Facultatea de Electronic i Telecomunicaii

Laborator 11 - Microcontrolere an univ. 2004 / 2004 , sem II asistent Aghion Cristian



1
Programmable Integrated Controller (PIC)

n cele ce urmeaz se va prezenta o alt familie de Microcontrolere (similar cu cea
prezentat n laboratoarele anterioare), realizat de firma MICROCHIP TECHNOLOGY
INC. Aceste tipuri de microcontrolere au cunoscut o dezvoltare rapid ntr-un scurt interval de
timp ca urmare a uurinei de programare i de utilizare a acestora. Programatoarele pentru
aceste microcontrolere sunt uor de realizat i uor de interfaat cu calculatoarele personale. Mai
mult dect att, exist controlere care au inclus n interior i oscilatorul intern, nemaifiind
nevoie de rezonator extern. Important de reinut este c la astfel de controlere bus-ul intern
pentru memoria de Date este diferit de cel pentru memoria Program am avantaj cu lucru
simultan pe cele dou bus uri = vitez mai mare de execuie a instruciunilor.

n continuare sunt prezentate cteva trsturi importante ale microcontrolerului PIC16F84

- toate instruciunile sunt executate ntr-un singur
ciclu, excepie fcnd cele de ramificare
- are doar 35 cuvinte de instruciuni
- memorie program accesibil pe 14 bii
- memorie de date accesibil pe 8 bii
- 15 registre cu funcii speciale
- stiva pe 8 nivele de adncime
- moduri de adresare: direct, indirect i relativ
- 4 surse de ntrerupere
- memoria program poate fi renscris de 1.000.000 ori.
- reinerea datelor n memoria program, fr alimentare, peste 40 ani.
- frecvena de lucru maxim 10MHz

Arhitectura intern pentru PIC16F84 este prezentat n Fig. 2




















Fig. 1 Vedere de sus a
capsulei
microcontrolerului
PIC16F84

Facultatea de Electronic i Telecomunicaii
Laborator 11 - Microcontrolere an univ. 2004 / 2004 , sem II asistent Aghion Cristian

2
Memoria Program i memoria de Date
n Fig. 3 este prezent harta Memoriei Program.
PIC16F84 are PC (Program Counter = numrtorul de
program) pe 13 bii (de la 0 la 12), capabil s acceseze
adrese din memoria program pn la 8K x 14 bii. Memoria
Program a lui PIC16F84 este de 1K (1024 cuvinte de 14
bii). (0000H 03FFH), restul pn la 1FFFH este
neimplementat.
Litera F din PIC16F84 semnific faptul c Memoria
Program poate fi reinscriptibil. (la PIC12C509, Memoria
Program poate fi nscris doar o singur dat, avnd
avantajul c, odat ars Memoria Program, aa va rmne
pentru totdeauna pe cnd la variantele cu memorie Flash,
exist varianta teoretic prin care se pot modifica datele (n
mod greit) din Memoria Program.
Stiva
PIC16F84 are o stiv de 13 bii cu 8 nivele, sau cu alte
cuvinte, un grup de 8 locaii de memorie de 13 bii lime cu
funcii speciale. Rolul su de baz este de a pstra valoarea
contorului de program dup un salt din programul principal
la o adres a unui subprogram. Pentru ca un program s tie
cum s se ntoarc la punctul
de unde a pornit, trebuie s
napoieze valoarea contorului
programului din stiv. Cnd se
mut dintr-un program ntr-un
subprogram, contorul
programului este mpins n
stiv (un exemplu de acesta
este instruciunea CALL).
Cnd se execut instruciuni ca
RETURN, RETLW sau
RETFIE ce au fost executate la
sfritul unui subprogram,
contorul programului a fost
luat dintr-o stiv, astfel nct
programul s poat continua de
unde a fost oprit nainte de a fi
ntrerupt. Aceste operaii de
plasare ntr-o i luare dintr-o
stiv de contor de program
sunt numite PUSH i POP.

n Fig. 4 este prezentat
toat memoria (programe +
date) la PIC16F84.


Fig. 3
Fig. 4

Facultatea de Electronic i Telecomunicaii
Laborator 11 - Microcontrolere an univ. 2004 / 2004 , sem II asistent Aghion Cristian

3
Memoria de Date este partiionat n dou arii, prima este destinat Regitrilor cu
Funcii Speciale, iar cea de-a doua fiind de uz general (regitrii GPR- Global Purpose
Register). La rndul ei, zona SFR este i ea mprit n dou (bank0 i bank1),
selectabile prin valoare lui RP0 (bit aflat n registrul STATUS). Fiecare registru este pe
8 bii (inclusiv zona EEPROM). Pe lng SFR i GPR, mai exist i memoria EEPROM,
de 64 de cuvinte pe 8 bii (64 bytes), accesibil tot prin regitrii din SFR. Aceast zon
de memorie, cu toate c este de Date, nu pierde valoarea, la RESET sau scoaterea de sub
tensiune, putndu-se stoca aici setri (instantanee) pentru aplicaia curent. Zona GPR
(General Purpose Register) nu ine cont de bank0 sau bank1 valoarea fiind aceeai.
Zonele 50H 7Fh i D0H FFH nu sunt implementate la microcontrolerul PIC16F84.

n Fig. 5 sunt prezentai toi Regitrii cu Funcii Speciale, pentru PIC16F84
Porturile
Acestei familii de microcontrolere trebuie spus cum s fie Portul (de intrare sau
de ieire). Dac este de intrare, atunci citesc valoarea Portului, iar dac este de ieire
scriu n Port. Definirea Porturilor s fie intrare / ieire se realizeaz cu ajutorul
Regitrilor TRISA pentru PORTUL A i TRISB pentru PORTUL B.
Valoare n TRIS = 1 bitul din PORT este programat ca intrare
TRIS = 0 bitul din PORT este programat ca ieire

Fig. 5

Facultatea de Electronic i Telecomunicaii
Laborator 11 - Microcontrolere an univ. 2004 / 2004 , sem II asistent Aghion Cristian

4
n Fig. 6 este prezentat setul de instruciuni (35 mnemonice).
Atenie:
- d este destinaie - d = 0 > rezultatul va fi dus in W
d = 1 > rezultatul va fi lsat n operand (notat cu f)
- b este numrul bitului dintr-un operand (f)
exp. BTFSS f,4 = testeaz bitul 5 (LSB - 0,1,2,3,4,5,6,7 - MSB) din
operandul (f).

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