Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Meseria se fura, ingineria se invata.Telecomunicatii, comunicatiile la distanta, Retele de, telefonie, VOIP, TV, satelit




Aeronautica Comunicatii Constructii Electronica Navigatie Pompieri
Tehnica mecanica

Electronica


Index » inginerie » Electronica
» Adresarea registrilor


Adresarea registrilor


Adresarea registrilor

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





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate