Documente Academic
Documente Profesional
Documente Cultură
1. Scopul lucrarii
Scopul acestei lucrari introductive este de a prezenta cele doua microcontrolere
(microcontrolerul Intel 8051 si microcontrolerul Texas Instruments MSP430G2553) cu care
se va lucra in cadrul lucrarilor de laborator ulterioare, precum si modul de lucru cu mediile de
dezvoltare (Keil uVision si IAR Embedded Workben for MSP430) si simulare (Proteus ISIS
Professional) ce vor fi folosite.
2. Breviar teoretic
Microcontrolerele sunt microprocesoare cu o structur simpl i cu un limbaj de asamblare
cu un numr redus de instruciuni, fiind foarte utilizate n aplicaiile n care este nevoie de
executarea unor calcule i a unor algoritmi nu foarte complicai, oferind un cost de implementare
redus datorit preului care n cazul microcontrolerelor este mai mic dect cel al altor procesoare
digitale mai complexe, un exemplu fiind DSP-urile, mult mai complexe dar i mult mai scumpe.
Diversitatea i multitudinea de periferice incluse il fac apt pentru controlul diverselor aplicaii.
Practic, cu un astfel de circuit este posibil realizarea unui ntreg microsistem de calcul.
de alarma, etc.);
-
aspiratoare);
-
in industria aerospatiala;
traductoare inteligente);
-
in medicina.
Tip
Fara
Cu
ROM
RAM
Timere pe Tipul
chip
ROM
EPROM
intern
intern
16 biti
circuitului
8051
8031
---
4k
128 bytes
NMOS
80C51
80C51
87C51
4k
128 bytes
HMOS
8052
8032
8752
8k
256 bytes
NMOS
80C52
80C52
87C52
8k
256 bytes
CMOS
Microcontrolerul standard 8051 este realizat ntr-o capsul cu 40 pini (DIL) sau 44 pini
(PLCC). Pentru funcionare are nevoie de o singur surs de tensiune (+5V). Iniial a fost realizat
n tehnologie NMOS (consum 125 150 mA), iar ulterior a aprut i variante CMOS (consum
15 30 mA). Denumirea versiunii CMOS este 80C51.
Caracteristicile principale ale microcontrolerului 8051 sunt urmatoarele:
- CPU pe 8 bii
CPU (Central Processing Unit) este procesorul matematic al sistemului, el fiind inima
intregii functionari a microprocesorului.
OSC (Internal OSCillator) este generatorul de tact intern cu care este dotat
microcontrollerul. Acesta genereaza, cu ajutorul impulsurilor provenite de la un cristal de cuart
legat in exterior, semnalul de tact care asigura functionarea intregului sistem intern. De
asemenea, microcontrolerul poate functiona si dupa un semnal de ceas extern. Frecventa
cristalului de cuart ce trebuie conectat difera in functie de performanta microcontrolerului si este
specificata de producator, dar o valoare tipica pentru aceasta este de 12 MHz. Valorile capacitatii
celor doi condesatori este de asemenea data de catre producator in documentatia
microcontrolerului.
Porturile paralele formeaza una din caile de comunicare cu exteriorul. Microcontrolerul
este dotat cu 4 porturi de intrare/iesire, fiecare dintre acestea fiind de 8 biti. In total, avem 32 de
linii de intrare/iesire. Porturile sunt notate cu P0, P1, P2 si P3. Liniile acestora sunt notate P0.1P0.7, etc Pe langa functiile de intrare/iesire porturile mai au si unele intrebuintari alternative.
Astfel, iesirile din P0 si P2 precum si intrarile din P0 sunt utilizate la accesarea memoriei
externe.
Portul serial este de tip UART si asigura prin liniile RXD si TXD comunicarea de tip
serial. Funcionarea portului serial poate sa aiba loc n 4 moduri distincte, selectabile prin
program, la care variaza viteza de transmisie, numita rata de baud. Astfel, avem:
-
modul 2 rata de baud fixa 1/32 sau 1/64 din frecventa oscilatorului.
TIMER 0 si TIMER1. Numaratoarele pot fi utilizate in doua moduri. Primul mod, numit
timer, face ca decrementarea valorii sa fie executata in functie de ceasul intern al procesorului.
Astfel, cunoscand durata unei perioade de ceas, se poate masura o perioada de timp.
Al doilea mod, numit counter, face ca decrementarea sa aiba loc la schimbarea starii de pe un pin
extern al microcontrolerului.
Blocul de intreruperi. Microcontrolerul 8051 este dotat cu 5 surse principale de
intrerupere. Aceste intreruperi, odata activate, opresc executia firului principal al programului si
determina saltul la o adresa specifica din memorie unde se poate scrie o rutina speciala care sa se
execute in cazul declansarii intreruperii.
Configuratia pinilor circuitului 8051 este urmatoarea:
Circuitul standard realizat in capsula DIL prezinta 40 pini. Dintre acestia, doi pini sunt
rezervati tensiunii de alimentare (+5V si masa).
Controlerul contine 4 porturi paralele de cate 8 biti fiecare, ce pot fi folosite pentru
generarea si, respectiv, receptarea semnalelor digitale (notate P0, P1, P2, P3). Functie de modul
de lucru in care lucreaza, aceste porturi se pot configura si pot avea mai multe situatii de lucru.
Astfel, daca se lucreaz cu memorie ROM externa, 2 dintre aceste porturi se constituie in linii ce
formeaza magistralele de adrese si de date. Portul P0 genereaza, multiplexat in timp, partea cea
mai putin semnificativa a informatiei de adresa (A0-A7) si, respectiv, gestioneaza magistrala de
date (D0-D7). Pentru formarea magistralei de adrese va fi nevoie sa se plaseze in exteriorul
MCU-ului un circuit de tip latch (de exemplu 74HCT573), cu scopul de a memora informatia de
adresa. Actionarea acestui circuit se face utilizand semnalul ALE. Portul P2, in aceleasi situatii,
genereaza octetul cel mai semnificativ al informatiei de adrese (A8-A15). Cele 16 linii de adrese
astfel formate permit adresarea a 64 Ko memorie. De fapt, se pot adresa 64Ko memorie de
programe (ce contine instructiuni) si, respectiv, 64Ko memorie de date, deci in total 128 Ko.
Notatiile liniilor porturilor sunt Pi.j, cu i = 0, .., 3, iar j = 0, ..., 7.
Atunci cand formeaza magistrala de adrese si date, liniile portului P0 mai sunt notate
AD0-AD7, iar liniile lui P2 au denumirea A8-A15. Cand nu se lucreaza cu magistralele externe,
cele 2 porturi P0 si P2 se pot folosi ca porturi de tip paralel. In aceasta situatie se atrage atentia
asupra faptului ca liniile portului P0 sunt de tipul open drain, fiind necesara plasarea in exterior
de rezistente catre sursa de alimentare, in vederea asigurarii polarizarii.
P1 este in orice situatie de lucru a microcontrolerului, port de tip paralel, bitii acestuia
fiind configurabili atat ca iesiri, cat si ca intrari digitale. Liniile portului sunt notate P1.0, ...,
P1.7. Ultimul port (P3) are un caracter multifunctional, functie de modul de lucru al
microcontrolerului. Pe de o parte, prin liniile acestui port, circuitele I/O existente in MCU (cele 2
canale timer, canalul de comunicatie serial, logica pentru gestionarea intreruperilor) sunt
accesibile utilizatorului. Daca nu se lucreaza cu circuitele I/O locale, acest port poate sa lucreze
ca un port de tip paralel, liniile asigurand generarea si preluarea de semnale digitale.
Corespondenta liniilor portului 3 cu liniile circuitelor I/O interne este urmatoarea:
- P30 - RXD -intrare pentru recepia serial a datelor la unitatea serial;
- P31 -TXD - ieire pentru transmisia serial a datelor de la unitatea serial;
- P32 - INT0 - intrare pe care se poate aplica o cerere de ntrerupere extern;
- P33 - INT1 - intrare pe care se poate aplica o cerere de ntrerupere extern;
- P34 - T0 - intrare pe care se pot aplica impulsuri externe cu numrare de ctre timerul 0;
- P35 - T1 - intrare pe care se pot aplica impulsuri externe cu numrare de ctre timerul 1;
- P36 - WR - semnal pentru scriere la lucrul cu memoria de date extern;
- P37 - RD - semnal pentru citire la lucrul cu memoria de date extern;
EA - external address. Cand se lucreaza cu magistrale externe, acest pin se conecteaza la ,,0logic. Cand se foloseste memoria ROM interna, pinul se leaga la ,,1- logic. In aceasta situatie, la
adresarea ROM-ul intern de 4K, controlerul genereaza adrese din gama 0000h-0FFFh si nu se
emit semnale pe magistralele externe (P0 si P2 putand fi folosite ca porturi paralele). Exista
posibilitatea folosirii in completare, a unei memorii ROM externe, dar care va fi selectata si
adresata incepand cu adresa 1000h (P0 si P2 incetand sa mai poata fi folosite ca porturi paralele).
ALE - address latch enable. Semnalul este folosit pentru demultiplexarea externa a informatiilor
emise pe portul P0. Astfel, semnalul este folosit in vederea memorarii in latch-ul extern
74HCT573, a partii mai putin semnificative a adresei A0-A7 emisa pe liniile acestuia. Semnalul
este activ ,,1logic.
PSEL - program select. Este semnalul prin care se face activarea memoriei de programe atunci
cand controlerul realizeaza extragerea codurilor instructiunilor. Daca se lucreaz cu ROM-ul
intern, acest semnal nu se genereaza. Pinul este folosit si in situatiile de programare ale ROMului
intern. In acest caz, pinul este intrare avand notati PROG (Programming).
RESET - Semnal pentru initializarea controlerului, activ 0- logic.
XTAL1; XTAL2 - Pini pe care se conecteaza in exterior cristalul de cuart in ritmul caruia
lucreaza oscilatorul local. Se poate lucra si cu oscilator extern, semnalul respectiv aplicandu-se
pe XTAL1. In acest caz, XTAL2 amplifica semnalul in vederea folosirii de catre alte circuite din
respectivul microsistem care au nevoie de un astfel de semnal. Varianta standard de C 8051
lucreaza cu un cristale de cuart de 12 MHz. Au aparut variante la 16 Mhz, ajungandu-se chiar de
30 Mhz.
n limbaj C++. Deorece fiecare compilator a evoluat independent, au aprut ntre cele dou
versiuni o serie de incompatibiliti.
Tipuri de date C
Limbajul C cuprinde tipuri de date ntregi, de diferite dimensiuni, cu sau fr semn,
numere n virgul mobil, enumerri, structuri de date i uniuni.
Exemplu de tipuri de date:
-integer: pentru memorarea valori ntregi (n MikroC este nevoie de date de acest tip, la
apelarea librriilor grafice);
-double: date reale, pentru prelucrarea matematic a tensiunilor msurate, la
implemetarea diverilor algoritmi.
-short int: folosit la diverse contoare etc;
-char: caracterele sunt necesare n cadrul proiectului la afiarea rezultatului msurrii.
Un tablou reprezint o colecie de date de acela tip. Tablourile unidimensionale sunt
denumite i vectori. Vectorii sunt folosii n limbajul C. Acetia se declar astfel:
Tipul_datelor nume_vector[Numarul_total_de_elemente];
Tablourile bidimensionale, sau matricile reprezint o colecie de date de acela tip, iar
pentru declararea acestora, se specific numrul de elemente ale fiecrei dimensiuni, incluznd
fiecare dintre aceste numere ntre paranteze drepte:
Tipul_datelor nume_matrice [nr_linii][nr_coloane];
n limbajul de programare C, se utilizeaz cel puin o funcie i aceasta este main, funcie
a crei prezen este obligatorie. O funcie, poate fi apelat fie din programul principal, fie dintr-
o alt funcie. n limbajul C, o funcie nu poate fi definit n interiorul altei funcii. Funciile, n
limbajul C, au sintaxa:
Tipul_rezultatului nume_funcie(lista_de_parametrii)
{declaraii interne
Instruciuni
}
Funciile sunt folosite n cadrul programului principal. Un program C, ce const doar
dintr-o definiie de funcie (alta dect main), nu poate fi rulat. n general, orice program de test
trebuie :
- s iniializeze parametrii de intrare
- s apeleze funcia
- s afieze rezultatul
Un apel de funcie const din numele funciei, urmat de parametrii actuali ai funciei.
Dac funcia returneaz o valoare, aceasta trebuie atribuit unei variabile.
n programarea interfeelor electronice este adesea necesar s prelucrm datele la nivel de
bit. Limbajul C este un limbaj adecvat pentru dezvoltarea de sisteme electronice i datorit
faptului ca are un set bogat de operatori de prelucrare la nivel de bit i anume:
&
(operatorul I)
(operatorul SAU)
Toi aceti operatori, cu excepia operatorului ~ (negare), sunt operatori binari, adic au
doi operanzi.
Ali operatori folosii sunt cei matematici, nelipsii din fiecare algoritm implementat.
Mai multe despre modul cum se realizeaza un circuit electronic in Proteus, cat si un exemplu
concret veti vedea in desfasurarea lucrarii.
Ciclul de dezvoltare este similar oricarei alte aplicatii software si presupune etapele:
-
corectarea erorilor;
Mediul uVision2 permite crearea fisierelor sursa si organizarea lor ntr-un proiect care defineste
aplicatia tinta. El permite automatizarea asamblarii/compilarii urmata de link editare (editarea de
legaturi intre modulele obiect) si locatarea codului n memoria program. Corectarea interactiva a
erorilor, cu setarea diverselor optiuni sunt alte facilitati oferite.