megawin8051ic_elektronika_mikrokontroleri_www.automatika.rs.jpg
megawin8051ic_elektronika_mikrokontroleri_www.automatika.rs.jpg  Mikrokontroler je jedno od najvećih tehničkih dostignuća koje je obeležilo dvadeseti vek. Sa napredkom tehnologije rastao je stepen integracije integrisanih kola, što je dovelo do pojave prvih mikroprocesora i mikrokontrolera. Prvenstveno zbog svoje cene , mikrokontroleri nalaze sve veću primenu u svim oblastima u izradi softverski kontrolisanih uređaja i sistema.
 
 

  Druga velika prednost mikrokontrolera, zbog koje su danas neizbežni, jeste činjenica da se mogu programirati u višim programskim jezicima tipa C, Paskal, Basic. Ovo omogućava njihovo programiranje pa cak i bez znanja asemblerskog jezika. To povećava broj ljudi koji ih mogu programirati, pa tako postaju pristupacniji ljudima koji se elektronikom bave iz hobija.

  Mikrokontroler je mali računar, realizovan u obliku integrisanog kola koji objedinjuje sve potrebne komponente, kako bi mogao samostalno da funkcioniše. Tu spadaju integrisani mikroprocesor, memorija, digitalni i analogni ulazi/izlazi, tajmeri, brojači, oscilatori i drugi sklopovi (u zavisnosti od vrste i namene mikrokontrolera) koji su ranije bili svaki u svom integrisanom čipu. Mikrokontroler se programira da normalno radi u beskonačnoj petlji i za to vreme očitava ulaze i podešava izlaze u zavisnosti od programa koji mu je zadat.

  Glavna razlika izmedju mikroprocesora i mikrokontrolera je da su mikrokontroleri optimizovani u pravcu integracije kola, upravljanja procesa u realnom vremenu, male cene i niske potrošnje energije, dok je kod mikroprocesora akcenat stavljen na brzinu i performanse. Znači mikrokontroleri su namenski uređaji koji mogu obavljati određene funkcije u granica koje određuju sami resursi mikrokontrolera, dok se mikroprocesori koriste u opsluživanju spoljnih jedinica.

Istorijat razvoja mikrokontrolera
  Prvi mikroprocesor je proizveden 1971. godine. Bio je to 4-bitni Intel 4004. Problem je bio u tome što je za njega bilo potrebno napraviti interfejs koji će ga opsluživati. Zbog velikih troškova pri konstruisanju perifernih jedinica, nije našao masovnu primenu.
Prvi računarski sistem na čipu, koji je optimizovan za upravljanje procesima bio je mikrokontroler Intel 8048, proizveden 1975. godine. Imao je na sebi RAM i ROM memoriju. Ugrađen je u više od milion PC tastatura i drugih numeričkih aplikacija. U ovo vreme svaki mikrokontroler je imao dve varijante: jednu sa programabilnom EEPROM memorijom koja je bila skuplja, i drugu sa PROM memorijom koja je imala mogućnost jednog upisivanja. 1993. godine se pojavljuju prvi mikrokontroleri sa EPROM memorijom koja je imala mogućnost jednostavnog brisanja i ponovnog pisanja. Iste godine Atmel je izbacio prvi mikrokontroler sa Flash memorijom koja je vrlo jednostavna za korišćenje i koja i danas ima najmasovniju upotrebu.

Proizvođači
   Danas imamo mnogo proizvođača mikrokontrolera koji godišnje proizvedu nekoliko milijardi mikrokontrolera. Najčešće upotrbljavane mikrokontrolere raznih proizvođača možete preuzeti sa ovog linka.
 
 
MIKROKONTROLER INTEL 8051

