Mikrokontroleri

Autor: Tihomir Stamenković

 

AT89C2051 8-BITNI MIKROKONTROLER SA 2 Kb FLASH-A

Kompanija Atmel je uočila dve važne stvari na tržištu, da je 80C31/51 zastareo i da je baza napisanih programa za njega ogromna. Kao rezultat toga pojavio se mikrokontroler u malom kućištu u kome nema adresne magistrale za spoljnu memoriju. Uvođenjem flash memorije rešenje je postalo veoma upotrebljivo jer se sada program može menjati i u samom uređaju koji se razvija.

Atmelov AT89C2051je 8-mo bitni mikrokontroler koji u sebi sadrži 2 Kbajta Flash memorije koju je moguće više puta programirati i brisati (engl. Flash programmable and erasable read only memory). Potpuno je kompatibilan sa setom naredbi i funkcijama pinova industrijskog standarda MCS-51ä. Zbog ove kombinacije 8-bitne centralne procesorske jedinice i Flash memorije u jednom čipu, Atmel-ov AT89C2051 predstavlja zanimljiv mikrokontroler sa kojim je moguće u mnogim slučajevima napraviti veoma fleksibilne i jeftine aplikacije.

1b141.gif (54435 bytes)
kliknite na sliku da bi je uvećali


Ovaj procesor odlikuju sledeće standardne osobine: 2 Kbajta Flash-a, 128 bajtova internog RAM-a, 15 ulazno-izlaznih linija, dva 16-to bitna tajmera-brojača, 5 izvora prekida u dva nivoa, potpuni dupleks serijski port, precizni analogni komparator, integrisan oscilator i kolo za taktovanje. Uz to, AT89C2051 je projektovan za potpuni statički rad sve do frekvencije 0 Hz, i podržava dva načina rada koje je moguće softverski birati, za smanjenje sopstvene potrošnje. “Idle” mod zaustavlja centralnu procesorsku jedinicu, pri čemu RAM, tajmeri-brojači, serijski port i prekidni sistem, nastavljaju da funkcionišu. Power Down mod čuva sadržaj RAM-a ali zamrzava rad oscilatora, onemogućavajući ostale funkcije čipa, sve do hardverskog reseta.

Opis pinova

Port 1 - Port 1 je 8-bitni dvosmerni ulazno-izlazni port. Pinovi porta P1.2 do P1.7 imaju interne otpornike prema pozitivnom naponu napajanja (eng. pullup). Pinovi P1.0 i P1.1 takođe služe i kao neinvertujući (AIN0) i neinvertujući (AIN1) ulaz-respektivno, preciznog analognog komparatora, koji je ugrađen u samom procesoru. Izlazni stepeni Porta 1 mogu primiti 20mA, i mogu direktno pogoniti led indikatore. Kada se jedinice upišu na pinove Porta 1,oni se mogu koristiti kao ulazi. Kada se pinovi P1.2 do P1.7 koriste kao ulazi i spolja dovedu na nizak nivo (logičku 0), oni će odavati struju (IIL), zbog internih pullup otpornika. Prilikom programiranja i verifikacije programa, Port 1 prima podatke.

1b142.gif (3869 bytes)Port 3 - Pinovi Porta 3 P3.0 do P3.5 i P3.7 su dvosmerni ulazno-izlazni pinovi, sa internim otprnicima prema pozitivnom naponu napajanja. P3.6 je interno spojen na analogni komparator koji se nalazi u komponenti, i nije dostupan kao ulazno-izlazni pin opšte namene. Kao i kod Porta1, izlazni stepeni Porta 3 mogu primiti struju intenziteta 20mA, a kada se koriste kao ulazi (kada se na njih upiše jedinica), odaju struju zbog internih pullup otpornika. Port 3 takođe prima neke upravljačke signale prilikom programiranja i verifikacije EEPROM-a.
RST - Reset ulaz. Držanje ovog pina na “1” u trajanju od 2 mašinska ciklusa dovodi do resetovanja komponente. Dok je reset ulaz na visokom potencijalu, svi ulazno-izlazni pinovi se postavljaju na “1”.
XTAL1 - Ulaz invertujućeg pojačavača oscilatora
XTAL2 - Izlaz invertujućeg pojačavača oscilatora.

Ograničenja kod određenih instrukcija

Procesor 89C2051 je potpuno kompatibilan sa MCS-51 arhitekturom, i može biti programiran koristeći MCS-51 set instrukcija. Međutim, prilikom programiranja ove komponente mora se imati u vidu sledeće:
Sve naredbe skoka i naredbe grananja, moraju biti ograničene tako da odredišna adresa padne unutar fizičkog prostora programske memorije procesora, koja iznosi 2K za ovu komponentu. Na primer, LJMP 7E0H je korektna naredba , dok LJMP 900H nije.
Naredbe grananja: ACALL, LJMP, ACALL, AJMP, SJMP, JMP @A+DPTR
Ove naredbe bezuslovnog grananja će se izvršavati korektno sve dok programer vodi računa da odredišna adresa unutar fizičkih okvira programske memorije (adrese 00H do 7FFH za 89C2051). Prekoračenje ove fizičke granice može dovesti do nepoznatog ponašanja programa.
Za sledeće naredbe takođe važe ista pravila CJNE [...], DJNZ [...], JB, JNB, JC, JNC, JBC, JZ, JNZ
AT89C2051 sadrži 128 bajtova interne memorije za podatke, što je upravo i maksimalna veličina steka. Pristup eksternoj memoriji za podatke, nije podržan kod ovog procesora, kao ni izvršenje programa iz eksterne programske memorije. Zbog toga naredbe tipa MOVX[...] nebi trebale da se koriste u programima.Uobičajeni 80C51 asembler će prevesti naredbe, iako one krše prethodno nabrojana ograničenja. Isključiva je odgovornost programera da izbegne greške ovog tipa.
U cilju smanjenja sopstvene potrošnje, AT89C2051 podržava dva načina rada:
IDLE MOD
U Idle modu procesor se prebacuje u stanje spavanja, dok periferije na čipu ostaju aktivne. Ovaj mod se aktivira softverski. Sadržaj RAM-a na čipu i registri posebne namene ostaju neizmenjeni dok se procesor nalazi u ovom modu. Idle mod se prekida bilo kojim dozvoljenim prekidom, ili hardverskim resetom.
POWER DOWN MODE
U power down modu oscilator se zaustavlja, a naredba koja je izazvala ovaj mod je poslednja izvršena naredba. Interni RAM i registri posebne namene zadržavaju svoje vrednosti do prekida power down moda. Jedini izlaz iz ovog moda je hardverski reset. Reset radefiniše registre posebne namene, ali interni RAM ostaje nepromenjen. Reset ne treba da se aktivira dok Vcc ne uspostavi svoju normalnu radnu vrednost i mora ostati aktivan dovoljno dugo da dopusti da se oscilator resetuje i stabilizuje.


Pročitajte više o ovoj temi
Programiranje Atmelovog mikrokontrolera AT89C2051
Mikrokontrolerski regulator brzine i smera DC motora
Programator Atmel mikrokontrolera
ATMEL Flash RISC MCU

C o p y r i g h t  1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji