Documente Academic
Documente Profesional
Documente Cultură
Lecia nr. 1
1.1. INTRODUCERE
Microcontrolerele sunt circuite integrate special concepute, n general pentru aplicaii
de tipul comand i control, specifice sistemelor dedicate (nglobate). Firma MICROCHIP
pune la dispoziia utilizatorilor o gam larg de microcontrolere performante i la preuri
acceptabile, utilizate pe scar larg n aceste aplicaii.
Ne propunem n cadrul leciilor care urmeaz s prezentm structura hardware,
mediul de programare precum i cteva aplicaii reprezentative cu microcontrolere PIC
(Programmable Integrated Circuit).
Din familia de microcontrolere a firmei MICROCHIP am ales pentru a fi prezentat
varianta PIC 12F675 deoarece este un microcontroler cu arhitectur RISC prevzut cu o
memorie de program de tip FLASH i cu o structur potrivit pentru aplicaii de tip
comand i control.
Alegerea este motivat i de faptul c firma comercializeaz un sistem de dezvoltare
PICkit 1 FLASH Starter Kit mpreun cu mediul de programare MPLAB la un pre accesibil
studenilor, sistem pe care acetia i pot dezvolta primele aplicaii.
n descrierile care urmeaz au fost utilizate informaiile puse la dispoziie de firm n
urmtoarele documentaii: PIC 12F629/675 Data Sheet, Pickit 1 Flash Starter Kit Users
Guide i MPLAB IDE V6 Quick Start Guide.
7
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
8
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
9
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
Cel de-al doilea operand pentru ALU poate proveni din instruciunea care se va
executa sau de la oricare alt component legat la magistrala intern de date. n funcie de
rezultatul operaiei efectuat de ALU, n Registrul de stare sunt setai sau nu anumii bii
(cum ar fi bitul de transport C, bitul de transport intermediar DC sau bitul Z care indic dac
rezultatul operaiei a fost zero sau diferit de zero etc.).
De magistrala intern de 8 bii sunt legate i celelalte componente ale sistemului: cei
6 pini multifuncionali (GP0 GP5) care constituie portul general de intrare-ieire,
Comparatorul analogic i referina (Analog Comparator & reference), Convertorul
analog-numeric (Analog to Digital Converter) cu patru canale de intrare, circuitele
temporizatoare Timer0 i Timer1 precum i Memoria suplimentar de date (DATA
EEPROM).
Circuitul mai conine Oscilatorul intern (Internal Oscillator), Generatorul de
secvene de timp (Timing Generation) precum i o serie de componente suplimentare:
Temporizatorul de alimentare (Power-up timer), Temporizatorul de pornire a
oscilatorului (Oscilator Start-up-Timer), Circuitul de resetare la alimentare (Power-on
Reset), Temporizatorul circuitului de supraveghere (Watchdog Timer) i Detectorul de
avarie a tensiunii de alimentare (Brown-out Detect).
10
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
11
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
Registrele de uz general
Aa cum s-a menionat mai sus, sunt implementate n total 64 de registre de uz
general n spaiul de adresare de la 20H la 5FH. Fiecare dintre aceste registre poate fi
accesat fie direct, fie n mod indirect prin intermediul registrului FSR.
n figura 1.5 sunt prezentate cele dou moduri de adresare (direct i indirect) a
memoriei interne de date a microcontrolerului.
12
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
13
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
14
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
15
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
STATUS Register
Registrul de stare prezentat n figura 1.5 conine biii de stare ai unitii aritmetice
logice (ALU), bitul de selecie a bancului de registre precum i biii care caracterizeaz
starea de RESET.
Rezervat Rezervat
IRP RP1 RP0 T0 PD Z DC C
Bit 7 Bit 0
Figura 1.5. Registrul de stare STATUS
Semnificaiile biilor acestui registru sunt urmtoarele:
Bit 7 IRP: bit rezervat pentru alte structuri hardware, trebuie inut pe valoarea 0
Bit 6 RP1: bit rezervat pentru alte structuri hardware, trebuie inut pe valoarea 0
Bit 5 RP0: bit de selecie a bancului de registre
RP0 = 0 Banc 0, cu adresele cuprinse ntre 00H7FH
RP0 = 1 Banc 1, cu adresele cuprinse ntre 80HFFH
Bit 4 T0 : Time Out bit
T0 = 1 este setat la pornire (Power-up) i cu instruciunile CLRWDT sau SLEEP
T0 = 0 indic o depire la WDT (WatchDog Timer)
Bit 3 PD : Power Down bit
PD = 1 este setat la pornire (Power-up) sau cu instruciunea CLRWDT
PD = 0 n timpul execuiei instruciunii SLEEP
Bit 2 Z: Zero bit
Z = 1 dac rezultatul unei operaii aritmetice sau logice este egal cu zero
Z = 0 n caz contrar
Bit 1 DC: Digital Carry/ Borow bit (bitul de transport intermediar); valoarea acestui bit
este influenat de instruciunile ADDWF, ADDLW, SUBLW i SUBWF
DC = 1 dac a aprut un transport din poziia bitului 3 (digitul inferior) ctre bitul 4
(digitul superior)
DC = 0 n cazul n care nu s-a generat transport de la bitul 3 la bitul 4
Obsevaie: n cazul operaiilor de scdere polaritatea bitului se inverseaz.
Bit 0 C: Carry/ Borow bit (bitul de transport); valoarea acestui bit este influenat de
instruciunile ADDWF, ADDLW, SUBWF i SUBLW
C = 1 indic un transport din poziia bitului cel mai semnificativ (bit 7) al
rezultatului
C = 0 n cazul n care nu s-a generat un transport din poziia bitului cel mai
semnificativ
Observaie: n cazul instruciunilor de scdere polaritatea bitului se
inverseaz. n cazul instruciunilor RRF, respectiv RLF acest bit este
ncrcat fie cu bitul cel mai semnificativ, fie cu bitul cel mai puin
semnificativ al registrului F din instruciune.
16
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
OSCCAL Register
Registru de calibrare a frecvenei de lucru OSCCAL prezentat n figura 1.6 este
utilizat n calibrarea oscilatorului intern (de 4 MHz) al microcontrolerului. Conine 6 bii
prin intermediul crora se poate ajusta frecvena n jurul valorii de 4 MHz. Adresa
registrului este 90H.
CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 - -
Bit 7 Bit0
Figura 1.6. Registrul de calibrare a frecvenei OSCCAL
Semnificaiile biilor de calibrare sunt urmtoarele:
Bit 72 CAL5CAL0: 6 bii de configurare a oscilatorului
11111 = frecvena maxim
10000 = frecvena central
00000 = frecvena minim
Bit 10 Neimplementat: se citete 0
Pentru calibrarea efectiv a oscilatorului intern, exist instruciunea RETLW XX,
unde XX este valoarea de calibrare. Aceast instruciune este nscris, n timpul operaiei de
programare, n ultima locaie a memoriei program accesibil utilizatorului. Valoarea XX va
trebui nscris, prin program, de utilizator n OSCCAL. Secvena de program pentru
calibrare este:
bsf STATUS,RP0 ;selectare banc 1 de registre
call 0x3FF ;salt la adresa unde se afl instruciunea RETLW XX n urma
; execuiei acestei instruciuni, n acumulator se va afla valoarea XX
movwf OSCCAL ;ncrcarea valorii de calibrare n OSCCAL
CONFIG Register
Registrul de configurare hardware prezentat n figura 1.7 conine biii de configurare
a unor componente hardware i, deci, a unor opiuni de lucru pentru microcontroler. Adresa
lui este 2007H, adic n afara memoriei program de utilizator. Acest registru aparine unei
zone speciale de memorie de configurare (2000H3FFFH) care poate fi accesat numai n
timpul operaiei de programare.
Microcontrolerul PIC 12F675 dispune de 11 bii pentru configurarea/setarea unor
opiuni de lucru referitoare la oscilator, WDT, modul de resetare, protecia memoriei de date
i program i limitele tensiunii de alimentare corespunztoare unei funcionri corecte.
BG1 BG0 - - - CPD CP BODEN MCLRE PWRTE WDTE FOSC2 FOSC1 FOSC0
Bit 13 Bit 0
Figura 1.7. Registrul de configurare hardware CONFIG
17
Aplicaii hardware i software cu microcontrolerul PIC 12F675 Lecia nr. 1
18