microcontrolere

6

Click here to load reader

description

arhitectura microprocesoarelor

Transcript of microcontrolere

Page 1: microcontrolere

1. Memoria virtuala (concept,

facilitate hardware si software pentru

implementarea conceptului de memorie virtuala)

Exista doua idei fundamentale privind

functionarea sistemelor cu microprocesoare si

anume:

a. Pentru executia unui program codul

trebuie sa se afle in memoria principala (MP) a

sistemului. Daca acesta se afla in alte resurse de

memorie programul trebuie transferat intai in MP si

apoi poate fi executat de catre microprocesor.

b. Operanzii (datele) inainte de a fi

prelucrati de instructiuni trebuie sa fie stocati fie in

MP fie intr-un registru intern (RI) al

microprocesorului.

Microprocesoarele evoluate utilizeaza

principiul organizarii modulare a memoriei

sistemului. Modulele pot fi segmente sau/si pagini.

Segmentele sunt module de memorie de

lungime variabila, iar paginile sunt module de

memorie care au toate aceeasi lungime. Dimensiunea

modulelor de memorie este limitata de dimensiunea

MP, deci de resursele HW ale sistemului.

Pentru programator este mai usor sa

realizeze programarea fizica fara sa tina seama de

dimensiunea limitata a MP, astfel in sistemele de

calcul in afara de MP exista si memoria auxiliara

(MA) de capacitate mult mai mare decat cea a MP.

Desi functional cele 2 tipuri de memorie au acelasi

rol: suport al informatiei exista insa diferente in

privinta modului de utilizare de catre UCP. Pentru a

fi accesat de catre aceasta continutul MA trebuie intai

transfera in MP ori de cate ori este utilizat de catre

microprocesor.

Principiul memoriei virtuale (MV)

consta in a considera toate resursele de memorie (atat

MP cat si MA) ca pe o memorie unica de capacitate

foarte mare ce ofera programatorului un spatiu virtual

de adrese (spatiu logic) pentru realizarea programelor

sau pentru stocarea datelor. Acest spatiu este mult

mai mare decat spatiul adreselor fizice oferit de MP.

In particular accesul UCP la MV este

transparent pentru utilizator care va fi astfel degrevat

de sarcina gestionarii resurselor de memorie in cadrul

programului.

Intr-un sistem cu MV toate cererile de

acces la memorie din cadrul programelor se

adreseaza MV.

Din punct de vedere HW numai o parte

din informatiile din spatiul MV se afla in MP, iar

restul se afla in MA. Realizarea conceptului de MV

implica existenta unui mecanism pentru transferul de

blocuri intregi de date intre MA si MP. Este eclusa

posibilitatea realizarii MV prin transferul de date

individuale, solutie inacceptabila din punct de vedere

al timpului consumat pentru transfer.

Transferul de blocuri intre MA si MP

trebuie sa fie transparent pentru utilizator astfel incat

acesta sa nu fie preocupat de amplasamentul efectiv

al informatiilor pe care le manipuleaza. Singurul

dezavantaj pentru utilizator este intarzierea care

poate sa apara atunci cand cererile sale necesita

transfer suplimentar intre MA si MP.

Implementarea conceptului de MV prin

procedee SW este o sarcina dificila si practic nu este

folosita. MV permite utilizatorului sa alcatuiasca

programe in limita spatiului adresabil folosind adrese

logice in locul adreselor fizice.

Pentru accesarea MP este necesara

translatarea adrseselor logice oferite de program in

adrese fizice care sunt generate de microprocesor in

exterior in cadrul ciclilor de acces. Sarcina

translatarii adreselor logice in adrese fizice este a

circuitului de gestionare a memoriei (MMU).

Daca in cadrul unor prelucrari apar

adrese logice care nu corespund unor locatii din MP,

MMU comanda executarea transferului intre MP si

MA pentru actualizarea continutului MP cu adresa

ceruta. Transferul se poate executa in ambele sensuri

deoarece blocuri de date din MP care nu sunt folosite

curent sunt transferate inapoi in MA.

Realizarea transferului de date in MA si

MP implica organizarea modulara a informatiei. Cum

blocurile pot fi segmente si pagini rezulta ca avem

doua tipuri de organizare: organizare segmentata si

organizare pe pagini. Acestea sunt create in spatiul

MV. Sunt utilizate ambele variante de organizare,

segmentarea avand unele dezavantaje in raport cu

paginarea.

2. Caracteristici generale ale

microcontrolerelor (definiție microcontroler,

componente minime conținute de

microcontroler), caracteristici arhitecturale ale

unității centrale, sistemul de I/O în cazul

microcontrolerelor.

La modul general, un controler este o

structura electronica destinata controlului unui

proces sau unei interactiuni caracteristice cu

mediul extern, fara sa fie necesara interventia

operatorului uman.

Un microcontroler este un microcircuit care incorporeaza o unitate

centrala(UC) si o memorie impreuna cu resurse

care ii permit interactiunea cu mediul exterior.

Resursele integrate la nivelul microcircuitului ar

trebui sa includa cel putin urmatoarele

componente: o UC cu un oscilator intern, o

memorie focala de tip

ROM/PROM/EPROM/FLASH sau/si RAM, un sistem de intreruperi, intrari si iesiri numerice de

tip port paralel, un port serial de tip asincron

si/sau sincron programabil, un sitem de timere sau

numaratoare programabile. Este posibil ca la

acestea sa fie adaugate, la un pret de cost

avantajos, caracteristici specifice sarcinii de

control care trebuie indeplinite: - un sistem de conversie analog-

numeric cu una sau mai multe intrari analogice;

- un sistem de conversie numeric-

analogic si iesire PWM;

- un comparator analogic;

- o memorie de date nevolatila de tip

EEPROM;

- un timer WATCHDOG; - facilitati suplimentare pentru

sistemele de temporizare-numarare;

- facilitati pentru optimizarea

consumului de putere.

Un microcontroler tipic mai are la

nivelul UC facilitati de prelucrare a informatiei la

nivel de bit, de acces direct si usor la intrari/iesiri si un mecanism de prelucrare a intreruperilor

rapid si eficient.

Caracteristici

arhitecturale ale UC

Arhitectura UC de calcul este una

dintre elementele cele mai importante de care

trebuie avut in vedere in analiza oricarui sistem

de calcul. Principalele concepte luate in considerare si intalnite la microcontrolere sunt:

a. Arhitecturi de tip „Von

Neumann”

Pe baza acestei arhitecturi de sistem

sunt realizate cele mai multe microcontrolere;

microcontrolerele bazate pe aceasta arhitectura au

