Вы находитесь на странице: 1из 16

Facultatea de Electronic, Telecomunicaii

i Tehnologia Informaiei

CRISTE AURELIAN GEORGE


3. MICROCONTROLER
3.1 Generalitati
Un microcontroler este un computer ntr-un singur chip; el conine CPU (Central
Processing Unit) i un numr de periferice. Un microprocesor conine doar CPU,
toate perifericile sunt externe. n literatura legat de microprocesoare, adesea
ntlnim termenul embedded system. Microcontrolerele sunt utilizate pe scar
larg n aa-numitele produse embedded. Aceste produse sunt proiectate pentru
a executa un singur task sau proces i numai unul.
Una din cele mai critice nevoi n cazul unui produs embedded se refer la
reducerea consumului de putere (multe produse sunt alimentate de la baterii) i
spaiu, de aici apariia unor noi metode de optimizare a structurii
microprocesoarelor n vederea unui consum redus (reducerea tensiunii de
alimentare), precum i integrarea unui numr tot mai mare de periferice.
3.2Clasificarea microcontrolerol

n funcie de numrul de bii microcontrolerele se clasific n microcontrolere


pe 4, 8, 16 i 32 de bii. Cele mai utilizate sunt cele pe 8 bii.
La rndul lor microcontrolerele pe 8 bii variaz de la versiuni foarte mici (n
capsul cu doar 8 pini) pn la versiuni foarte mari (peste 200pini).
O alt clasificare mparte microcontrolerele n dou categorii: cu bus extern
i fr bus extern. Busul extern ofer posibilitatea conectrii unui numr
mare de dispozitive externe, n schimb preul este mai mare.
3.4 Cum alegem un microcontroler?

Trebuie sa tine cont de :


Viteza
Putere
Numar de pini
Capsula
3.5 Familii de microcontrolere
a)AVR
Noua familie de la Atmel cu o structur RISC promite o vitez mare, fiecare instruciune putnd fi executat
ntr-o perioad de ceas. Ca i celelalte microcontrolere ale firmei Atmel i cele din famila AVR se bazeaz pe
memorie Flash. De asemenea, Atmel pretinde c aceste procesoare au fost dezvoltate pe baza unei strnse
colaborri cu productorii de compilatoare C astfel c arhitectura este optimizat pentru dezvoltarea
programelor n C.
Avantaje:
Sunt bazate pe memorie Flash;
Vitez foarte mare (>1MIPS);
Spaiu ocupat de registre mare;
Procesarea datelor registru registru (non-acumulator);
Trei regitrii pointer pentru memoria RAM cu incerementare decrementare;
Dezavantaje:
Redundan n setul de instruciuni;
nstruciuni nu foarte clare; greu de nvat;
Limitare n manipularea biilor (instruciuni la nivel de bit);
Nu au circuit brown-out (detectarea nivelului tensiunii de alimentare);
Asamblorul de la Atmel (gratis) destul de slab.
b)PIC-urile
Familia de microconrolere RISC dezvoltat de Microchip intr destul de agresiv pe pia
datorit preului mic, set simplu de instruciuni, hardware robust (ex: detector brown-out) i
suport din partea firmei (software gratis) foarte bun.
Avantaje (n comparaie cu AVR-competitor direct):
Prezena circuitului brown-out;
Varietate mare de periferice;
Compilatoare i asambloare bune la preuri mici sau gratuite;
Scule de dezvoltare la preuri mici;
Dezavantaje :
Mai lente dect AVR-urile la aceeai frecven de ceas;
Set de instruciuni mai slab;
Nu au memorie flash;
Bazate pe acumulator;
c)8051 (Intel MCS51): este membru de baz al familiei.
Caracteristici:
Unitate central de procesare de 8 bii optimizat pentru aplicaii de control;
Procesor boolean inclus, cu capabiliti extinse pentru prelucrari logice pe bit;
32 linii intrare/ ieire (I/O) bidirecionale cu posibiliti de adresare individual;
128 octei RAM intern;
2 timere/numrtoare pe 16 bii;
posibilitatea de lucru full-duplex prin interfa serial UART;
5 surse de ntrerupere cu dou nivele de prioriti;
generator de tact intern;
4 Ko de ROM intern;
posibilitate de adresare 64 Ko memorie program;
posibilitate de adresare 64 Ko memorie date;
set de 111 instruciuni (dintre care 64 de un singur ciclu main), ncluznd i instruciuni de inmulire
i mprire;
d)8052: este versiunea mbuntit a lui 8051. Este realizat n tehnologie NMOS i este
compatibil cu 8051. mbuntirile sunt:

