Aeronautica | Comunicatii | Constructii | Electronica | Navigatie | Pompieri | |
Tehnica mecanica |
Adresarea este de 3 feluri:
imediata
directa
indirecta
In adresarea imediata registrul W poate fi incarcat cu o valoare specifica sau modificata de o anumita operatie folosind o valoare explicita, aceasta valoare face parte din date.
Adresarea directa si indirecta se face folosind registrul FSR care va spune cu ce registru va lucra registrul W.
Numaratorul de program (PC)
Are 14 biti din care 11 cei mai putini semnificativi sunt disponibili intr-o adresa. Cu instructiunea "go to" sau "call" nu se poate merge decat 2k de memorie.
Cei mai semnificativi biti ai PC sunt localizati in registrul PCLATCH.
Intreruperile
Sursa principala de control a intreruperilor este registrul INTCON localizat in memorie la adresa 00Bh care are urmatoarea structura:
6 5 4 3 2 1 0
GIE |
EBPI |
TOIE |
INTE |
RBIE |
TOIF |
INTF |
RBIF |
GIE - Global Intrerrupt Enable
GIE = 1 => setat
GIE = 0 => resetat
Daca GIE =1 (setat) este permisa executia unei cereri de intrerupere. GIE = 0 nu raspunde la nici o cerere de intrerupere.
EBPI - bitul de activare a intreruperilor periferice
..IF - indicatori de intrerupere (Interrupt Flag)
..IE - biti de activare a intreruperii (Interrupt Enable)
Biti de activare trebuiesc adusi la "0" inaintea la instructiunea de intoarcere din intrerupere sa fie executata.
Intreruperile au diferite prioritati, cea mai mare prioritate o are intreruperea externa venita pe pinul RA0/INT care se afla la adresa 008h, iar cea mai putin prioritara este cea a perifericelor controlata de registru PEIF aflat la adresa 020h.
Atunci cand se lucreaza cu intreruperile trebuiesc luate in 2 perioade de timp:
intarzierea la intrerupere dureaza 3-4 cicli instructiune, timp in care μC nu executa nici o instructiune.
timpul de procesare care este numarul de cicli instructiune de care are nevoie programul pentru a efectua intreruperea.
Intreruperea implica salvarea si refacerea programului principal.
O atentie deosebita trebuie acordata registrelor care contin starea executiei ce trebuie refacuta inaintea reveniri din intrerupere.
Stiva (stack)
Contine 2, 8, 16 locatii.
Numai contorul de program poare fi pus sau scos din stiva cu ajutorul instructiunii "PUSH" si "POP".
Ca stiva mai pot fi folosite 2 registre : FSR si INDF.
FSR - la adresa 004h sau 084h
INDF - la adresa 000h sau 080h
TMR0 - 001h, 081h
PORTA - 005h, 085h
Modul SLEEP - in timpul functionarii cu consum mic de energie, daca μC comanda un oscilator acesta este oprit. Starea curenta a tuturor registrilor este salvata, numai perifericele care au ceasul lor propriu continua sa functioneze.
Temporizatorul de supraveghere continua sa functioneze si cand timpul a expirat va scoate μC. din starea sleep.
Scoaterea μC. din aceasta stare de consum redus de energie se poate face in mai multe feluri:
reset exterior
intrerupere externa de la RA0 ("1")
intrerupere generata de WDT
TMR1 daca este disponibil si functioneaza cu cristal extern, poate fi folosit pentru a scoate μC. din sleep.
Celelalte temporizatoare sunt dezactivate.
In functie de modul in care μC. este "trezit" programul va incepe de la o anumita adresa.
Intrucat in modul sleep si oscilatorul este oprit la iesire trebuie luata o rezerva de timp de 1024 cicli instructiune, timp in care oscilatorul devine stabil. Aceasta intarziere trebuie luata in seama in aplicatii.
Exemplu:
Tinstr = 0,25μs f = 4MHz => T=0,25μs
1024·0,25 = 256μs
μC executa intotdeauna urmatoarea instructiune dupa intrarea in modul sleep. Pentru a fi siguri ca μC. "nu mai face nimic" dupa instructiunea SLEEP se pune instructiunea NOP.
Ceasul sistemului (oscilatoarele)
μC functioneaza cu 4 tipuri de oscilatoare:
RC extern
RC intern
cristal, rezonator ceramic
oscilator extern
Oscilatorul RC extern: - are o acuratete de 20%, poate fi folosit in aplicatiile care nu necesita precizie de timp.
Oscilatorul RC intern: - valoarea frecventei de oscilatie este data in prima instructiune a programului.
Cristal sau rezonator ceramic: - oscilator de putere redusa (LP) - rezonator ceramic, iar cristalul standard (XT) de cativa MHz si oscilatorul "high speed" (HS) care poate fi la fel cuart, rezonator sau alta sursa externa.
LP - are o acuratete de 0,5%, iar frecventa de rezonanta este intre 5kHz si 200kHz.
Oscilatoarele RC pot fi realizate cu frecvente intre 0 si 4 MHz.
XT - sunt realizate intre 100kHz si 4MHz iar acuratetea este de 0,02% sau 2ppm.
HS - pentru microcontrolere in 3 variante:
HS(04) → 4MHz
HS(10) → 10MHz
HS(20) → 20MHz
f = 4MHz;
C1, C2 =15÷33pF
Pentru a vedea frecventa de rezonanta avem voie sa venim cu oscilatorul pe OSC2
Copyright © 2024 - Toate drepturile rezervate