Arhitektura

   U familiji INTEL-ovih mikrokontrolera izvedenih u vidu jednog čipa mikrokontroler, INTEL 8051 je sintetizovan namenski da služi kao procesor u sistemima digitalnog upravljanja. Osnovna varijanta čipa INTEL 8051 ima strukturu prikazanu na sl.1. Unutar čipa se nalaze centralna procesorska jedinica (CPU), ROM memorija, RAM memorija, tajmeri, brojači, paralelni i serijski ulazi/izlazi. Sem osnovne verzije, na tržištu se može naći veliki broj varijanti ovog mikrokontrolera, koji se od osnovne verzije razlikuju u broju i vrsti periferijskih komponenti, veličini i tipu ugrađene memorije (RAM i ROM), kao i po mehaničkoj izvedbi (tip kućišta i broj nožica). Ovo uputstvo obuhvata osnovnu varijantu mikrokontrolera 8051, uz opis dodatnih elemenata za mikrokontroler 8052.

  Osnovne karakteristike mikrokontrolera INTEL 8051 su:
– 8-bitni CPU;
– 4 KB (8 KB za 8052) interne ROM ili EPROM memorije za čuvanje programa, sa mogućnošću proširenja do 64 KB spoljašnje memorije;
– 128 (256 za 8052) bajtova RAM memorije namenjene za upisivanje i čitanje podataka. U ovoj memoriji se nalaze 4 registarske banke od po 8 registara, kao i stek memorija;
– 64 KB adresnog prostora memorije podataka;
– 64 KB adresnog prostora programske memorije;
– 8-bitni pokazivač stek memorije, koji pokriva internu memoriju;
– Dva (tri za 8052) programabilna 16-bitna tajmera/brojača;
– Programabilni serijski ulaz/izlaz (puni dupleks);
– Četiri 8-bitna ulazno/izlazna priključka (portovi P0, P1, P2 i P3);
– Tajmerski i ulazno/izlazni prekidi sa dva nivoa prioriteta;
– 111 naredbi;
– Aritmetičko-logička jedinica (ALU) koja može da izvršava aritmetičke operacije sabiranja, oduzimanja, množenja i deljenja, kao i logičke operacije I, ILI, EXILI, komplement i negacija;
– 256 adresabilnih bita za rad sa Bulovom algebrom, od toga 128 bita u internoj memoriji i 128 bita pridruženih postojećim internim registrima.

 
struktura_cipa_mikrokontrolera_8051_elektronika_mikrokontroleri_www.automatika.rs.jpg
 
Slika 1. Struktura čipa mikrokontrolera INTEL 8051

   Ovako sintetizovan mikrokontroler u mnogome olakšava posao projektanta hardvera, smanjuje ukupno hardversko okruženje i broj spoljašnjih veza i na taj način povećava pouzdanost sistema. Na sl. 2 prikazana je detaljnija arhitektura mikrokontrolera INTEL 8051. Ovde se vide ranije pomenute komponente: aritmetičko-logička jedinica (ALU) sa parom registara (TMP1, TMP2) za privremeno upisivanje podataka, akumulator (ACC) sa pomoćnim registrom B, statusni registar (PSW), registar naredbi sa dekoderom, programski brojač (PC) i registar za inkrementiranje (povećanje za 1) programskog brojača (PC-incrementer).

detaljniji_opis_strukture_mikrokontrolera_8051_elektronika_mikrokontroleri_www.automatika.rs.jpg
 
  Slika 2. Detaljnija struktura mikrokontrolera INTEL 8051
   Pomoćni registar B, koji se naziva multiplikativnim registrom, služi za smeštanje drugog operanda za aritmetičke operacije množenja i deljenja. Posle izvršene operacije množenja ili deljenja u njemu se nalazi viši bajt rezultata množenja ili ostatak deljenja, respektivno. Zajedno sa ACC pomoćni registar B čini registarski par.
   Pokazivač steka (SP-Stack Pointer) služi za adresiranje vrha (najviše lokacije) stek memorije. Ovaj registar se inkrementira prilikom upisivanja podataka u stek, a dekrementira prilikom čitanja podataka iz ove memorije.
   Mikrokontroler INTEL 8051 poseduje 4 prihvatna registra (LATCH-a) za čuvanje stanja izlaza na portovima P0, Pl, P2 i P3. Registar serijskog prenosa (SBUF) služi za upis podatka koji se šalje i čitanje podatka koji se prima preko serijske veze. Registarski parovi (TH0, TL0) i (TH1, TL1) čine dva 16-bitna tajmera ili brojača.
   Za kontrolu i upisivanje statusa prilikom prekida (INTERRUPT-a) za tajmere, brojače i za serijski prenos podataka koriste se registri specijalne namene označeni na sl 1.2 sa IP, IE, TMOD, TCON, SCON i PCON.
   IP služi za određivanje nivoa prioriteta prekida, IE za maskiranje (dozvolu ili zabranu) prekida, TMOD i TCON za određivanje načina rada tajmera i brojača, SCON za kontrolu serijskog prenosa i PCON za dodatnu kontrolu serijskog prenosa i režim rada mikrokontrolera.
  Memorijski adresni prostor mikrokontrolera INTEL 8051 je podeljen u dva osnovna dela: adresni prostor rezervisan za programe (Code Address Space) i adresni prostor rezervisan za podatke (Data Address Space).

   Mikrokontroler može da adresira 64KB programske memorije; interno u samom čipu ima 4KB, a ostatak od 60KB je predviñen kao spoljašnja memorija. Programska memorija je tipa ROM (u nekim varijantama i EPROM ili FLASH), a sem izvoñenja programa moguće je i čitanje nekih konstantih podataka.

   Memorija podataka je tipa RAM, a sastoji se iz interne (128/256 bajtova) i eksterne memorije (do 64KB). Pri tome, ako nema previše podataka, eksterna memorija ne mora da se koristi. Internu memoriju je moguće adresirati direktno registarski ili registarski indirektno. Od toga u prostoru od 16 bajtova moguće je adresirati svaki bit (Bit Addressable Segment). U okviru interne memorije podataka nalazi se i stek, koji je organizovan tako da se poslednji upisani podatak prvi čita (Last Input First Output ili LIFO-princip), a koristi se za privremeno čuvanje sadržaja brojača naredbi prilikom poziva na potprograme i za pamćenje adrese izvršenja programa u slučaju prekida. Napomenimo još da se eksternoj memoriji se uvek pristupa indirektno, preko odgovarajućih registara.

Organizacija memorije

   Kao što je već rečeno, memorijski adresni prostor mikrokontrolera INTEL 8051 je podeljen u dva osnovna dela: adresni prostor rezervisan za programe (Code Address Space) i adresni prostor rezervisan za podatke (Data Address Space).

Programska memorija

   Mikrokontroler može da adresira 64KB programske ROM memorije. Donjih 4/8 KB programske memorije može biti interna memorija (nalazi se unutar čipa) ako je EA=Vcc, ili spoljašnja memorija ako je EA=0. Signal PSEN se koristi za pristup spoljašnjoj programskoj memoriji, tako što se vodi na OE ulaz EPROM-a. Kada se koristi spoljašnja memorija, port P2 služi za adresiranje višeg bajta, a P0 za adresiranje nižeg bajta te memorije.

Memorija za podatke

   Memorija podataka je tipa RAM, a sastavljena je od interne (128 bajtova) i eksterne (do 64KB) memorije. Sem toga, u zoni interne memorije (u opsegu adresa 128 – 255) se nalazi i blok specijalnih registara (Special Function Registers – SFR) za kontrolu periferijskih jedinica i rada mikrokontrolera.

psw_registar_mikrokontrolera_8051_mikrokontroleri_elektronika_www.automatika.rs.jpg

Slika 3. PSW registar
Na slici 3. uočavamo registar PSW (Program Status Word), koji je veoma važan za rad mikrokontrolera. Kod njega nije zanimljiva binarna vrednost koju sadrži, nego isključivo stanje pojedinačnih bita.