o UC caracterizata de existenta unui singur spatiu

de memorie utilizat pentru memorarea codului instructiunii cat si a datelorce fac obiectul

prelucrarii, deci exista o singura magistrala

interna care este folosita pentru prelucrarea

instructiunilor si a datelor.

b. Arhitecturi de tip „Harvard”

la aceasta arhitectura exista spatii de

memorie separate pentru program si date. In consecinta, ar trebui sa existe si magistrale

separatre de adrese si de date pentru codul

instructiunilor si respectiv pentru date.Aceasta

este arhitectura standard pentru procesoarele

numerice de semnal (DSP).

c. CISC

Conceptul CISC: aproape toate

microcontrolerele al la baza realizarii UCP acest concept. Aceasta insemna ca au un set uzual de

peste 80 de instructiuni, multe dintre ele foarte

puternice si specializate. De obicei, multe dintre

instructiuni sunt foarte diferite intre ele (unele

opereaza numai cu anumite spatii de

adrese/registre, in timp ce altele permit numai

anumite moduri de realizare.

d. RISC

Este un concept de realizare a UCP

care a inceput sa fie utilizat cu succes si la

realizarea microcontrolerelor. Prin implementarea

unui set redus de instructiuni care se pot executa

foarte rapid si eficient, se obtine o reducere a

complexitatii microcircuitului, suprafata disponibilizata putand fi utilizata in alte scopuri.

Printre caracteristicile asociate de obicei unei

UCP de tip RISC se pot mentiona:

- arhitectura Harvard modificata/ Von

Neumann; - viteza sporita de executie prin

implementarea unui pipeline pentru instructiuni;

- set de instructiuni ortogonal

(simetric).

Sistemul de I/O

Toate microcontrolerele au un nr

diferit de I/O numerice organizate sub forma unor

porturi de I/O. Conexiunile externe pot fi unidirectionale, bidirectionale sau

multifunctionale (functii alternative pe acelasi

pin). In afara de acest set de intari si iesiri de uz

general pentru interfata cu mediul extern se ofera

o serie de alte facilitati importanta de I/O cum ar

fi:

A.

a)UART (Universal Asynchronous Receiver Transmitter)

- port serial bidirectional destinat

implementarii unui protocol clasi de comunicatie

asincron.

b)USART (Universal Synchronous

and Asynchronous Receiver Transmitter)

- port similat cu UART, dar care permite implementarea si a unui protocol sincron

cu obtinerea unor viteze mai mari de comunicatie

c)SCI (Serial Communicatins

Interface)

- circuit de tip UART imbunatatit care

se foloseste frecvent la microcontrolere

(Motorola)

d) LIN (Local Internet network) - reprezinta o implementare

particulara a unui protocol de comunicatie

asincron utilizata in industria de automobile

B. Porturi seriale sincrone dedicate

Sunt destinate transferului de date cu

mare viteza cu unele periferice specializate sau

care permit conectarea intr-o retea de comunicatie. Acestea implica si implementarea

unor protocoale mai mult sau mai putin complexe

de transfer a datelor fiind de fapt vorba de o

magistrala seriala. Exista cateva implementari

raspandite prezentate in ordinea crescatoare a

complexitatii:

- SPI – port serial sincron

- MICROWIRE – interfata seriala bidirectionala sincrona

- I2C(Inter Integrated Circuits) –

interfata serial bidirectionala destinata aplicatiilor

pe 8 biti

C. Conectivitate USB

Magistrala seriala USB a fost creata

pentru conectarea cu usurinta a diverselor

periferice a un calculator

D.Conectivitate Wireless

Se refera la existenta unor resurse

HW si SW care sa permita integrarea cu usurinta

si la un pret avantajos intr-o retea de tip wireless

pentru a face posibila in final implementarea unui

protocol si a stivei aferente protocolului

E. CAN Convertoarele utilizate fac parte de

regula dintr-un sistem de achizitie de date in care

exista si un MUX analogic cu mai multe canale

de intrare. Rezolutia disponibila este de regula de

8, 10 sau 12 biti uneori cu precizia

corespunzatoare unui numar mai mic de biti

F.CNA

Cea mai raspandita tehnica de conversie numeric analogica folosita este bazata

pe modulatia in factor de umplere, controlat cu a

rezolutie de 8/16biti

Obs: CNA-uri propriu-zise sunt mai

rar intalnite.

G. Interfata pentru sisteme de

afisare de tip LCD (panou LCD)

Interfata respectiva genereaza toate semnalele necesare pentru comanda panoului

LCD

Page 2: microcontrolere

3. Controlul puterii consumate și

alimentarea la tensiuni reduse în cazul

microcontrolerelor, limbaje de programare

folosite de microcontrolere, criterii de

alegere a unui microcontroler.

Controlul puterii consumate și alimentarea la

tensiuni reduse în cazul uC Majoritatea microcontrolerelor pot fi trecute

cub control soft in stari speciale cum ar fi:

starea „stand-by”, „idle”, „halt”, „power-down”.

In aceste moduri, starea UCP, continutul

memoriei RAM interne, starea intrarilor si iesirilor, poate fi observata in conditiile unei

tensiuni de alimentare reduse fata de cea

nominala si deci a unui consum mult redus. De ex: in modul „idle” toate activitatile sunt

oprite cu exceptia circuitului oscilant local de

ceas si daca acestea exista: circuitul WATCHDOG, circuitul de monitorizare a

oscilatorului de ceas si eventual un

temporizator dedicat, puterea consumata este redusa la aprox 30%, iar iesirea din acest mod

se face prin RESET sau printr-un stimul extern

(o intrerupere). In modul „halt” toate activitatile sunt oprite iar

tensiunea de alimentare poate fi coborata sub valoarea nominala fara alterarea starii, iar

puterea consumata este minima. Iesirea din

aceasta stare se face prin RESET sau ca urmare a unei cereri de intrerupere.

Aceste moduri de lucru sunt valorificate in

aplicatii in care alimentarea sistemului se face de la o sursa de tip baterie.

La inceput microcontrolerele foloseau o

tensiune de alimentare standard de 5V cu o toleranta foarte mica. La ora actuala se ofera si

variante cu tensiune de alimentare redusa: 1,8

– 3,3V destinate unor aplicatii unde consumul este un parametru critic. Exista variante de

microcontrolere cu o plaja mare de tensiuni de

alimentare: 2-6V, functionarea la limita inferioara implicand doar o miscare a

frecventei maxime de ceas.

Criterii de alegere a unui microcontroler

In momentul in care se doreste alegerea unui microcontroler sau a unei familii de

microcontrolere pentru dezvoltarea unei

