Stepenisni automat

  • Upload
    safet

  • View
    655

  • Download
    1

Embed Size (px)

Citation preview

UNIVERZITET U NIU ELEKTRONSKI FAKULTETKATEDRA ZA ELEKTRONIKU

REALIZACIJA STEPENINOG AUTOMATA POMOU MIKROKONTROLERA AT89S8253

Studenti: Edin Bievac 10756 Milan Stefanovi 9800

Ni, Januar 2008.

SADRAJ

1. UVOD ..............................................................................................................................................2 1.1. PROJEKTNI ZADATAK .........................................................................................................3 1.2. RAZRADA ...............................................................................................................................3 2. PRENOS PODATAKA....................................................................................................................4 2.1. UPOREDNE KARAKTERISTIKE PARALELNOG I SERIJSKOG PRENOSA .............................................4 2.2. PRIMER KOMBINACIJE PARALELNOG I SERIJSKOG PRENOSA .......................................................6 2.3. HANDSHAKE PARALELNI U/I PRENOS ..........................................................................................7 2.4. REZIME .......................................................................................................................................8 3. MIKROKONTROLER AT89S8253..............................................................................................10 3.1. UNUTRANJA STRUKTURA MIKROKONTROLERA ........................................................................10 3.2. REDUKOVANI REIM NAPAJANJA ..............................................................................................11 3.3. PROGRAMSKA MEMORIJA .........................................................................................................12 3.4. MEMORIJA PODATAKA .............................................................................................................13 3.5. PROGRAMSKI STATUSNI REGISTAR ...........................................................................................17 3.6. TAKTOVANJE MIKROPROCESORA..............................................................................................18 3.7. MAINSKI CIKLUSI ...................................................................................................................19 3.8. STRUKTURA PREKIDA ...............................................................................................................20 3.8.1. Prioriteti prekida..............................................................................................................20 4. PROGRAMIRANJE MIKROKONTROLERA AT89S8253 ........................................................21 4.1. BOOTSTRAP LOADER SI-PROG..................................................................................................21 4.1.1 Osnovno kolo.....................................................................................................................21 4.1.2. Povezivanje mikrokontrolera ...........................................................................................22 4.1.3. Signali serijskog porta raunara .....................................................................................23 4.1.4. Izgled tampane ploe......................................................................................................24 4.2. SOFTVERSKI ALATI KOMPATIBILNI SA SI-PROG ........................................................................24 4.2.1. Softver IC-Prog ................................................................................................................25 4.2.2 Softver PonyProg ..............................................................................................................30 4.3. BOOTSTRAP LOADER ISP PROGRAMMER ..................................................................................37 4.3.1. Signali RS-232 interfejsa paralelnog porta raunara .....................................................38 4.4. PROGRAM ATMEL MICROCONTROLLER ISP SOFTWARE ...........................................................39 5. REALIZACIJA STEPENINOG AUTOMATA ..........................................................................42 5.1. HARDVER .................................................................................................................................42 5.2. SOFTVERSKO REENJE ..............................................................................................................47 6. ZAKLJUAK ................................................................................................................................55 7. LITERATURA...............................................................................................................................56

1

1. UVOD

Dananji ivot je, nezamisliv bez razliitih vidova komunikacije, informisanja, kontrole i dr. Sve vie procesi koji mogu da se kontroliu elektronskim putem, se time i podvrgavaju. Poev od medicine gde se kod dijagnostike bolesti pacijenata sve ee koriste elektronski ureaji koji razliite vidove energije koriste za pobuivanje elektro senzora koji pobuuju pokazivae za prikazivanje tih kontrolnih pregleda. Ne moemo da ne spomenemo automobilsku industriju gde se pocesi starta, upravljanja, kontrole i drugih procesa takoe sprovode elekronskim ureajima. Uzaludno je priati o tome koliko je elektronika prodrla u oblast ivota kad je u pitanju televizija, radio, telefonija, informacione tehnologije, internet, satelitske komunikacije i dr. Podsetiu samo na upotrebu elektronskih ureaja u vojnoj, avionskoj, telekomunikacionoj i drugim oblastima industrije. U novije vreme sve ee se ovek kao aktivni subjekat u izvrenju mnogih procesa, zapostavlja a ostavlja mesto da sami elektronski ureaji upravljaju i kontroliu neke procese. Kao primer toga u vojnoj avijaciji se sve cee upotrebljavaju bespilotne letelice koje same kontroliu, snimaju, izvravaju zadatke tamo gde je to potrebno. Sve ovo o emu smo govorili ne moe se zamisliti bez sistema kao sto su memorijski prostori, procesori, mikrokontroleri, displeji, senzori i dr. Sa razvojem mikrokontrolera u prolosti poveavao se broj procesa koji su mogli da se kontroliu ovim putem. Mikrokontroleri su relativno spori ali sa aspekta iskorienja silicijuma po povrini-veoma-efikasni procesori, uglavnom namenjeni za upravljako-intenzivne aplikacije. Karakterie ih mikroprogramska CISC bazirana arhitektura, to znai da je broj taktnih intervala za izvrenje razliitih tipova instrukcija u velikoj meri promenljiv. Mo izraunavanja kao i broj memorijskih resursa je veoma ogranien, a obim rei staze-podataka relativno mali (obino 8 ili 16 bitova). Sa druge strane, kompleksnost skupa instrukcija prua odgovarajui programski interfejs, ukljuujui instrukcije za mnoenje i deljenje kao i vei broj memorijsko adresnih naina rada. Kao rezultat se dobija veoma kompaktan kd (programi su relativno mali). S obzirom da su mikrokontroleri namenjeni za upravljako-orijentisani aplikacioni domen, oni poseduju bogat skup instrukcija za manipulisanje podacima na nivou-bita, kao i periferijskim komponentama kakvi su tajmeri ili serijski U/I portovi. Veoma esto jednostavni procesori koji su se ranije koristili kao CPU-ovi u raunarskim sistemima (kakvi su, recimo procesori iz familije Intel 8051, Motorola 6502, 6811, i dr., koji su bili popularni kao CPU-ovi u kunim raunarima) danas se ponovo koriste u neto izmenjenoj formi kao mikrokontroleri kod embedded sistema. Mikrokontrolere delimo na 4-, 8-, 16-, i 32-bitne. Ilustracije radi, 4-bitni mikrokontroleri uglavnom se koriste u automatima za igru, 8-bitni kao programatori u ve mainama, 16-bitne sreemo u sistemima za upravljanje klimom u kolima, a 32-bitni se primenjuju da obave sloene telekomunikacione funkcije u mobilnim beinim uredjajima.

2

1.1. PROJEKTNI ZADATAK

Realizovati simulaciju stepeninog automata koristei ATMEL-ov mikrokontroler AT89S8253. Automat projektovati tako da na ulazu budu postavljeni tasteri, a na izlazu signalne lampice za identifikaciju.

1.2. RAZRADA

Korienjem osam led dioda simulirane su sijalice za osvetljenje spratova osmospratne stambene zgrade. Kao ekvivalent prekidaa za ukljuivanje svetla, korieni su tasteri. Uz pomo mikrokontrolera, softverski je realizovano da se pri pritisku na taster ukljuuju signalna lampica koja odgovara tom spratu, kao i lampice koje odgovaraju spratovima za jedan iznad i jedan ispod odgovarajueg sprata. Ukljuene led diode se gase nakon isteka jednog minuta. Ukoliko je pritisnut taster broj jedan ili taster broj osam ukljuuje se lampica tog sprata, kao i lampica sprata iznad, odnosno sprata ispod za sluaj kada je pritisnut taster broj osam.U sluaju kada je odreena lampica ukljuena klikom na jedan taster i pre isteka jednog minuta ponovo bude aktivirana nekim drugim tasterom raunanje vremena za njeno iskljuivanje se resetuje, i ona e biti ukljuena u trajanju jo jednog minuta od ponovnog ukljuivanja. Sam postupak realizacije je detaljnije opisan u petom poglavlju, u kome je opisano softverko reenje.

3

2. PRENOS PODATAKA

Prenos podataka predstavlja prenoenje kdirane informacije kroz prenosni medijum (kabl, ma-gistralu itd.) Prema nainu prenosa podataka izmeu dva sistema (integrisana kola, raunara, terminala itd.) razlikuju se dva tipa prenosa: Paralelni: prenos n bitova (n = 8, 16, 32, 64) vri se istovremeno (ovakav prenos se tipi-no ostvaruje preko sistemske ili neke druge magistrale u mikroprocesorskom sistemu) Serijski: prenos podataka vri se preko jedinstvene linije (provodnika, voda, ice).

2.1. UPOREDNE KARAKTERISTIKE PARALELNOG I SERIJSKOG PRENOSA

Na Slici 2.1 i Slici 2.2 ilustrovani paralelni i serijski prenos, respektivno. Paralelni prenos podataka je bri od serijskog, ali je znatno skuplji jer zahteva vei broj veza (vodova ili kanala za prenos). Serijski prenos je pouzdaniji, iz razloga to se prekid ili greka u prenosu uvek mogu lako detektovati. Isto tako, kod serijskog prenosa su protokoli (skup pravila za razmenu podataka izme-u dva sistema) daleko bolje definisani (postoje meunarodni standardi i norme za prenos). Kod paralelnog prenosa, zbog razliitih formata paralelnih podataka, to nije sluaj.

Slika 2.1. Ilustracija paralelnog prenosa (n=8)

4

Slika 2.2. Ilustracija serijskog prenosa

Imajui sve ovo u vidu, paralelni prenos podataka se daleko vie koristi kada se prenose podaci na kraim rastojanjima: interno, unutar mikroprocesorskog sistema (komunikacija izmeu mikroproce-sora i memorije, UART-a, A/D konvertora itd.) i eksterno, do nekoliko metara, u okviru raunarskog okruenja (npr. komunikacija izmeu raunara i tampaa preko paralelnog porta). Kada su u pitanju rastojanja vea od reda nekoliko metara, serijski prenos podataka je neizbean. Kod serijskog prenosa podaci se prenose bit po bit. Serijski prenos moe da se ostvari preko jednog provodnika (ice). Meutim, potrebne su najmanje dve linije (provodnika, ice) za serijsku komunika-ciju: jedna za podatke i druga, tzv. masa da bi se zatvorilo strujno kolo izmeu dva sistema koji serij-ski komuniciraju. Naravno, mogue je ostvariti i tzv. diferencijalni serijski prenos kod koga su nivoi logike 0 i logike 1 definisani razlikom potencijala izmeu dva signala koji se prenose. Takav je slu-aj kominikacije kod USB porta. Ovde e biti navedeni neki od standarda za serijsku komunikaciju: RS232 (nebalansirani, 1 drajver 1 pijemnik, za rastojanja do 15m) RS422 (nebalansirani, 1 drajver 10 pijemnika, za rastojanja do 1200m) RS423 (diferencijalni, 1 drajver 10 pijemnika, za rastojanja do 1200m) RS485 (diferencijalni, 32 drajvera 32 pijemnika, za rastojanja do 1200m).

Komunikacija u okviru mikroprocesorskog sistema ostvaruju se preko sistemske magistrale u paralelnoj formi. Da bi se ostvarilla sprega sistema koji sa jedne strane obavljaju paralelni, a sa druge strane serijski prenos podataka, neophodno je izvriti paralelno-serijsku konverziju. Za tu svrhu se najee koriste pomeraki registri. Nisu retke aplikacije koje koristi oba tipa konverzije, i paralelno-serijsku i serijsko-paralelnu, kako bi se ostvario prenos n-tobitnih paralelnih podataka od predajni-ka do prijemnika preko serijske komunikacione linije.

5

2.2. PRIMER KOMBINACIJE

PARALELNOG I SERIJSKOG PRENOSA

Slika 2.3. Ilustracija paralelnog i serijskog prenosa unutar mikroprocesorskog sistema

U samom mikroprocesorskom sistemu prisutne su istovremeno i serijska i paralelna komunikaci-ja. Na Slici 2.3. upravo je ilustrovan jedan takav primer. Naime, na mikrokontroler PIC18F452, koji ini jezgro sistema, povezane su sledee komponente/ureaji: Flash memorija 29F040B (paralelni prenos podataka) SPI EEPROM 25LC640 (serijski prenos) LCD modul, 2x16 karaktera (paralelni prenos) GSM/GPRS modul Siemens TC35 (serijski prenos) PC raunar (serijski prenos). Kao to se vidi na slici, multipleksiranjem (preko integrisanog kola MC14052) i GSM/GPRS modul i PC ostvaruju komunikaciju sa internim UART modulom mikrokontrolera. Naravno, poto se koriste samo tri linije (Rx, Tx i masa) komunikacija je bez handshaking-a. Napomena: U ovom poglavlju pomenuti su termini USB (Universal Serial Bus), UART (Universal Asyncronus Receiver Transmitter) i SPI (Serial Peripheral Interface). S obzirom da je u radustavljen akcenat na paralelnu komunikaciju, pomenuti tipovi serijske komunikacije nisu detaljnije objanjavani. Za informacije o pomenutim nainima komunikacije treba konsultovati odgovarajuu literaturu.

6

2.3. HANDSHAKE PARALELNI U/I PRENOS

Handshake U/I prenos podrazumeva da se podaci iz spoljnjeg okruenja prihvataju od strane mikroprocesora (CPU) preko ulaznog bafera, dok se podaci koje procesor predaje spoljnom okruenju prenose preko izlaznog bafera. Na Slici 2.4 prikazan je primer povezivanja D/A konverora preko pa-ralelnog izlaznog interfejsa. Mikroprocesor leuje podatke u izlazni bafer podataka. Izlazne linije pomenutog bafera direktno su povezane na izlazno kolo/ureaj (u ovom sluaju je u pitanju D/A konvertor). Izlazni napon D/A konvertora menjae vrednost u skladu sa stanjem izlaznog bafera podataka. Razmotriemo sada jo jedan primer paralelnog interfejsa kod kojeg se tokom komunikacije koriste handshake upravljake linije (Slika 2.5) . Kada U/I ureaj preda podatke interfejsu, on prvo pos-tavlja vaee podatke na linijama Ulazni_podaci, a zatim aktivira liniju Pod_Ul_spreman. Interfejs odgovara leovanjem podatka u Ulazni_bafer i aktivira liniju Potvrda_Ul_Podataka. U/I ureaj nakon prijema signala Potvrda_Ul_Podataka deaktivira podatke i signal Pod_Ul_Spreman.

Slika 2.4. Povezivanje paralelnog izlaznog interfejsa sa D/A konvertorom

7

Slika 1.5. Povezivanje ulaznog i izlaznog interfejsa

Interfejs nakon primanja podatka postavi statusni bit Ready i aktivira liniju IRn . Kada mik-roprocesor prihvati podatak, interfejs deaktivira statusni bit Ready. Zahtev za prekid (IRn), kao i obrada prekida, prihvataju se i obrauju standardno. U sluaju izlaza, interfejs e postaviti Ready statusni bit i generisati zahtev za prekid ka-da je Izlazni_bafer podataka dostupan. Kada procesor upie podatke, interfejs resetuje izlazni statusni bit Ready, postavlja podatke na magistralu (Izlazni_podaci) i signalizira U/I ureaju preko linije Pod_Izl_Spremni. Kada je ureaj spreman da prihvati podatke, on leuje podatke i vraa signal Potvrda_Izl_Signala. Nakon toga, interfejs deaktivira signal Pod_Izl_Spremni i ponovo postavlja iz-lazni statusni bit na Ready.