-C (PSW.7) Carry Flag (Bit prenosa). Ovo je ekstenzija (deveti bit) za sve aritmetičke operacije i instrukcije pomeranja (šiftovanja), a takođe je i glavni registar za 1-bitne operacije.
-AC (PSW.6) Auxiliary Carry Flag (pomoćni bit prenosa), samo za BCD operacije, a odnosi se na prenos između nižeg i višeg nibla (donja i gornja grupa od po 4 bita). Koristi ga uglavnom mikrokontroler preko naredbi za BCD konverziju.
-F0 (PSW.5) Fleg 0 stoji na raspolaganju programeru kao bit za univerzalnu upotrebu.
-RS1 i RS0 (PSW.4 i PSW.3) Register Select, služe za izbor dela internog RAM-a u kome je smeštena tekuća grupa registara (registarska banka) R0-R7.
-OV (PSW.2) Overflow (prekoračenje). Setuje se (postavlja na 1) ako je rezultat aritmetičke operacije sa predznakom takav da ne može da se prikaže u jednom bajtu, tj. dođe do prekoračenja opsega (na primer, sabiranjem dva pozitivna broja dobije se negativan broj ili obrnuto). Ako nema prekoračenja, ovaj bit će biti 0.
-(PSW.1) Rezervisano od stane proizvođača za budući razvoj čipa.
-P (PSW.0) Parnost. Ako je broj setovanih bita u akumulatoru paran, ovaj bit će biti postavljen na 1, a ako je neparan, biće resetovan na 0. Uglavnom se koristi za generisanje bita parnosti kod slanja bajta na serijski port ili za testiranje parnosti posle serijskog prijema.
-Data Pointer (DPTR) je 16-bitni registar, koji se sastoji od dva 8-bitna registra: DPH (Data Pointer High – viši bajt) i DPL (Data Pointer Low – niži bajt).

Raspored pojedinih nožica
   Na slici 4 prikazan je izgled mikrokontrolera 8051. Ako su signali nadvučeni to znači da je aktivan nizak nivo signala ,a pasivan visok.
raspored_nozica_mikrokontrolera_8051_mikrokontroleri_elektronika_www.automatika.rs.jpg
 
Slika 4. Raspored nožica mikrokontrolera
 

Opis funkcija pojedinih nožica
Od 1 do 8 – Port 1:
Svaka od ovih nožica može da se koristi kao ulazni ili izlazni priključak, prema potrebi. Za 8052, P1.0 (T2) je spoljašnji brojački ulaz za tajmer 2 a P1.1 (T2EX) je spoljašnja kontrola (triger) za tajmer 2.

9
– Reset:
– Visok logički nivo na ovom ulazu resetuje sve interne registre (registre dovodi u stanje 00000000), sa sledećim izuzecima:
    ~ P0, P1, P2 i P3 (izlazni registri svih spoljnih portova) se dovode u stanje 11111111
    ~ SBUF se ne menja
    ~ SP se dovodi u stanje 00000111 (07h)
    ~ Neki biti u registrima IP, IE i PCON fizički ne postoje, pa tako ne mogu ni da se resetuju
    ~ Sadržina celog internog RAM-a se ne menja
– Najvažnija posledica aktiviranja RESET ulaza je da se PC (Program Counter) resetuje, tako da će
započeti izvršavanje programa od adrese 0000h.

od 10 do 17 – Port 3:
– Ako se koristi kao univerzalni ulaz ili izlaz, po svemu je sličan portu 1, ali na svakoj nožici ima još po neku specijalnu funkciju:
10 (P3.0) RXD – Serijski ulaz za asinhronu komunikaciju (mod 1, 2 i 3) ili serijski izlaz za sinhronu komunikaciju (mod 0)
11 (P3.1) TXD – Serijski izlaz za asinhronu komunikaciju (mod 1, 2 i 3) ili taktni (clock) izlaz sa sinhronu komunikaciju (mod 0)
12 (P3.2) INT0 – Ulaz za prekid (interapt) 0
13 (P3.3) INT1 – Ulaz za prekid (interapt) 1
14 (P3.4) T0 – Ulaz spoljnjeg takta za brojač 0
15 (P3.5) Tl – Ulaz spoljnjeg takta za brojač 1
16 (P3.6) WR – Signal za upis u spoljnu memoriju
17 (P3.7) RD – Signal za čitanje iz spoljne memorije