aplicatii exista mai multe criterii care trebuie

luate in considerare tinand cont de impicatiile

multiple ale acestei alegeri. Vom grupa aceste

criterii dupa cerintele impuse aplicatiei si vom prezenta cateva din intrebarile rezultate la care

trebuie dat un raspuns:

a. Costurile aplicatiei - care va fi scara de productie: prototip,

productie mica/medie sau productie de masa

- care sunt costurile permise pentru microcontroler

- care sunt costurile permise pentru mediul de

programare si dezvoltare b. Timpul de dezvoltare al aplicatiei

- ce limbaj de programare sa aleg

- ce limbaj de programare cunosc bine si ce medii de dezvoltare am utilizat

- ce modalitate de testate si depanare folosesc:

simulator, emulator/sistem de dezvolatare c. Caracteristici fizice

- care este viteza de prelucrare necesare

- de cata memomeri am nevoie pentru programe si pentru date

- va fi necesara si o memorie exterioara - ce fel de alimentare este disponibila si care

sunt limitarile acesteia

- de cate intrari si iesiri am nevoie - ce fel de intrari si iesiri sunt necesare

- care sunt resursele necasare in materie de

temporizare sau numarare si care ar fi caracteristicile cele mai importante: rezolutie,

frecventa maxima de numarare

- ce tip de capsula, ce dimensiuni fizice si ce numar de pini ar trebui sa aiba

- care este gama temperaturilor de lucru

necesare - aplicatia va functiona intr-un mediu cu

caracteristici speciale

d. Conectivitatea - care sunt resursele de comunicatie necesare;

cate porturi seriale asincrone si cu ce

caracteristici, ce tipuri de magistrale seriale sincrone sunt disponibile

- este necesara o conectivitate USB sau

wireless e. Compatibilitatea, scalabilitatea si

dezvoltarea ulterioara

- cu ce tipuri de circuite se poate interfata cat mai simplu

- cum se poate realiza extinderea ulterioara

atunci cand este necesar - exista mai multe variante in familia

respectiva de microcontrolere care sa acopere

eventualele cerinte suplimentare in materie de viteza de lucru, resurse periferice sau resurse

de memorie

f. Alte aspecte - ce distribuitori exista si cat sunt de accesibili

pentru mine

- care este suportul oferit de fabricant sau distribuitor si care este baza de cunostinte

existenta

In practica de cele mai multe ori alegerea unui microcontroler pentru o anumita aplicatie este

si trebuie sa fie rezultatul unui compromis.

4. Familia de microcontrolere MCS-51. Exemplu: microcontrolerul Intel 8051: caracteristici generale, arhitectura internă,

organizarea memoriei, registrele cu funcții

speciale.

Caracteristici generale

Familia MCS-51 apartine familiei Intel si

cuprinde microcontrolere pe 8 biti ex: I8051, 8031, 8751 realizate pe o capsula cu 40 de pini

avand urmatoarele caracterisitici tehnice:

- arhitectura orientata pe acumulatori; - 4Kocteti memorie de program interna (on

chip) – ROM

- 128KB memorie de date interna – RAM - memoria ROM si RAM au mecansime de

adresare diferite

- adresabilitate de pana la 64KB atat pentru RAM cat si pentru ROM prin extensii de

memorie in afara chip-ului

- 4 bancuri de registrii in memoria RAM -exista fanioane definite prin SW de catre

utilizator

- 32 linii de I/O organizate ca 4 porturi de 8 biti

- un port serial multimod de mare viteza

- timer si numarator de 16 biti cu 2 moduri de functionare

- logica de tratare a intreruperilor - stiva interna pentru stocarea datelor si pentru

apelurile de subrutina

- multiplicator si divizor HW ce executa operatiile in 4 µs

- detectie a depasirilor la bitul de semn si la cel

de calcul al paritatii - set extins de instructiuni comparativ cu

familiile anterioare

- adresabilitate directa pe octet si pe bit - foloseste aritmetica zecimala si binara

- poate executa operatii logice la nivel de bit

- are un ciclu instructiune de 1 µs la o frecventa a ceasului de 12 MHz

- alimentarea se face la curent continuu de -5V

Page 3: microcontrolere

Diferentele in reprezentantii familiei MCS51 constau in tipurile de memorii de program

(ROM/EPROM) cu care sunt prevazute

Arhitectura microcontrolerului Intel 8051 Elementele constitutive ale microcontrolerului

sunt urmatoarele:

- UCP - memoria interna ROM si

RAM - porturile I/O

- registrele de configurare (cele cu sufixul CON)

- registrele de stare

- registrele de mod (cele cu sufixul MOD)

- logica de comanda si control Toate unitatile functionale sunt conectate la o

magistrala interna pe 8 biti, care este conectata cu

exteriorul prin porturi I/O atunci cand se doreste

extinderea capacitatii de memorie sau intrari si

iesiri in exterior. Conectarea memoriei ROM la

magistrala interna se face cu amplificatoare cu

sens unic.

IR – registrul de instructiuni, reprezinta registrul in care sa incarca intructiunile din memoria de

program

PLA – aria logica programabila este decodorul

pentru instructiuni

Registrele cu functiuni speciale sunt adresabile

in mod direct, iar adresele lor se afla in zona 80H

pana la FFH, iar registrele ale caror adrese se termina in 0 sau 8 pot fi adresate si la nivel de bit.

Organizarea memoriei

Arhitectura este de tip Harvard, adica spatiul

memoriei de program este separat de spatiul

memoriei de date.

Microcontrolerul 8051 dispune de doar 16 linii de

adrese si totusi are un spatiu de memorie de

128KB. Explicatia consta in faptul ca el face diferenta intre spatiul de memorie de program si

spatiul de memorie de date (arhitectura de tip

Harvard). Ambele spatii de memorie au cate

64KB, deci utilizeaza toate liniile de adrese dar

sunt validate de semnale de comanda diferite

/PSEN este semnalul de comanda pentru citire din

memoria externa de program. In ciclurile de citire din memoria externa se activeaza de 2 ori pe

ciclu, el nu se activeaza atunci cand se executa

programul din memoria interna de program si nici

in ciclurile in care se transfera date din memoria

externa de date

/RD este semnalul de citire din memoria externa

de date

/WR este semnalul de scriere in memoria externa de date

Primii 4KB din spatiul de memorie de program

sunt interni, iar accesul la ei este realizat doar

daca /EA=1(external address) si in aceste cicluri

semnalul /PSEN nu este activat. Daca /EA=0 sau

daca accesul se face la o locatie cu adresa peste

0FFFH va fi adresata memoria externa de