2.4. REZIME

Sa pojavom USB porta (najpre kod raunara, a zatim kod mikrokontrolera i GSM/GPRS/3G mo-dula) paralelna komunikacija izmeu nekih eksternih ureaja (tampaa, skenera itd.) i mikroprocesora polako odlazi u istoriju. Razlog tome su komparativne prednosti koje poseduje USB port, a ovde e se navesti tri najvanije:

8

komunikacija se ostvaruje preko samo etiri linije (napajanje, masa i dve linije za podatke) veoma velike brzine prenosa podataka (teoretski, 120MB/s) mogue je iskoristiti USB port kao izvor napajanja.

Meutim, kao to je napomenuto, ima sluajeva kada je paralelna komunikacija neophodna (sistemska magistrala kod mikroprocesora, komunikacija mikrokontroler flash memorija i slino). Veliki broj potrebnih veza (jedna ica po bitu n-bitnog podatka) ograniava primenu paralelnog prenosa iskljuivo na relativno kratka rastojanja. Tipian primer je paralelna magistrala IEEE-488 GPIB, koja je projektovana za komunikaciju izmeu pojedinih sistema/ureaja (najee je u pitanju merno-informaciona tehnika), koji su meusobno udaljeni maksimalno 20 m. Ureaji svih renomi-ranih proizvoaa merno-informacione opreme (digitalni osciloskopi, digitalni izvori napajanja, logiki analizatori, analizatori spektra itd.) poseduju IEEE-488 GPIB magistralu. Kada se vri prenos podataka na vea rastojanja koristi se jedinstvena veza, a ne veliki broj veza kao to je to sluaj kod IEEE-488 GPIB.

9

3. MIKROKONTROLER AT89S8253

Atmel-ov mikrokontroler AT89S8253 je 8-bitni mikrokontroler izraen u CMOS tehnologiji i optimizovan za upravljake aplikacije. Kompatibilan je sa MCS-51 serijom mikrokontrolera. Set instrukcija je kompatibilan sa industrijskim standardom 80C51. Proizvodi se u tri kuita (DIP-40, PLCC44, TQFP44) i jednom specifinom (DIP-42) kuitu. Raspored pinova je prikazan na Slici 3.1 dok je unutranja struktura mikrokontrolera prikazana na Slici 3.2. U programerskom smislu, AT89S8253 je gotovo identian sa mikrokontrolerom AT89S53.

Slika 3.1. Raspored pinova kod mikrokontrolera AT89S8253

3.1. UNUTRANJA STRUKTURA MIKROKONTROLERAUkratko, ovaj mikrokontroler poseduje sledee karakteristike: Obimne logike procesne mogunosti (jednobitna logika) Ugraena flash programska memorija (12 Kb) Ugraena RAM memorija podataka (256 x 8 bitova) 32 dvosmerne (bidirekcione) i pojedinano adresibilne ulazno/izlazne linije Devet izvora prekida Ugraeni EEPROM (2Kb) Programabilni UART sa potpunim dupleksom i detekcijom greke rama podataka 10

SPI serijski interfejs Tri nivoa zatite programske memorije Tri 16-bitna tajmera/brojaa Programabilni watchdog tajmer Flag prestanka napajanja Reimi smanjene potronje Napajanje u opsegu 4-6V Ugraeni oscilator takta Frekvencija rada do 24MHz.

Slika 3.2. Unutranja struktura AT89S serije mikrokontrolera

3.2. REDUKOVANI REIM NAPAJANJA

U cilju utede potronje elektrine energije, koja je dostupna za CMOS kola, Atmel-ovi flash mikrokontroleri mogu da uu u dva reima redukovanog napajanja: Reim praznog hoda (Idle Mode). CPU se prestaje sa radom, dok RAM i drugi ugraeni pe-riferali u mikrokontroleru nastavljaju da rade. U ovom reimu rada, mikrokontroler se napaja strujom koja iznosi oko 15% vrednosti struje u normalnom reimu, tj. kada je mikrokontroler potpuno aktivan. U ovom modu (reimu rada), mikrokontroler tipino povlai struju oko 2 A. 11

Reim smanjene potronje (Power Down Mode). Sve aktivnosti unutar mikrokontrolera su suspendovane, dok RAM i dalje zadrava svoj sadraj. U ovom reimu, mikrokontroler tipino povlai struju oko 1 A, a ponekad i manje od 0.2 A. Kao dodatak, ovi mikrokontroleri su projektovani korienjem statike logike, koja ne zahteva kontinualno taktovanje. To znai da frekvencija takta mikrokontrolera moe usporiti ili ak zaustaviti, dok se eka na unutranji dogaaj.

3.3. PROGRAMSKA MEMORIJA

Svi Atmel-ovi flash mikrokontroleri imaju odvojene adresne prostore za programsku i memoriju podataka, to je prikazano na Slici 3.3. Ovo logiko odvajanje omoguava da se memorija podataka adresira sa 8-bitnim adresama, koje mogu bre da se memoriu. Pored toga, 16bitne memorijske adre-se mogu da se generiu preko DPTR registra. Mogue samo itanje programske memorije, koja moe da se direktno adresira do 64 Kb. Impuls PSEN (Program Signal Enable Store) slui za itanje spo-ljanje programske memorije (vidi Sliku 3.3). Memorija podataka zauzima odvojeni adresni prostor od programske memorije. Do 64Kb spoljanje memorije moe da se direktno adresira u spoljanjem memorijskom prostoru podataka. Mikroprocesor generie signale itanja (RD) i upisa (WR), tokom pri-stupa spoljanjoj memoriji podataka. Spoljanja programska memorija i spoljanja memorija podataka mogu da se kombinuju primenom RD i PSEN signala na ulazu I (AND) kola.

Slika 3.3. Struktura programske i memorije podataka

12

Najnie adrese programske memorije mogu da se nalaze ili u ugraenoj flash memoriji ili u spoljanjoj memoriji. Da bi se ovo odabralo, treba povezati EA (External Access) pin na masu (GND), a sva programska obraanja usmerena su prema spoljanjoj memoriji. Impuls za itanje spoljne me-morije, PSEN, koristi se za sva spoljanja programska obraanja. nutranja programska obraanja ne mogu da aktiviraju PSEN . Mapa donjeg dela programske memorije prikazana je na Slici 3.4. Posle reseta, mikroprocesor zapoinje da izvrava instrukcije poev od memorijske lokacije 0000H. Kao to se vidi na slici, svakom prekidu je dodeljena fiksna lokacija u programskoj memoriji. Prekid inicira da mikroprocesor skoi na tu lokaciju, gde izvrava servisnu rutinu. Spoljanji Prekid 0, na primer, dodeljen je memorijskoj lokaciji 0003H. Ako se koristi spoljanji Prekid 0, njegova servisna rutina mora da zapone od lokacije 0003H. Ukoliko se ne koristi prekid, pomenuta servisna lokacija je dostupna kao programska memorija opte namene. Prekidne servisne lokacije postavljene su u 8bitnim intervalima (razmacima): 0003H za spoljanji Prekid 0, 000BH za Tajmer 0, 0013H za spoljanji Prekid 1, 001BH za Tajmer 1, i tako dalje. Ukoliko je servisna rutina prekida dovoljno kratka (to je est sluaj u upravljakim aplikacijama), ista moe potpuno da se smesti unutar 8-bajtnog intervala. Due rutine prekida mogu da koriste instrukciju skoka, kako bi preskoili sledee prekidne lokacije ako su u upotrebi drugi prekidi.

Slika 3.4. Programska memorija

3.4. MEMORIJA PODATAKA