256 octei RAM intern;


3 timere pe 16 bii;
8 Ko de memorie ROM.
Comparatie intre diferite tipuri de Microcontrollere

Microcontroller Firma Pret [RON] Operating Tip de


Supply capsula
Voltage
AT89C51RD2 ATMEL 13.00 2.7 V to 5.5 V SMD
ATMEGA128 ATMEL 28.00 2.7 V to 5.5 V SMD
PIC16C54XT MICROCHIP 22.00 2 V to 6.5 V Through Hole
PIC18F45K22 MICROCHIP 20.00 2.3 V to 5 V Through Hole
SDA2083A01 SIEMENS 100.00 2 V to 6 v Through Hole
4
Tipul de microcontroller pe care l-am ales este AT89C51RD2 de la ATMEL deoarece este
usor de programat,are 44 de pini si face parte din familia 8051.
LCD

Afiajul cu cristale lichide (eng. Liquid Crystal Display, prescurtat LCD) este
un dispozitiv de afiare pentru litere, cifre, grafic i imagini, fiind constituit dintr-
o matrice de celule lichide care devin opace sau i schimb culoarea sub influen a
unui curent sau cmp electric. Din p.d.v. fizic fenomenul se explic prin
proprietatea cristalelor lichide de a influena direc ia de polarizare a luminii atunci
cnd ele sunt puse sub o anumit tensiune electric. Afiajele cu cristale nu produc
ele nsele lumina , i au un consum de energie foarte mic. Un afiaj LCD se
prezint sub forma unui ecran afior (display) care este comandat electronic
printr-un decodificator de caractere numerice i alfabetice. Este folosit frecvent n
construcia ceasurilor digitale (ceasuri care au n locul acelor aratatoare un afior
de tip LCD), la afirile de date la maini CNC, maini de uz casnic, inscrip ii i
semnalizri electronice.
LCD Display Producator Pret Tensiune Nr de pini Display
Format
DEM16217SYH-L DISPLAY 55.00 2.5 V to 5 V 16 16 x 2
Elektronik Caractere
GmbH
RAYSTAR 26.54 4.5 V to 5.5 V 16 16 x 2
RC1602A-GHW-CSX OPTRONICS Caractere

Hitachi 25.30 5V 14 16 x 2
LM016 Semiconductor Caractere
Am ales LM016 de la Hitachi Semiconductor 16x2,alimentare +5V
Am conectat LCD-ul la Microcontroller si am programat utilizand un cod in limbajul de programare C.
#include<reg51.h>
void delay_ms(unsigned int k)
{ unsigned int i,j;
for( i=0;i<=k;i++)
for(j=0;j<=110;j++);
}
void lcd_disp(char *str)
{ unsigned int j,k;
unsigned int sd[4] = {0x38,0x0E,0x01,0x80};
for(k=0;sd[k]!=0;k++)
{ P3=0x02;
P2=sd[k];
delay_ms(1);
P3=0x00;
delay_ms(100);
}
for(j=0;str[j]!=0;j++)
{ P3=0x03;
P2=str[j];
delay_ms(1);
P3=0x01;}
delay_ms(2);}
void main(void)
{ P2=0X00;
P3=0X00;
while(1)
{lcd_disp("Made by George" );
}}

Вам также может понравиться