program si semnalul /PSEN se va activa de doua ori pe ciclu.

/EA este o intrare care selecteaza memoria de

program, daca este zero atunzi se va executa din

memoria externa de program, iar daca este 1 se va

executa din memoria interna de program, dar

pana la valoarea 0FFFH din PC.

Memoria de program mai contine cateva locatii cu functii predeterminate, astfel, dupa

dezactivarea semnalului de initializare RST

(reset), microcontrolerul va incepe cu aducerea de

cod de la locatia 000H. Tot aici se afla si locatiile

la care este realizat accesul in urma acceptarii

unei intreruperi si anume:

- 0003H pentru intreruperea externa 0

- 000BH pentru intreruperea provocata de intrarea externa pentru timerul 0

- 0013H pentru intreruperea externa 1

- 001BH pentru intreruperea provocata de intrarea

externa pentru timerul 1

- 0023H pentru intreruperea provocata de

interfata seriala

Memoria de program poate fi de tip ROM sau

EPROM.

5. Familia de microcontrolere MCS-51.

Exemplu:microcontrolerul Intel 8051: modurile de adresare, sistemul de interfeţe I/O,

sistemul de întreruperi, modurile de

funcţionare cu consumredus de energie.

Modurile de adresare

La programareamC 8051 se pot

utiliza mai multe moduri de adresare a datelor in cadrul instructiunilor.Acestea sunt:

Adresarea directa: instr contine direct adresa

din memorie la care se gaseste val. Acest mod de adresare permite accesarea memoriei RAM

de date interna si a registrilor SFR

Adresarea indirecta : in instr este specificat un registru care contine adresa de memorie la

care se gaseste val cautata. Prin acest mod de

adresare se poate accesa memoria RAM de date interna si externa

Adresarea imediata: se poate folosi o val. nr.

fara ca aceasta sa fie scrisa in prealabil in memoria de date

Adresarea de registru: se poate folosi, in

cadrul unei instr, o val numerica ce se afla stocata intr-un registru

Adresarea indexata: se foloseste doar pentru

memoria de program care poate fi doar citita. Acest mod se foloseste pentru a citi tabele de

translatare din memoria de program. Registrul de baza poate fi un reg DPTR sau reg PC care

indica baza tabelului de translatare, iar A este

incarcat cu pozitia din tabela dorita. Adresa de citire din tabela rezulta ca suma dinte

continutul acumulatorului si registrul de

baza(DPTR/PC)

Sistemul de interfeţe I/O

Structura sistemului de interfete de

I/O si de dispozitive periferice deosebeste mC de mP de uz general. Ea este specifica

aplicatiilor de tip industrial

Structura porturilor este foarte versatila,deci in cadrul aceleiasi familii de mC

exista versiuni cu structuri diferite ale

sistemului de I/O mC 8051 are 4 porturi de I/O

bidirectionale, de 8b fiecare, care pot fi

configurate prin program. Ele sunt folosite pt generarea si respectiv receptarea semnalelor

digitale,adica pentru extensia memoriei si pt

conectarea dispozitivelor periferice. Transferul datelor prin porturi se face sub controlul

programului. In functie de modul de lucru,

aceste porturi se pot configura si pot avea mai multe situatii de lucru. Astfel, daca se lucreaza

cu memorie ROM externa, 2 dintre aceste

porturi se constituie in linii ce formeaza magistralele de adrese si de date.

Sistemul de întreruperi

mC 8051 are 5 surse pt intreruperi si anume: 2 intreruperi externe generate la

intrarile INT0, INT1 si 3 intreruperi interne: 2

de la circuitele timer/counter si una de la intreruperea seriala

Intreruperile sunt controlate de 2

reg:IE(interrupt enable) si IP(interrupt priority). Rolulreg IE este acela de a valida sau

invalida atat global cat si local sursele de

intrerupere. Pentru a valida o intrerupere, bitul corespunzator trebuie sa fie 1, iar pt a o

dezactiva trebuie sa fie 0. In mod individual,

fiecare sursa de intreruperi este activata printr-un bit. Daca bitul respectiv este in starea 0,

intreruperea corespunzatoare este dezactivata

mC 8051 ierarhizeaza cele 5 surse de intreruperepe 2 nivele globale de

intrerupere,pe fiecare nivel existand un al

doilea sistem de ierarhizare. Pe un astfel de nivel global, intreruperea externa 0 are gradul

cel mai inalt de prioritate, fiind urmata de intreruperea de la timer 0, externa1, timer1 si

de la calea serial. Stabilirea unei intreruperi pe

cele doua nivele generale de prioritate se face prin bitii corespunzatori din reg IP, rolul

acestuia fiind de a aloca prioritati.

Exista 2 nivele de prioritati la

tratarea intreruperilor: scazut si ridicat. Fiecarei surse de intreruperei se poate aloca in

mod independent orice nivel de prioritate.

Pentru fiecare cerere de intrerupere pt care

logica de intreruperi este activata in vederea

tratarii, procesul este directionat catre o adresa

fixa rezervata in cadrul memoriei de program. De la aceasta adresa se scrie subrutina de

tratare. Modurile de funcţionare cu consum

redus de energie. Pentru aplicatiile in care consumul de energie de la sursa de alimentare

este critic, sunt implementate sisteme prin care

pot fi dezactivate temporar o parte din modulele componente ale mC. Economia de

energie este esentiala in cazul alimentarii de la

baterie. Prin intrarea in starea de economie de energie, memoria RAM nu-si schimba

continutul si iesirile nu-si schimba valorile

logice. Sistemul de economie de energie ofera doua moduri de operare care difera prin nr

componentelor dezactivate. La mC Intel,

aceste moduri sunt numite :IDLE( inactiv) si POWER DOWN( cu tensiunescazuta).

Intrarea in unul din modurile de operare se

face prin comenzi software. mC Intel intra intr-unul din cele 2 moduri prin controlul unor

biti din registrul PCON. In ambele moduri de operare este inghetata functionarea CPU. In

modulIDLE, celelalte functii folosite raman

active.Starea CPU si a tuturor registrelor este pastrata cat timp mC se mentine IDLE.Pinii de

port pastreaza starea pe care au avut-o la

intrarea in acest mod. Din modul IDLE se poate iesi prin reset sau la sesizarea unei

intreruperi interne sau externe.

In modul POWER DOWN este blocat oscilatorul intern, ceea ce atrage dupa sine

blocarea tuturor functiilor interne. Continutul

memoriei si al registrelor interne nu este alterat iar liniile de I/O raman neschimbate.

Din aceasta stare se poate iesi doar cu reset. In