Desna p olovina Slike 3.3 prikazuje unutranje i spoljanje memorijske prostore dostupne kod Atmel-ovih flash mikrokontrolera. Slika 3.4 prikazuje konfiguraciju za pristupanje do 2Kb 13

spolja-nje RAM memorije. U ovom sluaju, mikroprocesor izvrava program iz unutranje flash memorije. Port 0 slui kao multipleksirana magistrala adresa/podataka za RAM, dok se 3 linije Porta 2 koriste za stranienje RAM-a. Moe se dodeliti do 64 Kb spoljanje memorije podataka. Adrese spoljanje memorije podataka mogu da budu irine 1 ili 2 bajta. Jednobajtne adrese esto se koriste u vezi sa jednim ili vie dru-gih ulazno/izlaznih linija za stranienje RAM-a, kao to je prikazano na Slici 3.5. Dvo-bajtne adre-se se takoe mogu koristiti, i u tom sluaju bajt vie adrese se pojavljuje na Portu 2.

Slika 3.5. Izvravanje programa iz spoljanje memorije

Konfiguracija hardvera za izvravanje spoljanjeg programa je prikazana na Slici 3.5. Vidimo da 16 ulazno/izlaznih linija (Port 0 i Port 2) su posveeni radu sa magistralom tokom obraanja spolja-njeg programa memoriji. Port 0 (P0 na Slici 3.5) slui kao multipleksirana magistrala adresa/podataka.

Slika 3.6. Pristupanje spoljanjoj memoriji podataka

On postavlja nii bajt programskog brojaa (Program Counter) PCL kao adresu i zatim prelazi u plivajue stanje, dok eka na pristizanje bajta kda iz programske memorije. Tokom 14

vremena kada je PCL vaei na P0, signal ALE (Address Latch Enable) postavlja ovaj bajt u adresni le. U meuvremenu, Port 2 (P2 na Slici 3.5) postavlja vii bajt programskog brojaa PCH. Tada PSEN alje impuls spoljanjoj memoriji, i mikrokontroler ita bajt kda. Adrese programske memorije su uvek 16-bitne, ak i kada kapacitet upotrebljene memorije moe da bude manja od 64 Kb. Izvravanje spoljanjeg programa troi (rtvuje) dva 8-bitna porta (P0 i P2), zbog operacije adresiranja prog-ramske memorije. Ukoliko je programska memorija unutranja, ostali bitovi P2 dostupnisu kao ulaz/izlaz. Unutra-nja memorija podataka je prikazana na Slici 3.6. Memorijski prostor je podeljen u tri bloka, koji se uglavnom nazivaju nii 128, gornji 128, i SFR prostor. Adrese unutranje memorije podataka su uvek duine 1 bajt, to znai da se adresira samo prostor od 256 bajtova. Ipak, nain adresiranja unutranjeg RAM-a moe da, u stvari, smesti 384 bajtova. Direktne adrese vee od 7FH pristupaju jednom memorijskom prostoru, a indirektne adrese vee od 7FH pristupaju razliitom memorijskom prostoru. Prema tome, Slika 3.7 ilustruje Gornji 128 i SFR prostor koji zauzima isti blok adresa, od 80H do FFH, iako su oni fiziki odvojeni entiteti.

Slika 3.7. Unutranja memorija podataka

Slika 3.8. Niih 128 bajtova unutranjeg RAM-a

15

Slika 3.9. Gornjih (viih) 128 bajtova RAM-a

Slika 3.8 ilustruje kako je mapirano niih 128 bajtova RAM-a. Niih 32 bajtova je grupi-sano u 4 banke od 8 registara. Programske instrukcije pozivaju ove registre kao R0 do R7. Dva bita u registru programske statusne rei PSW (Program Status Word) selektuju koja je registarska banka u upotrebi. Ova arhitektura omoguava efikasniju upotrebu kdnog prostora, poto su registarske in-strukcije krae od instrukcija koje koriste direktno adresiranje. Sledeih 16 bajtova iznad registarskih banki formira blok bit-adresibilnog memorijskog prostora. Skup instrukcija mikrokontrolera ukljuuje veliki broj instrukcija sa jednim bitom, i ove instrukcije mogu direktno da adresiraju 128 bitova u ovom prostoru. Ove bit-adrese su od 00H do 7FH. Svi bajtovi u donjih 128 bajtova prostora mogu da se adresiraju ili direktno ili indirektno. Gornjih 128 (Slika 3.9) moe da se adresira samo indirektno. Gornjih 128 bajtova RAM-a su samo u ureajima sa 256 bajta RAM-a. Na Slici 3.10 prikazan je prostor registara specijalnih funkcija SFR (Special Function Register). SFR ukljuuje leeve porta, tajmere, kontrolu periferala itd. Ovi registri mogu da se adresiraju samo direktno, tj. pristupa im se direktnim adresiranjem.

16

Slika 3.10. Prikaz registara specijalne namene

3.5. PROGRAMSKI STATUSNI REGISTAR

Programski statusni registar (PSW) sadri bitove statusa koji ukazuju na trenutno stanje mikroprocesora. PSW, prikazan na Slici 3.11, smeten je u SFR prostor. PSW sadri bit prenosa (carry bit), bit pomonog prenosa (auxiliary carry bit) za BCD operacije, dva bita za selekciju banke registara, marker prekoraenja (overflow flag), bit parnosti (parity bit), i dva korisnika statusna markera. Bit prenosa, slui kao bit prenosa u aritmetikim operacijama, a takoe slui i kao akumulator za veliki broj logikih operacija. Bitovi RS0 i RS1 selektuju jednu od etiri registarke banke prikazane na Slici 3.8. Veliki broj instrukcija se obraa ovim lokacijama kao R0 do R7. Status bitova RS0 i RS1 u vreme izvrenja odreuje koja je od etiri banke selektovana.

17

Bit parnosti ukazuje na broj jedinica u akumulatoru: P=1 ukoliko akumulator sadri neparan broj jedinica, i P=0 ukoliko akumulator sadri paran broj jedinica. Prema tome, broj jedinica u akumulatoru plus P uvek je paran broj. Dva bita u PSW su neiskorieni i mogu da se upotrebe kao statusni bitovi opte namene.

Slika 3.11. PSW registar u Atmelovim flash mikrokontrolerima

3.6. TAKTOVANJE MIKROPROCESORA

Svi Atmelovi flash mikrokontroleri poseduju ugraeni oscilator, koji se moe da se koristi kao iz-vor za njegov mikroprocesor. Da bi se koristio ugraeni oscilator, treba povezati kristalni ili kera-miki rezonator izmeu pinova XTAL1 i XTAL2 mikrokontrolera, i da se poveu kondenzatori pre-ma masi, kao to je prikazano na Slici 3.12. Primer napajanja sa taktom iz spoljanjeg oscilatora je prikazan na Slici 3.13. Unutranji takt ge-nerator definie sekvence stanja koje ine mainski ciklus. Napomenuto je u uvodu kako mikroprocesor mikrokontrolera AT89S8253 moe da se taktuje frekvencijom. Vrednosti kondenzatora na Slikama 3.12 i 3.13 mogu da uzimaju vrednosti 3010 pF.

18

Slika 3.12. Korienje ugraenog oscilatora

Slika 3.13. Povezivanje oscilatora (A) i konfiguracija sa spoljanjim taktom (B)

3.7. MAINSKI CIKLUSI

Mainski ciklus ini sekvenca od est stanja, numerisanih od S1 do S6. Svako stanje traje dve pe-riode oscilatora. Prema tome, mainski ciklus traje 12 perioda oscilatora ili 1s ako je frekvencija os-cilatora 12 MHz. Svako stanje podeljeno je na dve faze.

19

3.8. STRUKTURA PREKIDA

