stepenisni-automat.pdf

Upload: doktor90

Post on 30-Oct-2015

60 views

Category:

Documents


1 download

DESCRIPTION

stepenasti automat at89s53

TRANSCRIPT

  • UNIVERZITET U NIU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU

    REALIZACIJA STEPENINOG AUTOMATA POMOU

    MIKROKONTROLERA AT89S8253

    Studenti: Edin Bievac 10756 Milan Stefanovi 9800

    Ni, Januar 2008.

  • 1

    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

  • 2

    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.

  • 3

    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.

  • 4

    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)

  • 5

    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.

  • 6

    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.

  • 7

    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 di-rektno 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 ko-riste 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

  • 8

    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:

  • 9

    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.

  • 10

    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 MIKROKONTROLERA

    Ukratko, 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

  • 11

    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.

  • 12

    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, 16-bitne 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

  • 13

    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 8-bitnim 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 aplikaci-jama), 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 polovina Slike 3.3 prikazuje unutranje i spoljanje memorijske prostore dostupne kod Atmel-ovih flash mikrokontrolera. Slika 3.4 prikazuje konfiguraciju za pristupanje do 2Kb

  • 14

    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

  • 15

    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

  • 16

    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.

  • 17

    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.

  • 18

    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.

  • 19

    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.

  • 20

    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

  • 21

    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

  • 22

    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 programiranje mikrokontrolera. Ukoliko italac eli da se detaljnije upozna sa mehanizmom programiranja mikrokontrolera, treba da pristupi sajtu www.atmel.com i da proita odgovarajue datasheet-ove. Kao to je saopteno, u prog-ramerskom smislu, AT89S8253 je gotovo identian sa mikrokontrolerom AT89S53)

  • 23

    Slika 4.2. Nain povezivanja sa serijom mikrokontrolera AT89S

    4.1.3. Signali serijskog porta raunara

    Pin Name Description Opis

    1 DCD Data Carrier Detect Detektor nosioca podatka

    2 TXD Transmit Data Slanje podataka

    3 RXD Receive Data Prijem podataka

    4 DTR Data Terminal Ready Spremnost podataka terminala

    5 GND System Ground Masa

    6 DSR Data Set Ready Spremnost podataka

    7 RTS Request to Send Zahtev za slanje

    8 CTS Clear to Send Brisanje u cilju iniciranja novog slanja

    9 RI Ring Indicator Indikator zvona

  • 24

    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.

  • 25

    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.

  • 26

    Slika 4.6. Instaliranje/ukljuivanje drajvera

    Slika 4.7. Podeavanje parametara programa

  • 27

    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

  • 28

    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.

  • 29

    Slika 4.10. Startovanje programiranja mikrokontrolera AT89S53

    Slika 4.11. Mogunost da se odustane od programiranja

  • 30

    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.

  • 31

    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.

  • 32

    Slika 4.17. Podeavanje parametara programa

    Slika 4.18. Izbor serije mikrokontrolera (89S)

  • 33

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

    Slika 4.20. Proces kalibracije

  • 34

    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

  • 35

    Slika 4.24. Upisivanje/uitavanje fajla projekat.hex

    Slika 4.25. Poruka posle uspeno obavljene kalibracije

  • 36

    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.

  • 37

    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 (pome-raki 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

  • 38

    4.3.1. Signali RS-232 interfejsa paralelnog porta raunara

    Pin Name Description Opis 1 GND Ground Masa 2 TXD Transmit Data Prijem podataka 3 RXD Receive Data Slanje podataka 4 RTS Request to Send Zahtev za slanje

    5 CTS Clear to Send Brisanje u cilju iniciranja novog slanja 6 DSR Data Set Ready Spremnost podataka 7 SGND Signal ground Masa 8 DCD Data Carrier Detect Detektor nosioca podatka 9 - Test Test pin 10 - Test Test pin 11 - Nedodeljen 12 secDCD Secondery DCD Sekundarni DCD 13 secCTS Secondery CTS Sekundarni CTS 14 secTXD Secondery TXD Sekundarni TXD 15 TXsig timing Transmitter signal element timing Tajming elementa signala predajnika 16 secRXD Sekundarni RXD 17 RXsig timing Receiver signal element timing Tajming elementa signala prijemika 18 - Nedodeljen 19 secRTS Secondery RTS Sekundarni RTS 20 DTR Data Terminal Ready Spremnost podataka terminala 21 sig_ quality_det Data Carrier Detect Detektor nosioca podatka 22 RI Ring Indicator Indikator zvona 23 TXD Transmit Data Slanje podataka 24 TXsig timing Transmitter signal element timing Tajming elementa signala predajnika 25 - Nedodeljen

  • 39

    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

  • 40

    Slika 4.33. Izgled bafera pre uitavanja kda

    Slika 4.34. Uitavanja heksadecimalnog kda

  • 41

    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).

  • 42

    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.

  • 43

    Slika 5.2. Layout gornje strane PCB-a

  • 44

    Slika 5.3. Layout donje strane PCB-a

  • 45

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

    Slika 5.5. Elektrina ema

  • 46

    Spisak upotrebljenih komponenata dat je u tabeli 1.

    .

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

    Tabela 1. Spisak upotrebljenih komponenata

  • 47

    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.)

  • Opti algoritam

  • 48

    Kd u asembleru:

    _______________________________________________________________________________

    ; STEPENISNI AUTOMAT SA AT89S8253 STATUS EQU 20H GRUPA1 EQU STATUS.0 GRUPA2 EQU STATUS.1 GRUPA3 EQU STATUS.2 GRUPA4 EQU STATUS.3 GRUPA5 EQU STATUS.4 GRUPA6 EQU STATUS.5 GRUPA7 EQU STATUS.6 GRUPA8 EQU STATUS.7 SPRAT1HI EQU 30H SPRAT1LO EQU 31H SPRAT2HI EQU 32H SPRAT2LO EQU 33H SPRAT3HI EQU 34H SPRAT3LO EQU 35H SPRAT4HI EQU 36H SPRAT4LO EQU 37H SPRAT5HI EQU 38H SPRAT5LO EQU 39H SPRAT6HI EQU 3AH SPRAT6LO EQU 3BH SPRAT7HI EQU 3CH SPRAT7LO EQU 3DH SPRAT8HI EQU 3EH SPRAT8LO EQU 3FH VREMEHI EQU 40H VREMELO EQU 41H ;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

  • 49

    RSEG CODE START JMP GLAVNI ORG START+TIMER1 JMP IRQ ;*************************************************** ; inicijalizacija TIMER-a,reset.RAM-a i sl. ;*************************************************** GLAVNI MOV IE,#00H ;zabrana svih interapta MOV SP,#70H ;definisanje steka INIC: 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

  • 50

    MOV DPTR,#TABONOFF MOV A,#0 MOVC A,@A+DPTR CPL A ANL P3,A TSTOFF2 MOV A,VREMELO CJNE A,SPRAT2LO,TSTOFF3 MOV A,VREMEHI CJNE A,SPRAT2HI,TSTOFF3 CLR GRUPA2 MOV DPTR,#TABONOFF MOV A,#01 MOVC A,@A+DPTR CPL A ANL 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 DPTR,#TABONOFF MOV A,#04 MOVC A,@A+DPTR

  • 51

    CPL A ANL 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

  • 52

    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

  • 53

    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

  • 54

    ADDC A,#060H MOV SPRAT8LO,A MOV A,VREMEHI ADDC A,#0EAH ;EA60h=60000dec => vreme=60sec MOV SPRAT8HI,A SETB 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

  • 55

    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.

  • 56

    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.