cazul in care revenirea se face la sesizarea unei intreruperi externe, activitatea interna este

reluata in aceleasi conditii in care a fost

abandonata.Ina cest mod, tensiunea de alimentare de +5V poate fi redusa.

Consumul de energie este minim atunci cand

sunt activate cele mai putine functii. Consumul minim de energie se obtine in

modul POWER DOWN. In modul IDLE

consumul este redus fata de regimul de operare normal dar este mai mare decat in

modul POWER DOWN, la fel cum in modul

IDLE consumul este cu atat mai redus cu cat sunt mai putine functii active la intrarea in

mod.

Page 4: microcontrolere

6. Familia de microcontrolere

MCS-51: memoria externă de date (inclusiv

comanda memoriei externe), setul de

instrucţiuni, programarea sistemelor cu

microcontrolerul I – 8051

Memoria de date externa are 64 bytes si poate

fi accesata doar prin intermediul instructiunii

MOV X care folosesteadresarea indirecta

Se pot folosi adrese de 16 biti si atunci va fi

folosit registrul DATA POINTER pentru a

genera adrese dar pot fi folosite si adrese pe 8

biti si atunci va fi folosit registrul R0 si R1

pentru a genera adresa.

Cel de-al doilea caz este util atunci cand

memorarea externa de date este putina si poate

fi gestionata ca pagini de 256 octeti.

In ciclul extern, pe liniile portului 0, va aparea

adresa in cadrul paginii de 256 octeti si o parte

din liniile portului 2 vor fi folosite pentru a

selecta pagina din memoria externa de date.

Beneficiul este dublu si anume accesul extern

este mai rapid si poate fi realizat mai rapid de

instructiuni pe 8 biti si raman libere linii ale

portului 2 care pot fi folosite in alte scopuri.

Memoria externa de date este accesata cu

magistrala de date si adrese prin intermediul

portului 0 si eventual portului 2 si validarea se

face cu semnalele /RD, /WR.

Comanda memoriei externe

Microcontrolerul activeaza semnale diferite in

functie de tipul memoriei externe implicate in

transfer, astfel daca se citeste din memoria

externa de program se activeaza PSEN, iar

daca este implicata memoria externa de date se

activeaza semnalul RD sau WR. Pe aceasta se

bazeaza caracterul microcontrolerului de a

putea comanda 64KB memorie de program si

64KB memorie de date, desi dispune de 16

linii de adrese.

In timpul transferurilor cu memoria externa,

liniile portului 2 vor constitui jumatatea

superioara a magistralei de adrese si date.

Pentru demultiplexarea ei este necesara

memorarea informatiei de adresa intr-un

registru extern la comanda semnalului ALE.

Setul de instrucţiuni

Setul de instrucţiuni al microcontrolerului

8051 este destul de regulat, în sensul că

majoritatea instrucţiunilor pot opera cu variabile din spaţii de adrese fizice sau logice

diferite. El a fost proiectat astfel încât să fie

eficient ca dimensiune a codului şi ca viteză de execuţie. Instrucţiunile sunt codate cu 1÷3

octeţi. Practic toate instrucţiunile se execută în

unul sau doi cicli maşină (1 sau 2 μsec la un tact de 12MHz); doar două instrucţiuni (MUL,

DIV) sunt executate în patru cicli.

Setul de instrucţiuni cuprinde 111 instrucţiuni: 49 de un octet, 45 de doi octeţi şi

17 de trei octeţi. Instrucţiunile pot fi grupate în

4 categorii:

Instrucţiuni pentru transferul

datelor MOV - transferă bit sau octet de la o locaţie sursă la o locaţie destinaţie

PUSH - incrementează SP şi transferă octet de

la sursă în stivă la adresa dată de SP POP - transferă un octet de la adresa dată de

SP la o destinaţie şi decrementează SP

XCH - schimbă conţinutul acumulatorului cu conţinutul variabilei indicate care poate fi

adresată direct sau indirect cu registru XCHD - schimbă semicuvântul inferior din

acumulator (biţii 3÷0) cu cel al unei locaţii de

memorie RAM internă adresată indirect cu un

registru specificat

MOVC- încarcă acumulatorul cu un octet de

cod sau cu o constantă din memoria de program

MOVX- transferă un octet între acumulator şi

memoria externă de date

MOV DPTR, #data - încarcă data imediată de

16 biţi în registrul dublu DPTR.

Instrucţiuni pentru operaţii

aritmetice INC - incrementează operandul cu 1

DEC - decrementează un operand cu 1 ADD - adună la acumulator operandul sursă

ADDC - adună la acumulator opeandul sursă

împreună cu transportul din CY DAA - corecţia zecimală a rezultatului

adunării operanzilor zecimali reprezentaţi în

cod BCD SUBB - scădere a unui operand din

acumulator împreună cu împrumutul

MUL - execută înmulţirea fără semn a operandului din acumulator cu operandul din

registrul B. Rezultatul pe 16 biţi este în B

(high byte) şi A (low byte) DIV - execută împărţirea fără semn a

conţinutului acumulatorului la conţinutul

registrului B. Rezultatul este în regiştrii A (câtul) şi B (restul).

Instrucţiuni pentru operaţii

logice CLR - resetează toţi biţii din A sau orice bit

adresabil direct SETB - setează orice bit adresabil direct

CPL - complementează conţinutul lui A, fără a

modifica PSW RL - rotaţie stânga a acumulatorului cu un

rang

RLC - rotaţie stânga a acumulatorului prin CY RR - rotaţie dreapta a acumulatorului

RRC - rotaţie dreapta a acumulatorului prin

CY SWAP - inversează semiocteţii în A

ANL - SI-logic pe octet

ORL - SAU-logic pe octet XRL - SAU EXCLUSIV-logic pe octet

Instrucţiuni de control - Apeluri şi salturi necondiţionate: ACALL - instrucţiune de apel a unei subrutine

atunci când adresa de salt este cuprinsă în 2K

ai paginii curente. Câmpul de adresă de 11 biţi ai instrucţiunii este concatenat cu cei mai

semnificativi 5 biţi din PC

LCALL - instrucţiune de apelare care poate specifica oricare adresă din spaţiul memoriei

de 64K

RET - transferă controlul la adres de revenire salvată în prealabil în stivă şi decrementează

apoi SP cu 2

AJMP - salt necondiţionat la o adresă din spaţiul 2K, analog cu ACALL

LJMP - salt necondiţionat la o adresă din

spatiul 64K, analog cu LCAL SJMP - salt necondiţionat scurt în cadrul a 256

octeţi

- Salturi condiţionate: JZ - salt dacă toţi biţii din A sunt 0

