Sunteți pe pagina 1din 7

Alegerea Microcontroller-ului

Caracteristici generale. Ce este un microcontroller?


La modul general un microcontroller este o structura electronica destinata controlului unui proces,sau mai general ,unei interactiuni caracteristice cu mediul exterior,fara sa fie necesara interventia omului. Primele contollere au fost realizate in tehnologii pur analogice,folosind componete electronice discrete si/sau componente electromecanice. Cele care fac apel la tehnica numerica modern au fost realizate iniial pe baza logicii cablate (cu circuite integrate numerice standard SSI i MSI ) i a unei electronici analogice uneori complexe, motiv pentru care "strluceau" prin dimensiuni mari, consum energetic pe msur i, nu de puine ori, o fiabilitate care lsa de dorit. Apariia i utilizarea microprocesoarelor de uz general a dus la o reducere consistenta a costurilor, dimensiunilor, consumului i o mbuntire a fiabilitii. Exist i la ora actuala o serie de astfel de controlere de calitate, realizate n jurul unor microprocesoare de uz general cum ar fi Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc. O definiie, cu un sens foarte larg de cuprindere, ar fi aceea c un microcontroler este un microcircuit care incorporeaz o unitate central (CPU) i o memorie mpreun cu resurse care-i permit interaciunea cu mediul exterior. Resursele integrate la nivelul microcircuitului ar trebui s includ, cel puin, urmtoarele componente: a. o unitate central (CPU), cu un oscilator intern pentru ceasul de sistem b. o memorie local tip ROM/PROM/EPROM/FLASH i eventual una de tip RAM c. un sistem de ntreruperi d. I/O - intrri/ieiri numerice (de tip port paralel) e. un port serial de tip asincron i/sau sincron, programabil f. un sistem de timere-temporizatoare/numrtoare programabile Este posibil ca la acestea s fie adugate, la un pre de cost avantajos, caracteristici specifice sarcinii de control care trebuie ndeplinite: g. un sistem de conversie analog numeric(una sau mai multe intrari analogice) h. un sistem de conversie numeric analogic i/sau ieiri PWM (cu modulare n durat) i. un comparator analogic j. o memorie de date nevolatil de tip EEPROM k. faciliti suplimentare pentru sistemul de temporizare/numrare (captare i comparare) l. un ceas de gard (timer de tip watchdog) m. faciliti pentru optimizarea consumului propriu Un microcontroler tipic mai are, la nivelul unitii centrale, faciliti de prelucrare a informaiei la nivel de bit, de acces direct i uor la intrri/ieiri i un mecanism de prelucrare a ntreruperilor rapid i eficient. Printre firmele productoare de microcontroloare amintim:

- ZILOG - cu familia Z-8; - INTEL - cu familia 8051 (8 bii); - INTEL - cu familia 80196 (16 bii); - MOTOROLA - cu familia 68HC11, mai nou 68HC16; - MICROCHIP - cu familiile PIC 15CXX, PIC16CXX, PIC17CXX; - TEXAS INSTRUMENTS - cu familia TMS370. - NEC - cu familia 70K

FAMILII DE MICROCONTROLERE REPREZENTATIVE