Jezgro mikrokontrolera AT89S53 dozvoljava 6 interrupt vektora: 2 spoljanja prekida, 3 preki-da tajmera i jedan prekid serijskog porta, tako da ukupno ima 9 izvora prekida. Svaki od pomenutih izvora prekida moe da se pojedinano omogui/onemoguiti setovanjem ili resetotovanjem bita IE (Interrupt Enable) u SFR. Registar takoe sadri opti bit za dozvolu, koji moe da se resetuje kako bi se onemoguili svi prekidi odjednom.

3.8.1. Prioriteti prekida Svaki izvor prekida moe da se pojedinano programira na jedan od dva nivoa prioriteta, setova-njem ili resetovanjem bita prekida u SFR-u. Prekid nieg prioriteta moe se prekinuti prekidom vieg prioriteta, ali ne i sa drugim prekidom nieg prioriteta. Prekid vieg prioriteta ne moe se prekinuti sa bilo kojim drugim izvorom prekida. Ako dva prekida koji zahtevaju razliite nivoe prioriteta se pojave istovremeno, servisira se zahtev sa veim nivoom prioriteta. Ako se istovremeno pojave prekidi istog nivoa prioriteta, unutranja sekvenca odabiranja odreuje koji e se prekid servisirati. Prema tome, unutar svakog nivoa prioriteta sekvenca odabiranja odreuje drugu prioritetnu strukturu.

Slika 3.14. Sistem obrade prekida kod serije mikrokontrolera AT89s

20

4. PROGRAMIRANJE MIKROKONTROLERA AT89S8253

Da bi se izvrilo programiranje mikrokontrolera, neophodno je posedovati bootstrap loader, kao i odgovarajui softver. U daljem tekstu bie opisani loader-i SI-Prog i ISP Programmer, kao i softver-ski alati: IC-Prog, PonyProg, Atmel Microcontroller ISP software. Programiranje,itanje i brisanje sadraja EEPROM-a i flash memorije mikrokontrolera moe da se ostvari paralelno ili serijski. Ovde se neemo zadravati oko opisa jednog ili drugog naina programiranja, ve emo naglasiti da se serijsko programiranje ostvaruje preko tri pina mikrokontrolera: MOSI (P1.5), MISO (P1.6) i SCK (P.1.7), uz dovedeni takt, napajanje i masu (GND).

4.1. BOOTSTRAP LOADER SI-PROG

4.1.1 Osnovno kolo Ovde emo razmatrati jednostavan i jeftini (simple & low-cost) serijski bootstrap loader (Slika 4.1) za odreenu grupu Atmel-ovih mikrokontrolera (AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S8515, AT89S53, AT89S8252/8253, ATMEGA serija itd.) Zapravo, mogue je programirati bilo koji Atmel-ov mikrokontroler koji poseduje SPI (Serial Peripheral Interface), a to su svi Atmel-ovi mikrokontroleri novije generacije. Kao to se vidi na Slici 4.1, izbegnuto je korienje integrisanog kola serije 232 (ICL232, ST232, SP232, MAX232 itd.) za prilagoavanje naponskih nivoa 232-TTL, ve su za tu svrhu upotrebljene Zener diode (D6, D7 i D8). Ovo implicira da 6-pinski kabl za vezu izmeu serijskog porta raunara i load-era ne bude dui od 2 m. (Napomena: Umesto 6-pinskog kabla mogue je koristiti standardni komercijalni pin-to-pin kabl koji koristi svih 9 pinova serijskog porta.) S obzirom da su struje programiranja mikrokontrolera reda mA, signali serijskog porta TXD, DTR, DSR, RTS iskorieni su kao ulaz low-dropout linearnog regulatora napona LM2931-5, koje na izlazu daje stabilan napon od 5V. Preko ovog regulatora napaja se mikrokontroler prilikom upisa, ita-nja, verifikacije i brisanja (Write, Read, Verify, Erase). Dakle, ovaj bootstrap loader ne zahteva dovoenje eksternog napajanja. (Napomena: Umesto integrisanog kola LM2931-5 mogue je koristiti i neko drugo kolo iz serije low-dropout, kao na primer LM2936-5, LP2940-5, ali nikako ne treba koris-titi standardni regulator napona LM78L05.) Diode D10 i D11 (3mm, low-power) daju signaliziciju tokom procesa upisa, itanja i verifikacije (Write, Read, Verify) podataka u/iz mikrokontrolera

21

Slika 4.1. Osnovno kolo bootstrap loader-a SI-Prog

.

4.1.2. Povezivanje mikrokontrolera Na Slici 4.2 prikazani su pinovi dva mikrokontrolera serije 89S, koje treba povezati sa osnovnim kolom bootstrap loader-a SI-Prog. Da bi se izvrilo serijsko programiranje/itanje navedenih mikrokontrolera, potrebno je operisati sa samo 5 signala: Vcc (napajanje), RST (reset), SCK (pomeraki takt), MOSI (serijski ulaz) i MISO (serijski izlaz). Poslednja 3 signala ine serijski interfejs mikro-kontrolera. Naravno, neophodno je da se izmeu ulaza XT1 i XT2 prikljui kvarc od 8MHz i konden-zatori vrednosti 22 pF, to je i prikazano na slici. (Napomena: Ovde su navedeni osnovni pojmovi vezani za serijsko mikrokontrolera. Ukoliko italac eli da se detaljnije upozna sa mehanizmom mikrokontrolera, treba da pristupi sajtu www.atmel.com i da proita odgovarajue Kao to je saopteno, u prog-ramerskom smislu, AT89S8253 je gotovo mikrokontrolerom AT89S53) programiranje programiranja datasheet-ove. identian sa

22

Slika 4.2. Nain povezivanja sa serijom mikrokontrolera AT89S

4.1.3. Signali serijskog porta raunara

Pin 1 2 3 4 5 6 7 8 9

Name DCD TXD RXD DTR GND DSR RTS CTS RI

Description Data Carrier Detect Transmit Data Receive Data Data Terminal Ready System Ground Data Set Ready Request to Send Clear to Send Ring Indicator

Opis Detektor nosioca podatka Slanje podataka Prijem podataka Spremnost podataka terminala Masa Spremnost podataka Zahtev za slanje Brisanje u cilju iniciranja novog slanja Indikator zvona

23

4.1.4. Izgled tampane ploe Na Slici 4.3 prikazana je tampana ploa. Predviena je mogunost programiranja sledeih mik-rokontrolera: AT90S1200 i AT90S2323 (kuite DIP-20), AT90S2313 i AT90S2343 (kuite DIP-8), AT90S4414, AT90S8515, AT89S53 i AT89S8252/8253 (kuita DIP-40 i PLCC44). Pinovi ostalih mikrokontrolera su povezani sa posnovnim kolom slino kao i mikrokontroleri serije 89S, s izuzetkom to umesto signala RST koriste signal RST, kvarc od 4MHz i kondenzatore od 27 pF. Ovde se nismo bavili ostalim mikrokontrolerima, ve smo se koncentrisali samo na AT89S8253, odnosno AT89S53.

Slika 4.3. Dvoslojna tampana ploa bootstrap loader-a

4.2. SOFTVERSKI ALATI KOMPATIBILNI SA SI-PROG

Od softverskih alata, za programiranje mikrokontrolera serije AT89S mogu da se koriste PonyProg i ICProg (kompatibilni sa bootstrap loader-ima SI-Prog, JDM Programmer). Navedeni alati imaju mogunost itanja, upisa i verifikacije (Read, Write, Verify) sadraja mikrokontrolera. Naravno, tokom upisa mogue je softverski zatititi sadraje od neeljenog upisa i itanja (preko Lock Bit 1, 2, 3).U naednom tekstu bie opisana i ilustrovana oba softverska alata. 24

4.2.1. Softver IC-Prog Program IC-Prog se ne instalira na raunaru, ve se pokree direktno tanije klikom na fajl ICPROG.EXE (Slika 4.4).

Slika 4.4. Pokretanje programa IC-Prog

Ukoliko korisnik ima verziju Windows-a viu od Windows-a 98, odmah po startovanju progra-ma IC-Prog na ekranu e se pojaviti prozor sa upozorenjem, kao na Slici 4.5 . Razlog je to su kod svih Windows-a sa platformom NT zatieni portovi. Zbog toga je neophodno da se instalira odgovarajui drajver.

Slika 4.5. Upozorenje prilikom pokretanja programa

Korak 1. Instaliranje drajvera Ulaskom u podmeni Misc, koji se nalazi u meniju Options, ostvaruje se instaliranje/ukljuivanje drajvera icprog.sys (Settings Options Misc: Enable 2000/NT/XP), to je ilustrovano na Slici 4.6. Na taj nain omoguava se pristup serijskom portu raunara.

25

Slika 4.6. Instaliranje/ukljuivanje drajvera

Slika 4.7. Podeavanje parametara programa

26

Korak 2. Podeavanje hardverskih parametara Nakon to je instaliran/ukljuen drajver, program e se restartovati i ponudie opciju podeavanja hardverskih parametara, koji treba da budu postavljeni kao na Slici 4.7 . IC-Prog ima slinu konfigura-ciju kao JDM Programmer, signali su bez inverzije dok se komunikacija obavlja preko, na primer, serijskog porta COM1. Korak 3. Izbor mikrokontrolera i ulitavanje kda u bafer programa Najpre treba izabrati mikrokontroler (AT)89S53 (obeleeni padajui meni u gornjem desnom ug-lu osnovnog prozora programa), a potom uitati heksadecimalni kd klikom na opciju Open File iz me-nija File - to je ilustrovano na Slikama 4.8, 4.9 i 4.10. (Napomena: Heksadecimalni kd se dobija kompilacijom programa koji je napisan na nekom viem programskom jeziku (C, Pascal, Basic itd.) ili na asembleru. Vii programski jezici za mikrokontrolere imaju izvesne specifinosti u odnosu na stan-dardne programske jezike, ali ovde te specifinosti nee biti razmatrane.)

Slika 4.8. Upisivanje/uitavanje kda u bafer programa

27

Slika 4.9. Upisivanje/uitavanje fajla projekat.hex koji sadri kd

Korak 4. Programiranje mikrokontrolera Ulaskom u meni Command i startovanjem opcije Program All (Slika 4.10). Zapravo, proces pro-gramiranja podrazumeva da se sadraj bafera programa (Slika 4.9) upie u flash memoriju mikrokon-trolera. (Napomena: organizacija i kapacitet bafera korespondiraju sa 12Kb-nom flash memorijom mikrokontrolera AT89S8253, odnosno AT89S53.) Naravno program e postaviti pitanje, tj. mogunost da se izabere da li da otpone proces progra-miranja ili da se od njega odustane (Slika 4.11). Ukoliko se izabere programiranje, program e obrisati prethodni sadraj flash memorije mikrokontrolera i u nju prepisati sadraj bafera programa, iji se je-dan deo vidi na Slici 4.10. Napredak proces programiranja, a potom i verifikacije programiranja je ilustrovan na Slici 4.12. Ukoliko je proces uspeno okonan, na ekranu e se pojaviti prozor kao na Slici 4.14 u suprotnom, izgled prozora e biti kao na Slici 4.13. 28

Slika 4.10. Startovanje programiranja mikrokontrolera AT89S53

Slika 4.11. Mogunost da se odustane od programiranja

29

Slika 4.12. Proces programiranja, a zatim i verifikacije

Slika 4.13. Poruka nakon neuspenog programiranja

Slika 4.14. Poruka nakon uspenog programiranja

4.2.2 Softver PonyProg S obzirom da je softverski alat PonyProg veoma slian programu IC-Prog, ovde se neemo baviti detaljnim opisom, a bie opisane samo razlike i to na samom kraju opisa.

30

Ponyprog se vrlo lako instalira pokretanjem fajla ponyprog.exe, to je prikazano na Slici 4.15. Posle jednostavne procedure, program e biti instaliran i mogue je njegovo pokretanje preko Start menija Windows-a (Slika 4.16).

Slika 4.15. Instaliranje programa PonyProg

Slika 4.16. Pokretanje programa PonyProg

Ulaskom u podmeni Setup, koji se nalazi u meniju Options, ostvaruje se podeavanje hardverskih parametara programa PonyProg, to je ilustrovano na Slici 4.17.

31

Slika 4.17. Podeavanje parametara programa

Slika 4.18. Izbor serije mikrokontrolera (89S)

32

Slika 4.19. Izbor tipa mikrokontrolera (AT89S53 korespondira sa AT89S8253)

Slika 4.20. Proces kalibracije

33

Slika 4.21. Mogunost da se odustane od kalibracije

Slika 4.22. Poruka posle uspeno obavljene kalibracije

Slika 4.23. Upisivanje/uitavanje kda u bafer programa

34

Slika 4.24. Upisivanje/uitavanje fajla projekat.hex

Slika 4.25. Poruka posle uspeno obavljene kalibracije

35

Slika 4.26. Mogunost da se odustane od programiranja

Slika 4.27. Poruka ukoliko nije omoguen pristup mikrokontroleru preko porta

Slika 4.28. Poruka ukoliko nije programiranje nije uspeno

Slika 4.29. Poruka posle uspenog programiranja

Na Slikama 4.18 i 4.19 ilustrovan je izbor odgovarajueg mikrokontrolera preko padajuih menija u gornjem desnom uglu osnovnog prozora programa. Kalibracija programa (usklaivanje programa sa brzinom procesora i hard diska) ilustrovan je na Slikama 4.20, 4.21 i 4.22. 36

Proces programiranja mikrokontrolera prikazana je poev od Slike 4.23 do Slike 4.29. Tu su ujedno prikazane poruke koje se prikazuju prilikom neuspene konekcije (Slika 4.27), neuspenog (Slika 4.28) i uspenog programiranja (Slika 4.28).

4.3. BOOTSTRAP LOADER ISP PROGRAMMER

Na Slici 4.30 prikazano je osnovno kolo bootstrap loader-a ISP programmer preko kojeg moe da se poveu paralelni port raunara i bilo koji Atmel-ov mikrokontroler. Povezivanje mikrokontrolera serije 89S obavlja se kao na Slici 4.2. Za serijsko programiranje/itanje navedenih mikrokontrolera, potrebno je operisati sa samo 5 signala: Vcc (napajanje), RST (reset), SCK (pomeraki takt), MOSI (serijski ulaz) i MISO (serijski izlaz). Kao to je ranije istaknuto, poslednja 3 signala ine serijski interfejs mikrokontrolera. Naravno, neophodno je da se prikljue kvarc, kao i kondenzatori. Kao to se vidi na slici, kolo 74LS244 slui kao interfejs izmeu raunara i mikrokontrolera.

Slika 4.30. Osnovno kolo bootstrap loader-a ISP Programmer

37

4.3.1. Signali RS-232 interfejsa paralelnog porta raunara

Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Name GND TXD RXD RTS CTS

Description Ground Transmit Data Receive Data Request to Send Clear to Send

Data Set Ready DSR Signal ground SGND Data Carrier Detect DCD Test Test Secondery DCD secDCD Secondery CTS secCTS Secondery TXD secTXD TXsig timing Transmitter signal element timing secRXD RXsig timing Receiver signal element timing Secondery RTS secRTS Data Terminal Ready DTR sig_ quality_det Data Carrier Detect Ring Indicator RI Transmit Data TXD TXsig timing Transmitter signal element timing -

Opis Masa Prijem podataka Slanje podataka Zahtev za slanje Brisanje u cilju iniciranja novog slanja Spremnost podataka Masa Detektor nosioca podatka Test pin Test pin Nedodeljen Sekundarni DCD Sekundarni CTS Sekundarni TXD Tajming elementa signala predajnika Sekundarni RXD Tajming elementa signala prijemika Nedodeljen Sekundarni RTS Spremnost podataka terminala Detektor nosioca podatka Indikator zvona Slanje podataka Tajming elementa signala predajnika Nedodeljen

38

4.4. PROGRAM ATMEL MICROCONTROLLER ISP SOFTWARE

Ovde emo ukratko ilustrovati rad sa softverskim alatom Atmel Microcontroller ISP software (kompatibilan sa bootstrap loader-om ISP Programmer) i neemo ponavljati tekst koji je saopten prilikom opisa sofverskih alata IC-Prog i PonyProg.

Slika 4.31. Izbor mikrokontrolera se vri u meniju Options

Slika 4.32. Izbor mikrokontrolera AT89S53, koji korespondira sa AT89S8253

39

Slika 4.33. Izgled bafera pre uitavanja kda

Slika 4.34. Uitavanja heksadecimalnog kda

40

Slika 4.35. Izgled bafera posle uitavanja kda

Sledei koraci podrazumevaju eventualno podeavanje bitova zakljuavanja (Lock bits) kojima se softverski titi kd, programiranje (upis) kda (Write), verifikaciju (Verification) itd. Poslednje dve operacije se nalaze meniju Instructions. Posle toga, mogue je izabrati (selektovati) opciju Auto Program (meni Instructions) kojom e se sadraj bafera programa prepisati u mikrokontroler. Izgled heksadecimalnog kda za projekat nalazi se u narednom poglavlju ovog rada (u okviru glave Kd u asembleru).

41

5. REALIZACIJA STEPENINOG AUTOMATA

5.1. HARDVER

Za hardversku realizaciju stepeninog automata iskoriena je PCB koju je projektovao student J. Jovanovia. Njena Blok ema data je na slici 5.1. ema prikazuje kako su povezani mikrokontroler AT89S8253, ispravlja napona od 220V AC 50Hz na 5V DC (trafo je smesten van PCB ploce). Gornja i donja strana tampane ploe (layout) prikazane su na slikama 5.2. i 5.3. respektivno, dok je ema rasporeda komponenata gornje strane ploe prikazana na slici 5.4.

Slika 5.1. Blok ema elemenata smetenih na PCB ploi.

42

Slika 5.2. Layout gornje strane PCB-a

43

Slika 5.3. Layout donje strane PCB-a

44

Slika 5.4. Prikaz rasporeda elemenata odtampan na gornjoj strani PCB-a

Slika 5.5. Elektrina ema

45

Spisak upotrebljenih komponenata dat je u tabeli 1. . Komponente AT89S8253 QARTC 11.059MHz GREC 1A-250V Trafo 6V 500mA LED uta LED crvena elektrolitski kondenzator 470F/16V elektrolitski kondenzator 100F/16V elektrolitski kondenzator 2.2 F/63V Otpornik 330 1/4W Otpornik 100K 1/4W blok kondenzator 100nF/25V podnoja 40DIL raster ploa prikljuni kabl za 220V damperi 74HC541N LM 7805 Br.komada 1 1 1 1 8 1 1 1 1 12 1 3 1 2 1 1 2 1

Tabela 1. Spisak upotrebljenih komponenata

46

Slika 5.6. Izgled realizovanog hardvera

5.2. SOFTVERSKO REENJE

U daljem tekstu je priloen asemblerski kd koji predstavlja uputstvo za rad mikrokontrolera AT89S8253. Naime, mikrokontroler treba da uoi promenu stanja na ulaznom portu, a zatim da izvri odgovarajuu reakciju na tu promenu. U ovom, sluaju promena na ulazu se deava kada se pritisne neki od osam tastera, pri emu treba voditi rauna da se ulazi ovog mikrokontrolera okidaju logikom nulom. Reakcija na promenu na ulazu odgovara ukljuivanju odgovrajuih LED dioda. Prema zahtevima projekta, treba da se ukljui lampica iji redni broj odgovara rednom broju pritisnutog tastera, kao i po jedna lampica ispod i iznad. Uoavamo da za sluaj kada je pritisnut prvi taster ne postoji lampica ispod, a za sluaj kada je pritisnut posledjni taster (osmi) ne postoji lampica iznad. Sve ovo je realizovano u tablici stanja izlaza (u programu nazvana sa TABONOFF). Jo jedan od zahteva projekta je da se ukjuene signalne lampice iskljuuju nakon jednog minuta. Da bi se ovo realizovalo bilo je potrebno koristiti tajmer T1. Vremena iskljuena se uvaju u promenljivim, pri emu se za jedno vreme koriste dve promenljive (HI i LO), da bi smo poveali opseg brojajna instrukcija, i umesto 8-bitnog dobili mogunost da sauvamo 16-bitni broj. Softverski je podeeno da interupt tajmera bude na 1 ms. Asemblerski kd treba da se prevede u heksadecimalni kd preko odgovarajue kompilatora, od-nosno kompajlera. Za tu svrhu moe posluiti program Keil. Naravno, heksadecimalni kd nije sreen po bankama, meutim, to je zadatak softverskog alata (IC-Prog, PonyProg, Atmel Microcontroller ISP software itd.) 47

Opti algoritam

Kd u asembleru:______________________________________________________________________________ _ ; STEPENISNI AUTOMAT SA AT89S8253 STATUS GRUPA1 GRUPA2 GRUPA3 GRUPA4 GRUPA5 GRUPA6 GRUPA7 GRUPA8 EQU EQU EQU EQU EQU EQU EQU EQU EQU 20H STATUS.0 STATUS.1 STATUS.2 STATUS.3 STATUS.4 STATUS.5 STATUS.6 STATUS.7 30H 31H 32H 33H 34H 35H 36H 37H 38H 39H 3AH 3BH 3CH 3DH 3EH 3FH 40H 41H

SPRAT1HI EQU SPRAT1LO EQU SPRAT2HI EQU SPRAT2LO EQU SPRAT3HI EQU SPRAT3LO EQU SPRAT4HI EQU SPRAT4LO EQU SPRAT5HI EQU SPRAT5LO EQU SPRAT6HI EQU SPRAT6LO EQU SPRAT7HI EQU SPRAT7LO EQU SPRAT8HI EQU SPRAT8LO EQU VREMEHI EQU VREMELO EQU

;HARDWARE-ski zahtevi SPRAT1 EQU P2.0 SPRAT2 EQU P2.1 SPRAT3 EQU P2.2 SPRAT4 EQU P2.3 SPRAT5 EQU P2.4 SPRAT6 EQU P2.5 SPRAT7 EQU P2.6 SPRAT8 EQU P2.7

48

RSEG CODE START JMP GLAVNI ORG JMP START+TIMER1 IRQ

;*************************************************** ; inicijalizacija TIMER-a,reset.RAM-a i sl. ;*************************************************** GLAVNI MOV MOV INIC: IE,#00H SP,#70H ;zabrana svih interapta ;definisanje steka

MOV TMOD,#011H ;T1 = 16b_TIMER MOV TH1,#0FCH MOV TL1,#067H ;INT T1 NA 1mS SETB TR1 ;STARTUJE tajmer 1

MOV P3,#0 ;GASI SVE IZLAZE ;******* resetovanje rama ***** MOV R0,#08 RESR MOV A,#0 MOV @R0,A INC R0 MOV A,R0 CJNE A,#070H,RESR MOV IE,#088H ;DOZVOLA INT T1

;** POCETAK GLAVNOG PROGRAMA ** GP NOP JMP GP

;****** INTERRUPT TIMER-a 1 na 1mS ************* IRQ PUSH ACC PUSH PSW CLR C MOV A,VREMELO ADDC A,#01 MOV VREMELO,A MOV A,VREMEHI ADDC A,#0 MOV VREMEHI,A ; testira vremena iskljucenja grupa izlaza TSTOFF1 MOV A,VREMELO CJNE A,SPRAT1LO,TSTOFF2 MOV A,VREMEHI CJNE A,SPRAT1HI,TSTOFF2 CLR GRUPA1 49

MOV MOV MOVC CPL ANL

DPTR,#TABONOFF A,#0 A,@A+DPTR A P3,A

TSTOFF2 MOV A,VREMELO CJNE A,SPRAT2LO,TSTOFF3 MOV A,VREMEHI CJNE A,SPRAT2HI,TSTOFF3 CLR GRUPA2 MOV MOV MOVC CPL ANL DPTR,#TABONOFF A,#01 A,@A+DPTR A P3,A

TSTOFF3 MOV A,VREMELO CJNE A,SPRAT3LO,TSTOFF4 MOV A,VREMEHI CJNE A,SPRAT3HI,TSTOFF4 CLR GRUPA3 MOV DPTR,#TABONOFF MOV A,#02 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF4 MOV A,VREMELO CJNE A,SPRAT4LO,TSTOFF5 MOV A,VREMEHI CJNE A,SPRAT4HI,TSTOFF5 CLR GRUPA4 MOV DPTR,#TABONOFF MOV A,#03 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF5 MOV A,VREMELO CJNE A,SPRAT5LO,TSTOFF6 MOV A,VREMEHI CJNE A,SPRAT5HI,TSTOFF6 CLR GRUPA5 MOV MOV MOVC DPTR,#TABONOFF A,#04 A,@A+DPTR 50

CPL ANL

A P3,A

TSTOFF6 MOV A,VREMELO CJNE A,SPRAT6LO,TSTOFF7 MOV A,VREMEHI CJNE A,SPRAT6HI,TSTOFF7 CLR GRUPA6 MOV DPTR,#TABONOFF MOV A,#05 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF7 MOV A,VREMELO CJNE A,SPRAT7LO,TSTOFF8 MOV A,VREMEHI CJNE A,SPRAT7HI,TSTOFF8 CLR GRUPA7 MOV DPTR,#TABONOFF MOV A,#06 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF8 MOV A,VREMELO CJNE A,SPRAT8LO,TST1 MOV A,VREMEHI CJNE A,SPRAT8HI,TST1 CLR GRUPA8 MOV DPTR,#TABONOFF MOV A,#07 MOVC A,@A+DPTR CPL A ANL P3,A ; testira ulaze i ukljucuje grupu izlaza TST1 JB GRUPA1,PALI1 JB SPRAT1,TST2 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT1LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT1HI,A SETB GRUPA1 PALI1 MOV DPTR,#TABONOFF 51

MOV A,#0 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP1 TST2 JB GRUPA2,PALI2 JB SPRAT2,TST3 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT2LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT2HI,A SETB GRUPA2 PALI2 MOV DPTR,#TABONOFF MOV A,#01 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP2 TST3 JB GRUPA3,PALI3 JB SPRAT3,TST4 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT3LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT3HI,A SETB GRUPA3 PALI3 MOV DPTR,#TABONOFF MOV A,#02 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP3 TST4 JB GRUPA4,PALI4 JB SPRAT4,TST5 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT4LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT4HI,A SETB GRUPA4 PALI4 MOV DPTR,#TABONOFF MOV A,#03 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP4

52

TST5 JB GRUPA5,PALI5 JB SPRAT5,TST6 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT5LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT5HI,A SETB GRUPA5 PALI5 MOV DPTR,#TABONOFF MOV A,#04 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP5 TST6 JB GRUPA6,PALI6 JB SPRAT6,TST7 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT6LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT6HI,A SETB GRUPA6 PALI6 MOV DPTR,#TABONOFF MOV A,#05 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP6 TST7 JB GRUPA7,PALI7 JB SPRAT7,TST8 CLR C MOV A,VREMELO ADDC A,#060H MOV SPRAT7LO,A MOV A,VREMEHI ADDC A,#0EAH MOV SPRAT7HI,A SETB GRUPA7 PALI7 MOV DPTR,#TABONOFF MOV A,#06 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP7 TST8 JB GRUPA8,PALI8 JB SPRAT8,IZIRQ CLR C MOV A,VREMELO 53

ADDC MOV MOV ADDC MOV SETB

A,#060H SPRAT8LO,A A,VREMEHI A,#0EAH ;EA60h=60000dec => vreme=60sec SPRAT8HI,A GRUPA8

PALI8 MOV DPTR,#TABONOFF MOV A,#07 MOVC A,@A+DPTR ORL P3,A ;UKLJUCUJE ODGOVARAJUCE IZLAZE ZA TAST. SP8 IZIRQ MOV TH1,#0FCH MOV TL1,#067H ;INT T1 NA 1mS POP PSW POP ACC RETI ;*** TABLICA PALJENJA/GASENJA IZLAZA *** TABONOFF DB 11000000B ;0 DB 11100000B ;1 DB 01110000B ;2 DB 00111000B ;3 DB 00011100B ;4 DB 00001110B ;5 DB 00000111B ;6 DB 00000011B ;7 END START

54

6. ZAKLJUAK

U prvom poglavlju ovog rada opisana je primena mikrokontrolera kao i projektni zadatak i zahtevi njegove realizacije. U drugom poglavlju ovog rada (Prenos podataka) ukratko su opisani osnovni tipovi prenosa podataka (serijski i paralelni), izvreno je poreenje tipova prenosa i date su neke praktine realizacije. Naravno, akcenat je stavljen na paralelni prenos podataka. Tree poglavlje se bavi mikrokontrolerom AT89S8253. Najpre su ukratko navedene njegove karakteristike, a zatim su prikazani njegova unutranja struktura, organizacija memorije, naini programiranja itd. Istaknuto je da je po pitanju flash memorije i zatite (Lock bits) mikrokontroler AT89S8253 identian sa AT89S53, tako da softver predvien za programiranje AT89S53 odgovara mikrokontroleru AT89S8253. etvrto poglavlje je posveeno programiranju mikrokontrolera AT89S53, gde su prikazana dva bootstrap loader-a (SI-Prog, ISP Programmer) i tri softverska alata (programa) koji su kompatibilni sa njima kompatibilni (IC-Prog, PonyProg, Atmel Microcontroller ISP software). Konano, u petom poglavlju rada prikazano je hardversko i softversko reenje realizacije stepeninog automata pomou mikrokontrolera AT89S8253. Uz elektrinu emu je priloen kd u asembleru sa komentarima i dat je kratak opis rada.

55

7. LITERATURA

[1] Arhitekture i programiranje raunarskih sistema zasnovanih na familiji procesora 80x86, Mile K. Stojev, Branislav D. Petrovi, I izdanje, Elektronski fakultet, Ni, 1999. [2] Flash microcontroller Architectural Overview, http://www.atmel.com [3] Flash microcontroller Memory Organization, http://www.atmel.com [4] ATMEL, SPI AT Microcontrollers, Datasheets, http://www.atmel.com [5] Migration from AT89S8252/53 to AT89S8253, http://www.atmel.com [6] SI-Pprog - Serial Interface for PonyProg, http://www.lancos.com [7] IC-Prog, Version 1.05A, Bonny Gijzen, www.ic-prog.com, 2004. [8] PonyProg2000 - Serial Device Programmer, Version 2.06c Beta, [9] Claudio Lanconelli http://www.lancos.com, 2003. [10] Obrada prekida kod mikrokontrolera AT89S8253, Saa orevi, [11] Seminarski rad, Elektronski fakultet, Ni, 2007.

56