JNZ - salt dacă A cel puţin un bit din A este 1

JC - salt dacă CY este 1 JNC - salt dacă CY este 0

JB - salt dacă bitul specificat este 1

JNB - salt dacă bitul specificat este 0 JBC - salt dacă bitul adresat este 1 şi apoi

şterge acest bit

CJNE - decrementează operandul sursă şi pune rezultatul la operandul destinaţie; salt dacă

rezultatul nu este zero

RETI - la fel ca RET, dar activează şi întreruperile

7. Familia de microcontrolere de 8 biţi, PIC

(Microchip): caracteristici generale

(comune și suplimentare), arhitectura

internă, registrele (speciale), stiva,

inițializarea procesorului (RESET-ul).

Caracteristici generale (comune și

suplimentare) :

Mc pe 8 biti din familia PIC produsa de catre Microchip au o arhitectura Harvard

modificata, ci magistrala memoriei de date

separate de magistrala memoriei pentru program, avand largimea magistralei.

memoriei de program de 12, 14 sau 16 biti

In aceasta familie exista Mc cu un numar variat de pini si cu o memorie pt program intre

384B si 128Kb.Cele mai simple Mc din

familia PIC de 8 biti au un set de intructiuni restrans cu numai 33 de instructiuni.Permite ca

programele scrise pentru un anumit Mc sa

poata fi rulate pe modele cu o arhitectura similara, fara a fi necesare modificari ale

codului.

Toate Mc PIC pe 8 biti ofera caracteristici comune si anume:

Arhitectura RISC cu set redus de instructiuni

Moduri de adresare directa, indirecta si relativa.

Memorie RAM interna. Memorie EPROM sau flash.

Porturi de I/O digitale care suporta curenti

mari de I/O de max. 25mA. Circuite de reset.

Au timer watchdog, mod de economisire a

energiei si o interfata pt semnal de tact extern. Unele modele de Mc pe 8 biti ofera facilitate

suplimentare cum ar fi:

Canale de integrare analogice. Comparatoare analogice.

Circuite timer suplimentare.

Memorie EEPROM pt stocarea datelor. Intreruperi interne si externe.

Circuit intern de generare a semnalului de tact.

Iesiri PWM. Interfata serial USART.

Arhitectura internă

Ele folosesc o arhitectura Harvard cu spatii de memorie separate pentru coduri si pt date.

Setul de instructiuni este tipic RISC si contine

cca 35 instructiuni la versiunile simple si pana la cca 80 la versiunile performante.

Aceasta familie este destinata dezvoltarii unor

aplicatii ieftine. Desi familia de mC PIC pe 8 biti cuprinde o gama larga de modele, acestea

au caracteristici comune.

Registrele (speciale)

Reg mC pe 8 biti pot fi grupati in 2 categorii:

reg speciali SFR si reg de uz general GPR.

Reg speciali(SFR) reprezinta o colectie de reg utilizati de catre mC pt a controla pperifericele

si functiile interne ale acestuia.Nr de reg

speciali poate fi difeit de complexitatea mC.Reg speciali sunt:

Reg de optiuni-controleaza diferite functii

interne ale mC; este disponibil atat pt citire cat si pt scriere.

Reg asociati porturilor I/O-fiecare port are

asociat reg de date si reg de directive Reg timer-elor-in functie de model, un mC

PIC poate avea intre 1 si 3 timere

Reg de control al intreruperilor-pentru gestionarea surselor de intrerupere sunt fol 4

reg speciali cu rol in getsionarea intreruperilor

dispozitivelor periferice

Page 5: microcontrolere

Stiva

PIC 16F84 are o stiva de 13 biti cu 8nivele, adica un grup de 8 locatii de mem cu 13 biti

latime. Rolul sau de baza este de a pastra val

PC dupa un salt din programul principal la o

adresa a unui subprogram. Pt ca un program sa

stie cum sa se intoarca la punctul de unde a

pornit, trebuie sa inapoieze val PC din stva. Cand se muta dintr-un program intr-un

subprogram, PC e impins in stiva .Cand se

executa instructiuni ca RETURN, RETLW sau RET FIE ce au fost executate la sfarsitul unui

subprogram , PC a fost luat dintr-o stiva a.i.

programul sa poata continua de unde a fost oprit inainte de a fi interupt.Aceste operatii de

plasare intr-o stiva si de luare dintr-o stiva de

PC sunt numite PUSH si POP, conform cu instr. similare ale mC.

Inițializarea procesorului (RESET-ul)

RESET-ul este folosit pt a pune mC intr-o stare initiala. Pt a functiona correct, mC

trebuie resetat, adica toate registrele vor fi

puse intr-o stare de start.El nu este folosit numai cand pe mC nu se comporta cum vrem

noi, ci poate fi folosit si cand apare o

intrerupere in programul de executie. Pt a preveni ajungerea unui 0 logic la pinul 4

accidental , acesta trebuie sa fie conectat printr-un rezistor(5k-10ko) cu rolul pozitiv al

sursei de alimentare. Functia acestui rezistor

este de a mentine o anumita linie la starea 1 preventiv. Mc PIC16F84 poate fi initializat in

urmatoarele moduri:

Reset la alimentare Reset in timpul lucrului obisnuit prin aducerea

unui 0 logic la pinul 4 al mC

Reset in timpul regimului sleep Reset la depasirea timerului watchdog

Reset in timpul depasirii timerului watchdog

din timpul regimului sleep

8. Microcontrolere de 8 biţi, PIC

(Microchip): clasificarea după dimensiunea

magistralei de program, organizarea

memoriei, moduri de adresare a datelor,

setul de instrucţiuni. Clasificarea după

dimensiunea magistralei de program Dupa dimensiunea magistralei de program

putem diviza fam PIC pe 8 biti, in 3 categorii: a)mC cu lungimea cuvantului instr de 12 biti

(fam PIC 12) –au o arhitectura foarte simpla,

fiind preferate in aplicatii unde sunt necesare dimensiuni reduse si in aplicatii cu alimentare

de la baterie

b)mC cu lungimea cuvantului instr de 14 biti(fam PIC 14) –reprezinta majoritatea mC

PIC Microchip pe 8 biti. Cele mai multe mC

din aceasta categorie pot functiona la frecventa de tact de 20MHz, Setul d e instructiuni

contine 35 de instructiuni.

c)mC cu lungimea cuvantului instr de 16 biti(fam PIC 16) –reprezinta gama de varf a

mC PIC pe 8 biti.Cele mai multe mC din

aceasta gama au 33 de pini de I/O, 3 timere si pot opera la frecvente de tact de maxim