n prezentarea care urmeaz i care nu se dorete exhaustiv, accentul este pus pe familiile mai cunoscute, de 8 bii i 16bii si cateva modele pe care le vom studia pentru aplicatia noastra. 8048 (Intel MCS-48 - www.intel.com ) "Bunicul" microcontrolerelor pe 8 bii, mai este nc folosit! Unele din caracteristicile sale arhitecturale se regsesc la urmtoarea generaie (MCS-51, 8051). Familia de microcontrolere 80C51 (Intel MCS-51 i muli alii: Atmel, Philips- www.semiconductor.philips.com, Infineon, Atmel, DallasMaxim, Cygnal, etc. A doua generaie de microcontrolere de 8 bii a firmei Intel care, dei aprut acum 20 de ani, nc ocup un segment semnificativ de pia. Cu o arhitectur destul de ciudat, este suficient de puternic i uor de programat. Arhitectura sa are spaii de memorie separate pentru program i date. Poate adresa 64KBytes memorie de program, din care primii 4(8..32)KBytes locali (ROM). Poate adresa 64KBytes memorie de date extern, adresabil doar indirect. Are 128 (256) octei de RAM local, plus un numr de registre speciale pentru lucrul cu periferia local. Are faciliti de prelucrare la nivel de bit (un procesor boolean, adresare pe bit). Intel a dezvoltat si un super 8051 numit generic 80151. Actualmente exist zeci de variante produse de diveri fabricani (Philips, Infineon, Atmel, Dallas, Temic, etc.) precum i cantiti impresionante de soft comercial sau din categoria freeware/shareware. Au aprut i dezvoltri ale acestei familii n sensul trecerii la o arhitectur similar (n mare), dar pe organizat pe 16 bii, cu performane mbuntite ca vitez de prelucrare: familia XA51 eXtended Arhitecture de la Philips i familia 80C251 (Intel). Din pcate aceste noi variante nu s-au bucurat nici pe departe de succesul btrnului 8051. . Principalele caracteristici ale familiei MCS51 sunt prezentate n tabelul urmtor: Features RAM(bytes) ROM Timers Serial port I/O pins Interrupt sources 8051 (80C51) 128 4K 2 1 32 5 8052 256 8K 3 1 32 8 8031 128 0K 2 1 32 6

Microcontrolerul standard 8051 este realizat ntr-o capsul cu 40 pini sau 44 pini. 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. Familia 8051 cuprinde diverse variante ale circuitului standard: - circuitul 8051 conine 4Ko memorie PROM (one time programming) i 128 octei RAM;

- circuitul 8031 conine 128 octei RAM i nu are memorie ROM (ROMless); - circuitul 8751 conine 4 Ko memorie EPROM i 128 octei RAM; - circuitul 8052 conine 8 Ko PROM i 256 octei RAM; - circuitul 8032 conine 256 octei RAM i nu are memorie ROM; - circuitul 8752 conine 8 Ko EPROM i 256 octei RAM; - circuitul 8754 conine 16 Ko EPROM i 256 octei RAM; - circuitul 8758 conine 32 Ko EPROM i 256 octei RAM. Microcontrolerul 8051 are n structura sa: unitate aritmetic i logic de 8 bii ce poate execut operaii de adunare, scdere, nmulire, mprire, incrementare, I, SAU, SAU Exclusiv, complementare i rotire, memorie de program de tip ROM 4k octei memorie de date RAM 128 octei 4 porturi paralele de intrare/ieire P0-P3 de 8 bii un port serial duplex dou circuite numrtoare/temporizatoare N/T0, N/T1 de cte 16 bii 5 surse de ntrerupere cu dou nivele de prioriti generator de tact 1,2-12 MHz Deasemenea microcontrolerul are posibilitatea de adresare a unei memorii externe de program i a unei memorii externe de date cu capacitate maxim de 64k octei. Exist i posibilitatea suprapunerii celor dou zone de memorie cu micorarea spaiului total de adresare la 64 Ko. Microcontrolerele care au memorie ROM intern pot s inhibe acest spaiu i s utilizeze numai memorie ROM extern. Exist i posibilitatea lucrului simultan cu memorie ROM intern i memorie ROM extern. Memoria de program poate fi doar citit. La 8051 primii 4k octei de program sunt n chip. Restul se afl n exterior, iar pentru a citi aceast memorie de program extern se folosete semnalul PSEN (Program Store Enable). Memoria de date ocup un spaiu separat fa de memoria program. La 8051 exist 128 octei RAM n chip. Memoria de date extern poate fi accesat prin generarea de ctre unitatea central a semnalelor de citire RD sau scriere WR. Memoria de program i cea de date (extern) pot fi combinate dac dorim prin folosirea semnalelor RD si PSEN pentru a genera semnal de citire pentru o memorie comun n care s avem att memorie program ct i memorie de date. Schema bloc a microcontroller-ului:

Am decis sa aleg uC 8051 deoarece :

1.senzorul de temparatura masoara temeparturi intre 0-50 C 2.am nevoie de o tensiune intre 0-5V si am v\nevoie de doar 8 biti. 3.are 4 proturi paralele de I/O si anume P0,P1,P2 so P3. 4.8051 contine 4 Ko memorie PROM.

Conectarea ADC-ului

Pinul A,B i C este folosit pentru selectarea adresei de intrare(+ activarea ALE- Address Latch Enable):

SC - start conversion (WR - 8051) EOC - end-of-conversion (High cnd a terminat conversia) OE - output enable (READ) Dout = Vin / step size

Codul:
#include<reg51.h> sbit ale=P0^6; sbit oe=P0^7; sbit sc=P0^1; sbit eoc=P0^0 sbit clk=P0^2 sbit ADD_A=P0^5; sbit ADD_B=P0^4;

sbit ADD_C=P0^3; sfr input_port=0x90; sfr output_port=0xA0; void timer0() interrupt 1 { clk=~clk; } void delay(unsigned int count) { int i,j; for(i=0;i<count;i++) for(j=0;j<500;j++); } void main() { input_port = 0xff; eoc=1; ale=0; oe=0; sc=0; TMOD = 0x02; TH0 = 0xFC; TL0 = 0x67; IE = 0x82; TR0 = 1; while(1) { ADD_C=0; ADD_B=0; ADD_A=1; delay(2); sc=1; delay(1); ale=0; delay(1); sc=0; while(eoc==1); while(eoc==0); oe=1; output_port=input_port; delay(2); oe=0; } }

- circuitul amplific diferena tensiunilor i rejecteaz semnalele de mod comun - n cazurile parctice se pune R1=R3 i R2=R4

S-ar putea să vă placă și