18 i 19 – X2 i X1:
Izlaz i ulaz internog oscilatora. Ako se koristi kvarc-kristal za stabilizaciju učestanosti oscilatora (što je najčešći slučaj), on se vezuje za ove dve nožice, s tim što na svaku nožicu (prema masi) treba dodati još po jedan kondenzator od 20-40pF. Ovoje potrebno da bi se sprečilo oscilovanje na nekom višem harmoniku. Opseg učestanosti je od 1 do 12 MHz, a izrañuju se i mikrokontroleri koji rade i na znatno višim frekvencijama.

20 – Masa

Od 21 do 28
– Port 2 ili adrese A8 do A15:

Ako se koristi mikrokontroler sa internim ROM-om i nema spoljnjeg ROM-a ili RAM-a, mogu se koristiti sve linije ovog porta kao univerzalni ulazi ili izlazi. Ako se koristi spoljna memorija, onda su ovo visoki adresni izlazi, od A8 do A15. U tom slučaju, čak i ako se koriste samo neke adrese, preostale nožice ovog porta ne mogu da se koriste kao ulazi ili izlazi.

29 – PSEN: Program Select Enable (aktiviranje spoljašnjeg ROM-a):
Normalno se ovaj izlaz spaja sa CS ili OE ulazom na spoljnom EPROM-u, jer ga mikrokontroler aktivira (dovodi na nizak nivo) svaki put kad čita bajt iz programske memorije (za kontrolu spoljašnjeg RAM-a se koriste druge nožice).

30 – ALE: Address Latch Enable (Upis u adresni registar):
Da bi sve željene funkcije spakovao u standardno kućište od samo 40 nožica, Intel je morao da pribegne multipleksiranju nekih signala. Tako je port P0 dobio dve funkcije: izlazne adrese A0-A7 i ulaz/izlaz podataka D0-D7. Pre svakog očitavanja programa iz spoljne memorije ili prozivanja RAM-a mikrokontroler na P0 prosleñuje niži bajt adresnog registra i aktivira izlaz ALE. Spoljni registar (najčešće LATCH registar tipa 373 ili 573 iz TTL 74xx familije) na visok nivo ALE memoriše stanje P0, a izlazi ovog registra se koriste kao A0-A7. U drugom delu mašinskog ciklusa mikrokontrolera P0 se koristi kao magistrala podataka (Data Bus).

31 – EA: External Access (Pristup spoljašnjem ROM-u):
Ako je ovaj ulaz nizak, mikrokontroler će sve instrukcije čitati iz spoljnog ROM-a, bez obzira da li ima interni ROM, a ako je visok, prvih 4 KB (8051, 8751) ili 8 KB (8052, 8752) će čitati iz internog, a sve ostalo do kraja adresnog prostora iz eksternog ROM-a. Ako se koristi 8031 ili 8032, na ovaj ulaz treba uvek dovesti nizak nivo (najbolje je spojiti ga sa masom).

od 32 do 39 – Port 0, Adrese A0-A7 ili magistrala podataka:
Slično portu P2, i port P0 može da se koristi kao univerzalni ulaz i izlaz samo ako se ne koristi spoljna memorija. Ako se koristi, tada je P0 adresni izlaz za A0-A7 kad je ALE visok, a magistrala podataka (Data Bus) kada je ALE nizak.

40 – Napajanje +5V

 
  Tekst o mikrokontroleru Intel 8051 preuzet je iz beleški sa predavanja iz predmeta "Mikroprocesorska elektronika"  sa katedre za elektronika Fakulteta Tehničkih Nauka u Novom Sadu.

POSTAVI ODGOVOR

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.