40MHz. Setul de instructiuni include cele 35

de instr intalnite la mC cu lungimea cuv instr de 14 biti, la care se adauga inca 23 de instr

specific. Toate aceste categorii de mC au un set comun de instr, cu cateva aditionale

disponibile pt mC cu lungimea cuv instr de 14

biti si cu un nr mult mai mare de instr aditionale la mC cu lungimea cuv instr de 16

biti. In toate aceste cazuri, instr ocupa un

singur cuvant in memoria unui program. Instr si datele sunt transferate pe magistrale

separate, fapt ce duce la o performanta sporita

a mC.

Organizarea memoriei

mCPIC 16F84 are 2 blocuri separate de

memorie, unul pt date si celalalt pt programe.Memoria EEPROM si reg de uz

general din memoria RAM constituie blocul

de date iar memoria flash constituie blocul de programe.

Memoria pt programe este de tip flash ceea ce

face posibil a programa un mC de mai multe ori inainte de a fi instalat intr-un montaj si

chiar dpa instalarea sa daca se intampla unele

schimbari in program sau in parametrii de process.Memoria este de 1024 locatii cu

latime de 14 biti, unde locatiile 0 si 4 sunt

rezervate pt RESET, respectiv pt vectorul de intrerupere.

Memoria de date este realizata din memoriile

EEPROM si RAM.Mem EEPROM consta in 4 locatii de 8 biti al caror continut nu este

pierdut in timpul opririi sursei de alimentare.

Ea este plasata intr-un loc special al mem de date si poate fi accesata prin registrii speciali:

-EEDATA->adr08H: reg care retine datele de

citi sau cele de scris -EEADR->adr 09H: contine o adresa a locatiei

mem EEPRO ce este accesata

-EECON1->adr88H: contine bitii de control -EECON2->adr89H: acest reg nu exista fizic,

el serveste la protejarea memoriei EEPROM

de scrieri accidentale Memoria EEPROM nu este direct adresabila

dar este accesata indirect prin reg. speciali

EEADR EEDATA. Pt ca memoria EEPROM este folosita current la memorarea unor

parametrii important, exista o procedura stricta

de scriere in mem. EEPROM cetrebue urmata pt a preveni scrierea accidental:un octet scris

sterge in mod automat locatia inainte de a scrie

data. Memoria RAM pt date ocupa un spatiu in harta memoriei de 68 de locatii. Locatiile

mem RAM sunt denumite register de uz general, deci putem spune ca registrele GPR

sunt folosite ca mem RAM. Ele pot fi accesate

indifferent de ce banc al memoriei este selectat la un moment dat.

Moduri de adresare a datelor Adresarea directa :se face cu o adresa de 9 biti.Aceasta adresa este obtinuta

prin corectarea celui de-al 7-lea bit al adresei

directe a unei instr cu 2 biti(RP1, RP0) din

registrul STATUS, reg care contine starea

aritmetica a unitatii aritmetice si logice, stare

reset si bitii pt selectarea bancului de memorie Adresarea indirecta: spre deosebire

de cea directa, adresarea indirecta nu ia o

adresa dintr-o instr , ci o creeaza cu ajutorul bitului 7 al reg STATUS si reg FSR.Locatia

adresata este accesata prin reg INDF care, de

fapt, tine o adresa indicata de un reg FSR. Acest tip de adresare nu are niciun avantaj fata

de adresarea directa , dar exista unele nevoi in

timpul programarii ce se pot rezolva mai simplu doar prin adresarea indirecta

Adresarea relativa: adresele, sau o

parte dintre acestea nu sunt folosite la selectia memoriei . In acest fel, o celula de memorie se

poate gasi la mai multe adrese diferite.La

adresarea relativa, reg referit in mod implicit este PC, deci o adr.instr curente e adunata la

continutul campului de adr., care este tratat ca

un nr in complement fata de 2 pt aceasta operatie, deci campul de adr este un

deplasament relativ la adr instr. Utilizarea adresarii relative reduce nr de biti de adresa

din instr deoarece majoritatea referintelor la

memorie sunt relative apropiate de instr. curenta.

Setul de instrucţiuni

mC PIC pe 8 biti au un set redus de instr, acesta fiind de numai 33 de instr la mC

cu lungimea cuvantului instr de 12 biti si de

35 de instr la cele cu lungimea cuv instr de 14 biti. La mC PIC cu lungimea cuv instr de 16

biti, la acest set de instr de baza se adauga inca

23 de instr specific, rezultand un set de 58 de instr. La mC PIC cu lungimea cuv instr de 12

si 14 biti vom gasi urmatoarele tipuri de instr:

Instr de transfer al datelor: aceste instr realizeaza transferul datelor intre acumulatorul

W si un registru f; acest reg poate fi orice

locatie de memorie, indiferent daca este un reg special sau un reg de uz general. Instr

aritmetice si logice: permit doar op aritmetice

de adunare si scadere. Fanioanele folosite sunt influentate de rezultatul acestor operatii. In

cazul operatiei de scadere, fanionul C este

inversat in cadrul operatiei, astfel C=1 daca este posibila operatia si este resetat daca

scadem un nr mai mare dintr-unul mai mic.

Aceste mC pot efectua urmatoarele operatii logice: AND, OR, XOR, CONF, RRF si RLF(

rotiri la dreapta si la stanga) . Operatia de

rotire utilizeaza fanionul C=> bitul care intra in reg este luat din C.

Operatii la nivel de bit

Instr de control al programului: din aceasta categorie fac parte operatiile de testare la nivel

de bit, instr de incrementare si decrementare

cu testarea valorii de 0 utilizate la incrementarea buclelor, instr de salt, instr de

lucru cu subrutinele, instr de revenire din

rutine, de tratare a intreruperii si instr speciala RETLW folosita pentru a extrage o const pe 8

biti aflata in memoria de program. Aceasta

instr realizeaza iesirea din subrutina cu punerea in acumulator a celor mai putin

semnificativi 8b ai cuv de memorie din

program

BTFSC f,b; BTFSS f,b; DECFSZ f,d; INCFSZ

f,d NOP // no operation

CLR WDT // sterge contorul pt timerul watchdog

SLEEP // pune mC in modul de economisire

a energiei

Page 6: microcontrolere

9.Caracteristicilegenerale

Aceste uC au la bazaunnucleu RISC cu o arhitectura Harvard.

Caracteristici:

Arhitectura RISC

32 de reg de lucru de 8 biti

Multiplicator hardware

Arhitectura Harvard a spatiului de mem Frecv de lucrupoate fi controlataprin soft de la

0 la 16 MHz

Au o gama de disp de I/O si de periferice incorporate

Au un timer programabil

Au surse de intreruperi INT si EXT Au 6 moduri de lucru pt economisirea energiei

Au timer watch-dog cu oscilator independent

Au un set unitar de instrumente soft ptdezvaplicatiilor

Arhitecturainternă (inclusiv UCP, UAL)

AVR folosesc o arhitectura RISC – permite executia celor mai multe instructiuni intr-un

singur ciclu de tact inbunatatirea

performantei(de 10 ori mai bun decat I8051)

UCP(unit centrala de prelucrare):

Functia principala a UCP e aceea de a asigura

executia corecta a progr. Pt aceasta nucleul e capabil sa acceseze memoriile, sa execute

calcule, sa controleze perifericele si sa prelucreze IN.

UAL(unit arithmetica logica)

Executa operatiile de prelucrare a datelor si lucreaza direct cu cele 32 de registre.

Operatiile pe care le executa UAL sunt

impartite in 3 categ: Aritmetice

Logice

Operatii pe bit

Registrele de uz general

AVR au un set de 32 de registre de uz general

de 8 biti notate R0÷R31 ce pot fi accesate intr-un singur ciclu de tact.

Fiecare registru are si o adresa in spatial mem

de date permitand o adresare uniforma. Majoritatea instr care fol fisierul de reg au

acces direct la toate registrele si marea lor

majoritate sunt instructiuni executabile intr-un singur ciclu de tact.

6 din cele 32(R26÷R31) pot fi folositi ca 3 ref

de 16 biti pt stocarea unor pointeri folositi la adr indirect a datelor.

Cele 3 reg folosite pt adresare indirecta sunt

notate cu X, Y, Z si structura lor este urmatoarea:

De la 0÷7 biti avem XL iar de la 8÷15 biti

avem XH. Idem YL, YH, ZL, ZH.

Stiva

AVR folosesc o stiva software organizata in

mem RAM de date. Ea e folosita in principal pt stocarea temporara

a datelor, variabilele, adreselor de revenire din

intreruperi sau la apelul subrutinelor. Accesarea stivei se efectueaza cu ajutorulreg

SP care e actualizat de procesor la fiecare

accesare a stivei. Dimensiunea stivei e limitata de dim mem

RAM instalata.

Deoarece procesorul nu seteaza automat la pornire adresa de inceput a stivei, acest lucru

trebuie efectuat de utilizator prin programare.

10. Microcontrolere de 8 biti AVR (ATMEL): organizarea memoriei, sistemul de întreruperi,

sistemul de I/O, modurile de lucru cu consum

redus de energie

ORGANIZAREA MEMORIEI

Specific arhitecturii Harvard, procesoarele

folosesc spatii de memorie si magistrale de acces

separate pentru coduri si pentru date.Ele au

memorie de program de tip flash

integrata.Memoria de program poate fi

programata in 2 moduri:serial si paralel

Memoria de date integrata este RAM pt stocarea variabilelor si EEPROM pt stocarea

constantelor.

ATMEGA 16 are 2 spatii de memorie

principala,pt date si pt programe, plus o memorie

volatila de tip EEPROM pt stocarea

datelor.Memoria pt programe este de tip flash

avand 16KB si este organizata pe 16 biti.Memoria

pt date de tip RAM si este organizata pe octeti avand capacitate intre 128 bytes si 4 kb.Memoria

de date de tip EEPROM are cap de 512B.Timpul

de acces pt o operatie de scriere pt mem de date

de tip EEPROM este de 2,5-4 ms.Cand se citeste

o data din aceasta memorie UCP este oprita timp

de 2 perioade de ceas inainte ca urmatoare

comanda sa fie executata.

SISTEMUL DE INTRERUPERI

Nucleul AUR foloseste mai multe tipuri de

intreruperi.Intreruperile sunt vectoriale,iar

vectorii de intrerupere si cel corespunzator

initializarii procesorului reprezinta adrese ale

unor locatii din memoria de program.

Intreruperile pot fi activate sau dezactivate

individual sau global Aproape toate dispozitivele periferice au fost

dotate cu capacitati de intrerupere

programul principal nu este nevoit sa verifice

starea lor

Secventa de actiuni la aparitia unei intreruperi

este:

Dispozitivul periferic emite o cerere care intrerupe procesorul, Executia instructiunii

curente e finalizata, Adresa urmatoarei

instructiuni din programul curent e memorat in

stiva, Este incarcata in PC adresa subrutinei de

tratare asociata, Procesorul executa subrutina de

tratare,Subrutina se incheie cu instructiunea

RETI(RETURN FROM INTRERUPT),

Procesorul reia executia programului intrerupt de la adresa memoriei in stiva.

SPATIU DE ADRESE DE INTRARE/IESIRE

PT ATMEGA 16

Toate dispozitivele de intrare si periferice de la

ATMEGA 16 au adrese plasate in spatele

registrilor de int/out.Cei 32 de registrii de lucru

sunt strict adresabili,iar valorile bitilor pot fi

verificate individual.

Porturile de INT/IES

ATMEGA 16 dispune de 32 linii de in/out

grupate in 4 porturi pe 8 biti:ABCD ele putand fi

setate individual ca intrare sau iesire.Operatiile se

fac prin intermediul registrilor alocati fiecarui

port:DDRx,PINx,PORTx unde x este unul din

porturile ABCD. Reg DDRx stabileste daca un pin este in sau

out

Reg PORTx se scrie pt a scrie o val in portul

coresp

Reg PINx se fol pt a citi val de pe liniile

portului

MODURILE DE LUCRU CU CONSUM

REDUS DE ENERGIE

uC are 6 moduri de functionare cu consum

redus de energie: IDLE MODE UCP este oprita dar interfetele

USART,TWI,ESPI,CAD,comparatorul

analogic,timerele si sistemul de inreruperi

continua sa functioneze.Cererea de intrerupere

readuce procesorul in stare de functionare.

ADC NOISE REDUCTION MODEUCP este

oprita insa continua sa functioneze

CAD,intreruperile externe,TWI,timerul2 si timerul watch-done

POWER-DOWN MODEoscilatorul extern e

blocat insa raman active intreruperile

externe,TWI si timerul watch done

POWER-SAVE MODEsimilar cu POWER-

DOWN cu diferenta ca timerul 2 continua sa

functioneze

STAND BY MODEeste identic cu POWER-DOWN cu deosebirea ca oscilatorul continua sa

functioneze

EXTENDED STAND BY MODEeste

disponibil cand se foloseste un oscilator cu clock

in rest fiind identic cu modul POWER-DOWN