You are on page 1of 61

Univerzitet u Niu Elektronski fakultet Katedra za elektroniku predmet:Mikroprocesorski sistemi Profesor-Mentor: prof.

dr Mile Stoj ev

SEMINARSKI RAD
FUNKCISKI GENERATOR PROIZVOLJNIH TALASNIH OBLIKA REALIZOVAN POMO U MIKROKONTROLERA I D-LATCH-a

kandidati :Bokovi# Milan br.ind:11042 Aleksandar Petrovic br.ind:10323

NI, 2007

SADRAJ
1. Sadraj ..2 2. Opti uvod ......3 3. D- le# i D/A konvertor realizovan sa 2R-R otpornom mreom ......................................5 3.1 D/A konvertor sa otpornim mreama (sabiranje struja) ...........................................9 4. Uvod mikrokontroler ..................................................................................................14 5. Opis i analiza mikrokontrolera AT 89S8253 ... 15 5.1 O mikrokontroleru (blok dijagram, struktura #ipa) ...............................................16 5.2 Opis pinova .......................................................................................................... 18 5.3 Tajmeri i broja#i ................................................................................................... 22 5.3.1. Kontrola rada tajmera ................................................................................ 23 5.3.2. Tajmer 2 ......................................................................................................24 5.3.2.1. Kori&enje Tajmera 2 za generisanje brzine bauda ....................... .28 5.3.2.2 Kori&enje Tajmera 2 za programiranje izlaznog takta (clock-out). 29 6. Sistem prekida mikrokontrolera ............................................................................ .31 6.1. Izvori prekida .................................................................................................... 31 6.2. Maskiranje prekida ............................................................................................ 32 7. Napajanje .................................................................................................................... 34 8. Asembler .................................................................................................................... 38 9. Tipi ni aplikacioni programi .................................................................................. . 43 9.1 Softver (MEC UNP2 univerzalni programator) ................................................. 43 10. Zadaci za studente ................................................................................................... 51 11. Zaklju ak ........ .59 12. Literatura .......... . 60 13. Dodaci .. 61

-2-

2. OPTI UVOD
Cilj ovog projekta je da se generie signal proizvoljnog talasnog oblika. To se moe ostvariti na slede&i na#in. Naa veba se sastoji iz dva elementarna bloka: prvi blok #ini mikrokontroler firme ATMEL AT89S8253 sa celokupnom svojom strukturom koja &e biti obra'ena i prikazana u narednim poglavljima, dok drugi blok #ini D-le# firme TOSHIBA TC74HC373 sa D/A konvertorom realizovanim sa 2R-R vezom. Komunikacija izme'u ova dva bloka se ostvaruje preko dva porta koji su 8-bitni koji su povezani sa krimp konektorima koji su tako'je 8-bitni (slika 1). Port 1.0-1.7 se koristi za slanje 8-bitne digitalne re#i na osnovu koje se generie signal proizvoljnog talasnog oblika, dok se kod porta 2 koristi samo 2.0 za slanje signala dozvole LE (latch enable input). Port za OE (output enable) nam nije poteban jer smo ga uzemljili na samoj plo#i&i. Na koji na#in i za koje vrednosti sinala LE se alje digitalna re# na ulaz D-le#a &e biti kasnije prikazano u tabeli stanja.

Sl. 1. Blok ema

-3-

Celokupna ema naeg generatora proizvoljnih talasnih oblika je data na slici 2.

2R R 2R R 2R
P2.0 LE

R
P1.7 P1.6 P1.5 D7 D6 D5 D4 Q7 Q6 Q5

2R R 2R R 2R R 2R R 2R

Mikrokontroler AT89S8253

P1.4 P1.3 P1.2 P1.1 P1.0

Q4 D Le TC74HC373 AP D3 Q3 D2 D1 D0 Q2 Q1 Q0

2R

D/A konvertor

Sl. 2. Blok ema sa realizacijom D/A konvertora

-4-

3.D-LE I D/A KONVERTOR REALIZOVAN SA 2R-R OTPORNOM MREOM:


D-LE : D-le# TC74HC373 je brzi CMOS OCTAL LE( sa tri nivoa izlaza izra'enih od silikonskog gejta C2MOS tehnologije. Cilj je postici veliku brzinu operativnosti ekvivalentnu LSTTL vremenu podranu od strane CMOS sa smanjenom portonjom. Ovi 8-bitni D-tipa le#ovi su kontrolisani od stane LE signala dozvole na ulazu, i signala dozvole na izlazi OE. Kada je ulaz OE na visoko, oba izlaza su u stanju visoke inpedanse. Svi ulazi su opremljeni sa zatitnim kolom zbog stati#kog pranjenja ili transcidentnog napona. Speifikacija le#a TC74HC373 je: Najveca brzina................................... Reim smanjenje potronje:.............. Osetljivost na buku:........................... Simetri#na izlazna inpedansa:............ Izlazna kapacitivnost:......................... Ujedna#eno propagaciono kanjenje.. iroki opseg operativnog napona....... Pinovi i funcionalna kompatibilnost odgovaraju 74LS7373/533 Tabela stanja: Ulazi OE LE D H X X L L X L H L L H H Izlazi Q Z Qn L H

X: ne definisano stanje Z: visoka impeadana Qn: Q izlaz je le#ovan u trenutku kada kada je LE kada uzima vrednost niskog nivoa .

-5-

Razlikujemo nekoliko tipova ku&ita koje se koristi da bi se u njega upakovao ovaj D-le# TC74HC373. Ona se koriste u zavisnosti od tipa plo#ice koja se koristi ili od same tehnologije izrade plo#ice. One se razlikuju po obliku, teini i po tome da li koriste podnoje ili ne (za SMT tehnologiju). Mi koristimo le# sa ku&item (DIP 20PIN) Naj#ece koricenji tipovi kucista su: DIP 20PIN :

SOP 20PIN:

-6-

SOP 20PIN:

-7-

RASPORED PINOVA:

IEC logiki simboli:

Sistemski dijagram D-le#a:

-8-

3.1 D/A konvertor realozovan mreom 2R-R :


D/A konvertori slue za pretvaranje digitalnih u analogne signale. Oni su istovremeno i digitalna i analogna kola, poto imaju na svojim ulazima i izlazima i digitalne i analogne siganale. Ovi pretvara#i se izra'uju kao posebna integralna kola, a mogu da se ostvare i od diskretnih komponenti ili upotrebom drugih integrisanih kola. Digitalno-analogna konverzija je ustvari pretvaranje binarno zapisane brojne vrednosti sa n bita:

u analogni napon #ija je vrednost Va u voltima proporcionalno digitalnoj vrednosti Dn:

D/A konvertori se prave sabiranjem struja tako da su doprinosi svake struje srazmerni teini binarnih cifara zapisane digitalne vrednosti. Ako je binarna cifra nula, struja koja odgovara toj binarnoj cifri se mnoi sa nulom. Ako je binarna cifra L1, odgovaraju&a struja se mnoi sa jedan. D/A konvertor se moe praviti i pomo&u impulsno irinske modulacije tako da to je trajanje impulsa srazmerno digitalnom broju Dn, a trajanje periode srazmerno maksimalnoj vrednosti digitalnog broja (Dn) max.

-9-

D/A konvertor sa otpornim mreama(sabiranje struja):


D/A kovertor koji sabira struje sadri izvor referentnog napona Vr ili Vout, prekida#e koji se postavljaju u jedan od od dva mogu&a poloaja pod dejstvom binarne cifre bi i otpornu mreu koja provodi i sabira konponente struja koje su proporcionalne sa teinama binarnih cifara .

- 10 -

Primenom superpozicije, izra#unava se napon tevenenovog generatora. Doprinos bita bi tevenonovog generatora je :

gde su:

Napon ekvivalentnog generatora je: Ako su izabrani otpornici u mrei sa odnosom teina binarnih cifara:

onda je:

- 11 -

Napon na potroa#u:

Opisana teinska otporna mrea ima nedostatak u velikom rasponu upotrebljenih vrednosti: za n bita , odnos je 2n-1. Pored toga, promene vrednosti otpornosti (tolerancija) sa razli#itim doprinosima na vrednost izlaznog napona. Prethodni nedostaci se odklanjaju primenom lestvi#aste otporne mree. Lestvi#asta otporna mrea: Lestvi#asta otporna mrea ima osobinu da je dinami#ka otpornost izme'u svakog #vora, gde su R i 2R otpornici (slika 3.)

Sl. 3. Lestvi asta otporna mrea za n-bita

Ovaj rezultat vai za lestvi#astu otpornu mreu sa proizvoljnim briojem bita Na osnovu predhodnog rezultata sledi da se svaki napon: biVr polovi kada se prostire po #vorovima R-2R mree ako je Rp=)

- 12 -

Sledi da napon b0Vr daje doprinos tevenenovom generatoru od

Generalno, napon biVr doprinosi

tevenenovom generatoru vt . Primenom superpozicije, sledi:

Napon na potroa#u je:

- 13 -

4.UVOD MIKROKONTROLER
Dananji ivot je, nezamisliv bez razli#itih vidova komunikacije, informisanja, kontrole i dr. Sve vie procesi koji mogu da se kontroliu elektronskim putem, se time i podvrgavaju. Po#ev od medicine gde se kod dijagnostike bolesti pacijenata sve #e&e koriste elektronski ure'aji koji razli#ite vidove energije koriste za pobu'ivanje elektro senzora koji pobu'uju pokaziva#e za prikazivanje tih kontrolnih pregleda. Ne moemo da ne spomenemo automobilsku industriju gde se pocesi starta, upravljanja, kontrole i drugih procesa tako'e sprovode elekronskim ure'ajima. Uzaludno je pri#ati o tome koliko je elektronika prodrla u oblast ivota kad je u pitanju televizija, radio, telefonija, informacione tehnologije, internet, satelitske komunikacije i dr. Podseti&u samo na upotrebu elektronskih ure'aja u vojnoj, avionskoj, telekomunikacionoj i drugim oblastima industrije. U novije vreme sve #e&e se #ovek kao aktivni subjekat u izvrenju mnogih procesa, zapostavlja a ostavlja mesto da sami elektronski ure'aji upravljaju i kontroliu neke procese. Kao primer toga u vojnoj avijaciji se sve ce&e 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 pove&avao se broj procesa koji su mogli da se kontroliu ovim putem. Mikrokontroleri su relativno spori ali sa aspekta iskori&enja silicijuma po povrini-veoma-efikasni procesori, uglavnom namenjeni za upravlja#ko-intenzivne aplikacije. Karakterie ih mikroprogramska CISC bazirana arhitektura, to zna#i da je broj taktnih intervala za izvrenje razli#itih tipova instrukcija u velikoj meri promenljiv. Mo& izra#unavanja kao i broj memorijskih resursa je veoma ograni#en, a obim re#i stazepodataka relativno mali (obi#no 8 ili 16 bitova). Sa druge strane, kompleksnost skupa instrukcija prua odgovaraju&i programski interfejs, uklju#uju&i instrukcije za mnoenje i deljenje kao i ve&i broj memorijsko adresnih na#ina rada. Kao rezultat se dobija veoma kompaktan kd (programi su relativno mali). S obzirom da su mikrokontroleri namenjeni za upravlja#ko-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 ra#unarskim sistemima (kakvi su, recimo procesori iz familije Intel 8051, Motorola 6502, 6811, i dr., koji su bili popularni kao CPU-ovi u ku&nim ra#unarima) 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 sre&emo u sistemima za upravljanje klimom u kolima, a 32-bitni se primenjuju da obave sloene telekomunikacione funkcije u mobilnim bei#nim uredjajima.

- 14 -

5.OPIS I ANALIZA MIKROKONTROLERA AT89S8253


- Kompatibilan je sa Microsoft-51 procesorom - 12KB fle memorija - SPI serijski unos za u#itavanje programa - 10 000 ciklusa upis/brisanje - 2KB EEPROM memorija - 100 000 ciklusa upis/brisanje (64-bajtna korisni#ka matrica) - Napon napajanja od 2.7V do 5.5 V - Frekvencija od 0 do 24 MHz - Memorijsko zaklju#avanje u 3 nivoa - 256 x 8-bitni unutranji RAM - 32 I/O linije za programiranje - Tri 16-bitna Tajmer/Broja# - 9 generatora prekida - Poboljani UART serijski port sa centriranjem detekcije greke i automatskim prepoznavanjem adrese - Male snage napajanja - Uspostavljanje prekida u niskom reimu rada - Programabilni tajmeri - Dvostruki pokaziva# podataka - Isklju#ivanje pomo&u znaka (Power-off Flag) - Fleksibilni ISP programator (byte i page modovi) - Page mode: 64 byte/page za kodnu memoriju, 32 byte/page za memoriju podataka - 4-nivo poboljani kontrolor prekida - Programabilna x2 clock opcije - Unutranji Power-on Reset - 42-pin PDIP model ku&ita za redukovanje EMS emisije - Zeleni (Pb/Holide-free) opcija ku&ita AT89S8253 je processor visokih performansi, male potronje snage. To je CMOS 8-bitni mikrokontroler sa 12 KB fle memorijom i 2 KB EEPROM memorijom. Mikrokontroler je napravljena u Atmel korporaciji i kompatibilna je sa nadaleko poznatim i popularnim intelovom MCS-51 familijom mikrokontrolera (8052). Reprogramiranje memorije je mogu&e pomo&u SPI serijskog ulaza ili pomo&u konvencionalnog programatora memorija. Kombinovanjem razli#itih 8-bitnih CPU-a sa ugra'enom programibilnom fle memorijom na monolitnom #ipu. FLASH I EEPROM se mogu reprogramirati u sistemu preko SPI-porta. Atmel AT89S8253 je fleksibilan procesor koji je zahvaljuju&i niskoj ceni naao veliku primenu kod mnogih kontrolnih aplikacija i programa. AT89S8253 uklju#uje standardne osobine poput 12 KB fle memorije, 2 KB EEPROM, 256 B RAM memorije, 32 I/O linije, programibilni clock/tajmer, dvostruki pokaziva#, tri 16 bit-na clock/counter, 6 vektorske arhitekture prekida sa 2 nivoa, potpuni serijski ulaz, eksterni sopstveni oscilator i elektri#no kolo sata. U stvari AT89S8253 (uz

- 15 -

pomo& stati#ke logike) se koristi za operacije niskih frekvencija, potpomognut sa 2 softverska moda. IDLE mod zaustavlja CPU dok doputaju&i RAM, clock/counter, serijski port i sistem prekida se koriste za nastavak funkcionisanja. Niski mod #uva RAM sadraj ali i zamrzava oscilator isklju#uju&i sve ostale funkcije u kolu sve dok nai'e slede&i spoljanji prekid ili hardverski reset. FLASH memorija se moze menjati pomo&u serijskog SPI pristupa. Zadravanje Reset opcije SPI omogu&ava da memorija bude upisana ili pro#itana od stane bita koji su bili aktivni.

5.1 Blok dijagram AT89S53 jezgra

Sl.5.1. Struktura ipa mikrokontrolera AT89S53

Ovako sintetizovan mikrokontroler umnogome olakava posao projektanta hardvera, smanjuje ukupno hardversko okruenje i broj spoljanjih veza i na taj na#in pove&ava pouzdanost sistema. Na slici 5.2. prikazana je detaljnija arhitektura mikrokontrolera AT89S53. Ovde se vide komponente kao to su aritmeti#ko-logi#ka jedinica (ALU) sa parom registara (TMP1, TMP2) za privremeno upisivanje podataka, akumulator (ACC) sa pomo&nim registrom B, statusni registar (PSW), registar naredbi sa dekoderom, programski broja# (PC) i registar za inkrementiranje (pove&anje za 1) programskog broja&a (PC-incrementer).

- 16 -

Sl.5.2 Detaljna struktura mikrokontrolera AT89S53

Pomo#ni registar B, koji se naziva multiplikativnim registrom, s1ui za smetanje drugog operanda za aritmeti#ke operacije mnoenja i deljenja Posle izvrene operacije mnoenja iii deljenja u njemu se nalazi vii bajt rezultata mnoenja ili ostatak deljenja, respektivno Zajedno sa ACC pomo&ni registar B #ini registarski par. Pokaziva# steka (SP-Stack Pointer) s1ui za adresiranje vrha (najvie lokacije) stek memorije Ovaj registar se inkrementira prilikom upisivanja podataka u stek a dekrementira prilikom #itanja podataka iz ove memorije. DPTR prakti#no sadri dva registra: DPH(Data pointer High) i DPL(Data pointer Low). Njegov zadatak je da dri 16-bitnu adresu. Moe biti iskori&en kao 16-bitni registar i kao dva nezavisna 8-bitna registra. Obi#no se koristi za privremeno pam&enje podataka.

- 17 -

Mikrokontroler AT89S53 poseduje 4 prihvatna registra (LATCH-a) za #uvanje stanja izlaza na portovima P0, P1, P2 i P3 . Serial data bufer (SBUF) s1ui za upis podatka koji se a1je i #itanje podatka koji se prima preko serijske veze. Registarski parovi (TH0,TL0), (TH1,TL1) i (TH2,TL2) su 16-bitni broja#ki registri za broja# 0,1 i 2 respektivno. Registarski par (RCAP2H,RCAP2L) su capture registri za Timer 2 capture-mode. U ovom modu u odzivu transmisije AT89S52 T2EX pinu, TH2 i TL2 su kopirani u RCAP2H i RCAP2L. Timer 2 tako'e ima 16-bitni auto-reload mode i RCAP2H i RCAP2L zadravaju reload veli#inu za ovaj mod. Za kontrolu i upisivanje statusa prilikom prekida za tajmere, broja#e i za serijski prenos podataka koriste se registri specijalne namene IP, IE, TMOD, TCON, T2CON, T2MOD, SCON i PCON.

5.2 Opis pinova

- 18 -

Od 1 do 8 - Port 1: Ovaj port je 8-bitni dvosmerni ulazno-izlazni port sa neprekidnim unutranjim napajanjem. Izlazne posebne memorijske lokacije PORT1 mogu pobuditi 4 TTL logicka kola. Kada je 1 s upisana na port 1 pinovi su na visokom nivou uz pomo& unutranjeg neprekidnog napajanja i mogu se koristiti kao ulazi. Po#etna ulazna struja je Iul=150A zbog unutranjeg neprekidnog napajanja. Neki PORT 1 pinovi mogu imati i druge dodatne funkcije P.1.0 i P.1.1 mogu sluiti kao 2 spoljanja TIMER /COUNTER ulaza (P 1.0/T2) i 2. aktivni ulaz (P 1.1/T2 EX) CLOCK/COUNTER respektivno. Osim toga P 1.4, P 1.5, P 1.6, P 1.7 mogu sluiti za pomo&ne portove. DATA INPUT/OUTPUT i CLOCK INPUT/OUTPUT pinovi su prikazani u tabeli: Pin porta P1.0 P1.1 P1.5 P1.6 P1.7 Razne funkcije T2 (spoljni broja#ki ulaz do tajmera/broja#a 2), izlaz takta T2EX (triger hvatanja/punjenja tajmera/broja#a 2 i kontrola smera) MOSI (koriste se za programiranje u sistemu) MISO (koriste se za programiranje u sistemu) SCK (koriste se za programiranje u sistemu)

Ovaj port prihvata adrese niskih nivoa u toku programiranja i verifikacije FLASH memorije. 9 - Reset: Visok logi#ki nivo na ovom ulazu resetuje sve interne registre (registre dovodi u stanje 00000000), sa slede&im izuzecima: - P0, P1, P2 i P3 (izlazni registri svih spoljnih portova) se dovode u stanje 11111111 - SBUF se ne menja - SP se dovodi u stanje 00000111 (07h) - Neki bitovi u registrima IP, IE i PCON fizi#ki ne postoje, pa tako ne mogu ni da se resetuju

od 10 do 17 - Port 3: Ovo je 8 bit-ni dvosmerni I/O dvosmerni port sa neprekidnim unutranjim napajanjem. PORT 3 pomo&ne memorije mogu pobuditi 6 TTL ulaza. Kada se upisuju podaci na PORT3 ovaj PORT dosta energije vu#e od unutranjeg neprekidnog napajanja i tada se mogu koristiti ulazi. Kod ovih ulaza uz pomo& spoljanjeg napajanja struja je tipi#no 150 A zbog slabog unutranjeg napajanja. PORT 3 tako'e prihvata tako'e i pojedine kontrolne signale za programiranje FLASH memorije. PORT3 tako'e predstavlja i servis specijalnih promenljivih osobina AT89S 8253 koji su prikazani u tabeli. Ako se koristi kao univerzalni ulaz ili izlaz, po svemu je sli#an portu 1, ali na svakoj noici ima jo po neku specijalnu funkciju:

- 19 -

Pin porta P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

Razne funkcije RXD (serijski ulaz za asinhronu komunikaciju (mod 1, 2 i 3) ili serijski izlaz za sinhronu komunikaciju (mod 0)) TXD (serijski izlaz za asinhronu komunikaciju (mod 1, 2 i 3) ili taktni (clock) izlaz sa sinhronu komunikaciju (mod 0)) INT0 (ulaz za prekid (interapt) 0) INT1 (ulaz za prekid (interapt) 1) T0 (spoljnji ulaz tajmera 0) T1 (spoljnji ulaz tajmera 1) WR (signal za upis u spoljnu memoriju) RD (signal za #itanje iz spoljne memorije)

18 i 19 - X2 i X1: Izlaz i ulaz internog oscilatora. Ako se koristi kvarc-kristal za stabilizaciju u#estanosti oscilatora (to je naj#e&i slu#aj), on se vezuje za ove dve noice, s tim to na svaku noicu (prema masi) treba dodati po jedan kondenzator od 20-40pF. Ovo je potrebno da bi se spre#ilo oscilovanje na nekom viem harmoniku. Opseg uestanosti je od 1 do 12 MHz, a izra'uju se i mikrokontroleri koji rade i na znatno viim frekvencijama. 20 Masa Od 21 do 28 - Port 2 ili adrese od A8 do A15: Port 2 je 8 bit-ni dvosmerni I/O port sa unutranjim neprestanim napajanjem. Izlazne pomo&ne memorije PORT-a 2 mogu prihvatiti/napajati 6 TTL ulaza. Kada je 1 s na ulazu porta 2 on je na visokom nivou uz pomo& neprekidnog unutranjeg napajanja i mogu se koristiti kao ulazi. Kod ovih ulaza tipi#na ulazna stuja je 150 A zbog slabog unutranjeg neprekidnog napajanja. PORT 2 emituje adrese visokih naredbi u toku donoenja podataka od spoljanje memorije i u toku prihvatanja podataka iz spoljanje memorije koje koriste 16-bitne adrese(MOVX i DPTR). U ovom slucaju PORT2 kada emituje 1s koristi jako unutranje napajanje .U toku prihvatanja podataka iz spoljanje memorije tada PORT 2 korist 8bit-ne adrese (MOVX i RI). PORT2 tako'e ima i specijalne funkcije registra. PORT 2 tako'e prihvata adresne bitove visokog zahteva i neke kontrolne signale u toku programiranja i potvrde FLASH memorije. Ako se koristi mikrokontroler sa internim ROM-om i nema spoljnjeg ROM-a ili RAM-a, mogu se koristiti sve linije ovog porta kao univerzalni ulazi ili izlazi. Ako se koristi spoljna memorija, onda su ovo visoki adresni izlazi, od A8 do Al 5. U tom slu#aju, #ak i ako se koriste samo neke adrese, preostale noice ovog porta ne mogu da se koriste kao ulazi ili izlazi. NAPOMENA: Svi pinovi u PORT 1 i PORT 2 kao i pinovi PORT 3 (izuzev P32 INTO 1 P 3.3 INT 1 imaju sopstveno nepekidno napajanje koje je nedostupno u POWER-DOWN modu. Pinovi P 3. 2 (INTO) i P 3.3 (INT 1) su aktivni podjednako i u POWER DOWN modu ( da bi mogli da potrazuju prekide za izlaz iz POWER-DOWN modu) uz stalno ukljuceno unutrasnje napajanje.

- 20 -

29 - PSEN: Program Store Enable (aktiviranje spoljanjeg ROM-a): Omogu&ava #uvanje programa. PSEN #ita strobe za programiranje spoljanje memorije. Kada AT89S8253 izgubi kod od izlazne memorije programa, PSEN je aktivan dvostruko u toku svakog ciklusa maine izuzev 2PSEN u toku svakog prihvatanja podataka od spoljanje memorije. Normalno se ovaj izlaz spaja sa CS ili OE ulazom na spoljnom EPROM-u, jer ga mikrokontroler aktivira (dovodi na nizak nivo) svaki put kad #ita bajt iz programske memorije (za kontrolu spoljanjeg RAM-a se koriste druge noice). 30 ALE/PROG: Address Latch Enable (Upis u adresni registar): Omogu&ava blokiranje podataka. ALE/PROG je ustvari izlazni koji blokira niske bajt adrese (u toku opadaju&e ivice) u toku prihvatanja spoljanje memorije. Ovaj pin je tako'e ulazni impuls programa u (PROG) u toku programiranja FLASH-a. U normalnom radu ALE traje 1/6 frekvencije oscilovanja i moe biti upotrebljen za spoljanji counter i clock. Vano je me'utim da je ALE impuls presko#en u toku svakog prihvatanja podataka iz spoljanje memorije. ALE operacija moe biti onemogu&ena postavljanjem bita 0 AUX R SFR na lokaciju 8EH.Sa umetanjem bita, ALE je aktivan samo u toku MOVX ili MOVC instrukcije. Postavljanjem ALE disable, bit nema efekta na mikrokontroler u spoljanjem izvrnom modu. Da bi se sve funkcije spakovale u standardno ku&ite od samo 40 noica, pribegnuto je multipleksiranju nekih signala. Tako je port P0 dobio dve funkcije, izlazne adrese A0-A7 i ulaz/izlaz podataka D0-D7. Pre svakog o#itavanja programa iz spoljne memorije ili prozivanja RAM-a mikrokontroler na P0 prosle'uje nii bajt adresnog registra i aktivira izlaz ALE. Spoljni registar na visok nivo ALE memorie stanje P0, a izlazi ovog registra se koriste kao A0-A7. U drugom delu mainskog ciklusa mikrokontrolera P0 se koristi kao magistrala podataka (Data Bus). 31 - EA: External Access (Spoljni pristup): Ako je ovaj ulaz nizak, mikrokontroler &e sve instrukcije #itati iz spoljnog ROM-a. od 32 do 39 - Port 0, Adrese A0-A7 ili magistrala podataka: Sli#no portu P2, i port P0 moe da se koristi kao univerzalni ulaz i izlaz samo ako se ne koristi spoljna memorija Ako se koristi, tada je P0 adresni izlaz za A0-A7 kad je ALE visok, a magistrala podataka (Data Bus) kada je ALE nizak. 40 - Napajanje +5V.

- 21 -

5.3

Tajmeri/Broja#i

Mikrokonroler AT89S53 sadri tri tajmersko-broja#ka registra. Prva dva zajedni#ka su za sve modele iz familije 8051, dok je tre&i dodat modelima 8052. Ozna#avaju se kao tajmeri 0,1 i 2. Sva tri registra se mogu konfigurisati da rade i kao tajmeri i kao broja#i. Tajmer 0 i Tajmer 1 Kao to je pokazano na slici ispod, T0 sadri dva registra TH0 i TL0, koji slue za pam&enje vieg i nieg bajta 16-bitnih binarnih brojeva.

Na primer, ako je T0 = 0, oba registra &e imati vrednost 0. Ako T0 ima decimalnu vrednost (1000), TH0 vii bajt ima&e vrednost 3, a TL0 (nii bajt) ima&e decimalnu vrednost 232. To se vidi na slici ispod.

Formula za ra#unanje vrednosti 16-bitnog registra je vrlo jednostavna: THO * 256 + TL0 = T Za prethodni primer vai: 3 * 256 + 232 = 1000

- 22 -

Tehni#ki tajmeri su 16-bitni registri, pa prema tome njihova maksimalna vrednost je 65,535. Ako se ovaj broj prekora#i tajmer &e se automatski resetovati i njegova vrednost &e ponovo biti nula, tj. tajmer nastavlja da broji od nule. Ovo stanje se zove overflow ili prekora#enje. Ova dva tajmera mogu da rade kao broja#ki registri, ili registri koji mere zadati vremenski interval. Oba tajmera mogu raditi u #etiri radna rezima. Kada radi kao broja#, sadraj tajmerskog registra se uve&ava za jedan na svaku silaznu ivicu odgovaraju&eg ulaza mikrokontrolera (T0 za tajmer 0 i T1 za tajmer 1). Maksimalna frekvencija ulaznog signala koju broja# moe da prati je 24 puta manja od radnog takta mikrokontrolera. Kada radi kao tajmer, sadraj tajmerskog registra se uve&ava za jedan u svakom mainskom ciklusu. Jedan mainski ciklus traje 12 perioda radnog takta mikrokontrolera (Ako je radni takt 12MHz, registar se uve&ava svake mikrosekunde). 5.3.1. Kontrola rada tajmera Radom tajmera upravlja se pomo&u registara TMOD (sl.5.3.1) i TCON (sl.5.3.2). Gornja #etiri bita registra TMOD kontroliu rad tajmera 1, a donja #etiri rad tajmera 0. Bitovi TR1 i TR0 registra TCON odre'uju da li &e odgovaraju&i tajmer/broja# biti aktivan ili ne. Npr. ako je broja# 0 neaktivan on se ne&e uve&avati kada na ulazu T0 nastupi prelaz sa visokog na nizak nivo. Ovo je ilustrovano na slikama 5.3.2.1, 5.3.2.2 i 5.3.2.3. Na#in rada tajmera bira se kombinacijom bitova M1 i M0 registra TMOD.

Sl.5.3.1 Registar TMOD

- 23 -

Sl.5.3.2 Registar TCON

Bitovi C/T registra TMOD (u via ili nia #etiri bita u zavisnosti od tajmera) definiu da li odgovaraju&i tajmer radi kao tajmer (C/T=0) ili kao broja# (C/T=1). Bitovi GATE svojim stanjem 0 omogu&uju odgovaraju&em tajmeru da radi uvek kada je odgovaraju&i TR bit jednak jedinici. Ako je GATE=1, rad tajmera uslovljen je i stanjem na ulazu INT1 odnosno INT0 u zavisnosti od tajmera. Odgovaraju&i INT ulaz tada mora biti jedinica da bi tajmer radio. 5..2. Timer 2 Tajmer 2 je 16-bitni Tajmer/Broja# koji moe podjednako da radi i kao tajmer i kao broja#. Ovo se odre'uje selekcijom bita CP / T 2 u registru specijalne namene T2CON. Tajmer/Broja# registar dat je na sl. 5.3.2.1. Tajmer 2 se razlikuje od prethodna dva tajmera jer ovaj tajmer ima dva 8-bitna registra. TH2 i TL2 su vezana serijski i formiraju 16-bitni broja#ki registar. Druga dva, RCAP2H i RCAP2L tako'e su vezana serijski, i njihova glavna uloga zahvat capture sadraja broja#kog registra.

- 24 -

Sl. 5.3.2.1 Tajmer/Broja registar

Glavna prednost ove organizacije ogleda se u jednostavnoj zameni mesta podataka jednostavno instrukcijom i ne zahteva dodatne programske akrobacije. Tako'e i ovaj tajmer ima nekoliko razli#itih modova rada. Tajmer 2 se kontrolie registrom T2CON i u tabeli ispod objanjen je svaki njegov bit.

Sl. 5.3.2.2 T2CON-Tajmer/Broja kontrolni registar

Simbol TF2

EXF2 RCLK TCLK EXEN2 TR2 C / T2

Funkcija Indikator stanja prekora#enja tajmera 2 i on se automatski aktivira kada broja# detektuje prekora#enje. Da bi registar mogao da detektuje naredno prekora#enje, ovaj bit se mora izbrisati softverski. Ako su aktivirani bitovi RCLK=1 ili TCLK=1, prekora#enje nema efekta na TF2 Ovaj bit se automatski aktivira kada se desi transfer iz broja#a u bafer ili obrnuto. Ako je aktiviran, on generie prekid, ukoliko nije postavlja se bit DCEN u T2MOD-u. EXF2 se brie softverski. Prihvatni okidni impuls. Kada je na jedinici koristi impulse prekora#enja Tajmera 2, a kada je na nuli impulse prekora#enja Tajmera 1. Prenosni okidni impuls. Tako'e kada je na jedinici serijski port koristi impulse prekora#enja Tajmera 2 a kaka je na nuli impulse prekora#enja Tajmera 1. Spoljanje aktiviranje tajmera 2. Kada je EXEN2=1 vri se reloadovanje Tajmera 2 koje moe bit ili izazvano opadaju&om ivicom na spoljnjem ulazu T2EX. Kada je EXEN2=0 Tajmer 2 ignorie doga'aje na T2EX. Kontrola start-1/stop-0 za Tajmer 2. Logo#ka jedinica staruje rad tajmera. Selekcija tajmera ili broja#a. C / T 2 = 0 interni broja# (osc/12), C / T 2 = 1 eksterni broja# doga'aja (okidanje zadnjom ivicom).

- 25 -

CP / RL 2

Selekcija stanja Capture/Reload. CP / RL 2 = 1 javlja se captures stanje pri negativnom prenosu T2EX ako je EXEN2=1. Kada je CP / RL 2 = 0 javlja se auto-reload stanje, bez obzira na prekora#enje Tajmera 2 ili negativnom prenosu na T2EX kada EXEN2=1. Kada je bilo koji RCLK=1 ili TCLK=1, ovi bitovi su onemogu&eni i Tajmer 2 je prinu'en da auto-reload-uje prekora#enje na Tajmeru 2.

Tajmer 2 ima tri operativna moda: capture, auto-reload i generator brzine bauda koji su selektovani bitovima u T2CON registru a prikazani su na sl.3.2.2. RCLK+TCLK 0 0 1 X CP / RL 2 0 1 X X TR2 1 1 1 0 MODE 16-bit Auto-reload 16-bit Capture Baud Rate Generator (Off)

Sl. 5.3.2.3. Operativni modovi tajmera 2

Tajmer 2 kao izvor taktovanja moe da koristi sistemski clock, sistemski clock podeljen sa 12 i opadaju&u ivicu na spoljnem ulazu (T2 pin). U tkz. capture modu (modu 0) negativna ivica na spoljnjem ulaznom pinu T2EX izaziva prepisivanje trenutne vrednosti tajmera 2 (TH2 i TL2) u registre RCAP2H i RCAP2L. Ovaj mod je jako koristan kod aplikacija u kojima je potrebno meriti vremenske intervale do pojave nekog doga'aja. 16-bitni registri (TH2+TL2) dre broj od koga po#inje da se broji. Postavljanjem bita TR2 na jedinici u registru TCON startuje se tajmer, svaki dolaze&i impuls pove&ava vrednost za jedan. Kada se oba registra napune, impulsi prouzokuju prekora#enje (decimalna vrednost 65536), tada se resetuju i po#inju da broje od nule. Ovaj mod je opisan na slici 3.2.4. U modu auto-reload (Up or Down Counter) - (mod 1) Tajmer 2 se moe isprogramirati da radi kao up/down broja# ukoliko je konfugurisan u auto-reload reimu. Ovo mogu&nost je prozvana DCEN (Down Counter Enable) a ovaj bit se nalazi u specijalnom registru T2MOD. Kada je aktiviran bit DCEN, Tajmer 2 broji gore ili dole zavisno od vrednosti T2EX pina. Kada tajmer odbroji, postavlja se odgovaraju&i marker, tajmer se reload-uje tako to se u njegove registre prepisuje vrednost iz registara RCAP2H i RCAP2L i automatski restartuje. U modu 2, tajmer dva odre'uje brzinu serijskog prenosa podataka preko UART-a, jer on odre'uje stopu prenosa (baud rate). Naime, Tajmer 2 u ovom modu radi isto kao i u modu auto-reload, stim to po odbrojavanju se ne postavlja fleg niti se generie zahtev za prekid, ve& taj doga'aj slui kao takt za seriski prenos (i za slanje i za prijem nezavisno). U ovom modu opadaju&a ivica na spoljnjem ulazu T2EX nema nikakvog uticaja na serijski prenos, ve& taj pin moe biti iskori&en kao izvor zahteva za dodatni spoljni prekid. Blok dijagrami modova rada Tajmera 2 su prikazani na slede&im slikama:.

- 26 -

Sl 5.3.2.4. Tajmer 2 u Capture modu

Sl. 5.3.2.5. Tajmer 2 Auto Reload Mode (DCEN=0)

- 27 -

Sl. 5.3.2.6. Tajmer 2 Auto Reload Mode (DCEN=1) T2EX = 0/1 countin down/up

5.3.2.1.Kori%enje Tajmera 2 za generisanje brzine bauda : Kod AT89S53, postavljanjem TCLK i/ili RCLK u T2CON selektuje Tajmer 2 kao generator brzine boda (slika 5.3.2.1). Pod ovim uslovima, brzina bauda za prijem i slanje moe biti simultano razli#ita. Selektovanjem RCLK i/ili TCLK dovodi Tajmer 2 u njegov reim generatora brzine bauda , to je prikazano na slici ispod. Reim generatora brzine bauda je sli#an auto-reload reimu rada. U ovom slu#aju, brzine bauda u reimima 1 i 3 su reene od strane Tajmera 2 prema slede&oj jednakosti

- 28 -

Sl. 5.3.2.1.

Tajmer 2 moe biti konfigurisan za tajmer ili broja# operacije. U dosta primera, on je konfigurisan za tajmer operaciju ( CP / T 2 = 0 ). Normalno, tajmer pove&ava vrednost pri svakom mainskom ciklusu, ali operacija tajmera je razli#ita za Tajmer 2 kada se koristi kao generator brzine boda. Kao generator brzine bouda, Tajmer 2 pove&ava vrednost svakog vremenskog stanja. U ovom slu#aju jednakost je data kao:

gde je (RCAP2H, RCAP2L) sadraj registra RCAP2H i RCAP2L uzet kao 16-bitni ceo broj.

5.3.2.2 Kori%enje Tajmera 2 za programiranje izlaznog takta (clock-out):


50% taktovanih ciklusa moe biti programirano na izlaz pina P1.0 na portu 1, kao to je pokazano na slici . Ovaj pin, pored toga to je obi#no I/O pin, ima dve alternativne funkcije. Moe biti programiran za ulaz spoljnjeg takta za Tajmer/Broja# 2 ili za izlaz 50% taktovanih ciklusa od 61 Hz do 4MHz (za 16 MHz radnu frekvenciju).

- 29 -

Sl. Tajmer 2 u clock-out modu

Da bi konfigurisali Tajmer/Broja# 2 kao generator takta, bit C / T 2 (T2CON.1) mora biti obrisan i bit T2OE (T2MOD.1) mora biti postavljen. Bit TR2 (T2CON.2) startuje i stopira tajmer. Frekvencija izlaznog takta zavisi od frekvencije oscilatora i reloadovane vrednosti capture registara (RCAP2H, RCAP2L) Tajmera 2, kao to se vidi iz slede&e jedna#ine.

U reimu izlaznog takta, broja#i Tajmera 2 ne&e generisati prekid. Ovo ponaanje je sli#no kada se Tajmer 2 koristi kao generator bouda. Mogu&e je simultano koristiti Tajmer 2 kao generator brzine bauda i kao generator takta. Me'utim, frekvencije generatora brzine bauda i generatora izlaznog takta ne mogu biti odre'ene nezavisno jer oba generatora koriste RCAP2H i RCAP2L registre.

- 30 -

6. SISTEM PREKIDA MIKROKONTROLERA


U mikroprocesorskim sistemima #esto je potrebno istovremeno pratiti rad vie perifernih jedinica. To se moe posti&i neprestanim prozivanjem jedne po jedne jedinice, proveravaju&i njihova stanja. Ako se utvrdi da je dolo do neke promene na nekoj od tih periferija na koju treba reagovati, preduzimaju se odgovaraju&e akcije kao odgovor na promene. Na primer, nakon startovanja konverzije A/D konvertora neprekidno se vri #itanje stanja BUSY noice konvertora, koje ozna#ava da li je konverzija u toku ili je zavrena. Ako neko o#itavanje pokae da je konverzija zavrena, tada se u#ita odgovaraju&i podatak sa konvertora. U ovom slu#aju mikrokontroler je neprestano zauzet proverom stanja na liniji BUSY A/D konvertora. Drugi na#in pra&enja rada vie perifernih jedinica je da same jedinice jave kada je potrebno opsluivanje. Ta metoda se naziva metodom prekida, dok se prethodno opisana naziva metodom prozivanja (pooling). Dakle, kada se koristi metoda prekida, periferna jedinica posebnim signalom javlja kada je neophodna reakcija upravlja#kog ure'aja tj. mikrokontrolera. Taj signal se zove zahtev za prekidom odnosno interaptom (interrupt request). Slu#aj iz prethodnog primera bi se mogao reiti povezivanjem BUSY noice konvertora na odgovaraju&u INT (spoljanji prekid) noicu mikrokontrolera. Kada se BUSY deaktivira izaziva se prekid. Nakon to mikrokontroler uvai zahtev, prelazi na podprogram za opsluivanje prekida (u ovom slu#aju #itanje vrednosti konverzije), a nakon toga nastavlja sa izvravanjem programa gde je prekinut u trenutku stizanja zahteva za prekidom. U ovom slu#aju mikrokontroler se ne optere&uje proverom stanja na periferiji nego samo izvodi odgovaraju&u akciju kada je to potrebno. Iz ovoga je jasno da u ovom slu#aju mikrokontroler potroi mnogo manje vremena za opsluivanje periferija, zbog #ega i program moe biti mnogo efikasniji.

6.1.Izvori prekida
Kod ovog mikrokontrolera postoje est izvora prekida. Dva spoljanja ( INT0 i INT1 ), tri prekida tajmera (tajmer 0,1 i 2) i prekid serijskog porta. Sa ciljem da se koriste bilo koji od prekida u flash mikrokontroleru, treba preduzeti slede&a tri koraka. 1. Postaviti EA (bit dozvole) u IE registru na 1. 2. Postaviti odgovaraju&i pojedina#ni bit prekida u IE registru na 1. 3. Zapo#eti prekidnu servisnu rutinu na odgovaraju&oj adresi vektora prekida. Videti slede&u tabelu. Izvor prekida Adresa vektora Funkcija IE0 0003H Spoljanji prekid 0 TF0 000BH Prekid tajmera 0 IE1 0013H Spoljanji prekid 1 TF1 001BH Prekid tajmera 1 R1 i T1 0023H Prekid serijskog porta TF2 i EXF2(1) 002BH Prekid tajmera 2

- 31 -

Na slici ispod se moe videti da se prekid moe jednostavno onemogu&iti brisanje bita EA u istom registru.

Kao dodatak, za spoljanje prekide, pinovi INT0 i INT1 (P3.2 i P3.3) moraju biti postavljeni na 1, i u zavisnosti od toga da li se prekid aktivira nivoom ili prelazom, bitovi IT0 ili IT1 u TCON registru moraju se postaviti na 1. ITx = 0 okidanje nivoom ITx = 1 okidanje prelazom

6.2 Maskiranje prekida


Svaki od pomenutih prekida se moe dozvoliti ili zabraniti tj. maskirati. Kada je prekid maskiran, odgovaraju&i bitovi (TF0, TF1,TF2, IE0 i IE1) se postavljaju na 1, ali to ne izaziva prelazak na odgovaraju&i servisni potprogram. Kod AT89S53 svaki od izvora prekida se moe maskirati, to se kontrolie preko registra IE (interrupt enable, sl.). Kao to se vidi na sl., postavljanjem odre'enog bita na 1 odgovaraju&i prekid biva dozvoljen. U suprotnom je maskiran. Najvii bit EA (enable all) kontrolie maskiranje svih prekida. Ukoliko je on 0, svi prekidi su maskirani bez obzira na stanje bitova istog registra koji kontroliu maskiranost pojedina#nih izvora prekida.

- 32 -

IE: Registar dozvole prekida (bit-adresabilan) Ako je bit 0, odgovaraju&i prekid je onemogu&en. Ako je bit 1, odgovaraju&i prekid je dozvoljen EA EA --ET2 ES ET1 EX1 ET0 EX0 IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 ET2 ES ET1 EX1 ET0 EX0

Onemogu&ava sve prekide. Ako je EA=0, nema potvrde prekida. Ako je EA=1, svaki izor prekida se pojedina#noomogu&ava ili onemogu&ava postavljanjem njegovog bita dozvole. Nije implementirano, rezervisano za budu&u upotrebu.(1) Omogu&ava ili onemogu&ava prekora#enjetajmera 2 ili zahtevanje prekida. Omogu&ava ili onemogu&ava prekid serijskog porta. Omogu&ava ili onemogu&ava prekora#enje tajmera 1. Omogu&ava ili onemogu&ava spoljanji prekid 1. Omogu&ava ili onemogu&ava prekora#enje tajmera 0. Omogu&ava ili onemogu&ava spoljanji prekid 0.

- 33 -

7. Napajanje
Napajanje mikrokontrolera je ostvareno klasi#nom procedurom i komponentama kao i kod drugih kontrolera. Naizmeni#ni napon napajanja iz mreze 220V se preko transformatora tansformie na 9V pa zatim ispravlja preko greca i kondenzatora. Posle toga se signal vodi na stabilizator napona realizovan kao IC LM 7805 i takav signal se vodi na procesor i ostale digitalne periferne uredjaje i slui kao napajanje konstantnom vredno&u napona. Elektri#na ema izvora napajanja je data na slede&oj slici:

Elektri#na ema ure'aja sa svim detaljno opisanim komponentama kao i izgled tampane veze nae plo#ice date su na slede&im slikama:

- 34 -

- 35 -

- 36 -

Kao to je ve& bilo re#i, sva digitalna kola se napajaju preko izvora konstantnog napona +5V i pozitivan kraj ovog napona je doveden na 40-ti pin mokrokontrolera a masa je preko 20-og pina povezana na uzemljenje i zajedni#ku masu. Kada je re# o oscilatoru konstantne u#estanosti ovde je on povezan preko pinova 18 i 19 i ima vrednost 11.059MHz. Povezivanje mikrokontrolera i D-le#a ostvarili smo preko porta P1 i P2. Pinove od P1.0 do P1.7 smo iskoristili za povezivanje ulaza od D0 do D7 D-le#a. Dok smo pin P2.0 iskoristili za povezivanje ulaza LE na D-le#u. Zna#i, na ulaz D-le#a dovodimo 8 bita (D0-D7) koja &e sluiti za brojanje, dok na ulaz dozvole (LE) dovodimo takt. Iskoristi&emo Tajmer 2 mikrokontrolera i njegova dva 8-bitna registra kao tajmer i kao broja#. Kao broja# Tajmer 2 broja&e od 0 do 255 poto koristimo 8-bitni registar pa je 28=256. Da bi radio kao broja# koristi&emo capture reim rada a da bi radio kao tajmer koristi&emo clock-out reim rada. Pozitivan kraj napona napajanja, koji smo uzeli sa plo#ice, je doveden na 20-ti pin D-le#a, a masa je dovedena na 10-ti pin.

- 37 -

8. ASEMBLER
Asembler smo simulirali i kompajlirali u Keil uVision 3 kompajleru. Na osnovu asemblera napisanog u Keil-u generisali smo heksadecimalni fajl koji smo kasnije koristili za programiranje naeg mikrokontrolera pomo&u univerzalnog programatora, koga &e mo opisati malo kasnije. Da bi konfigurisali Tajmer/Broja# 2 kao generator takta, bit C / T 2 (T2CON.1) mora biti obrisan i bit T2OE (T2MOD.1) mora biti postavljen. Frekvencija izlaznog takta se ra#una po obrascu

Od ove frekvencije zavisi duina stepenika testerastog napona tj. duina periode. to je ve&a frekvencija to je perioda kra&a i odrnuto. Za primer koji smo odradili koristili smo frekvenciju izlaznog takta od 10 KHz. Vrednosti koje unosimo u registre izra#unavaju se iz gornje jedna#ine i iznose RCAP2H=FEH i RCAP2L=EBH. Vreme trajanja jednog takta je 1/f =1/10 000=0.1 ms, a trajanje periode izlaznog napona je T=256*0.1 ms=25.6 ms. Kao to smo ve& rekli sa pove&avanjem frekvencije ve&a je brzina rada tajmera a samim tim i perioda je kra&a. U startu se uradi deklaracija promenljivih tj. flegova i bajtova. Od 20H do 30H imamo bit adresabilne bajtove i oni se koriste ako imamo kasnije neke flegove tj. markere koje ce mo koristiti da ih tu smestimo. Name DAC Program segment code Definisali smo konstante koje kasnije koristimo za programiranje sekvenci (komande koje zadajemo) USPON EQU 1 MIRNO EQU 2 DOLE EQU 3 NANULU EQU 4 POCETAK EQU 5 SETTIMER EQU 6 CSEG AT 002BH // Naredba se pozicionira na toj memorijskoj lokaciji (lokacija na koju se postavlja registar programskog broja#a kad se javi prekid Tajmera 2), memorijska lokacija koja se odnosi na fle memoriju JMP Timer_2

- 38 -

Potprogram koji definie prekide kod Tajmera 2 TIMER_2: CLR TF2 // Brie marker za prekid

Generisanje signala za LE kod D-le#a SETB P2.0 CLR P2.0 // Postavlja bit0 na portu P2.0 // Odmah se zatim brie bit0 na portu P2.0

Dekrementira i ska#e ako nije R2=0 (R2 je pomo&ni registar i on odbrojava duinu sekvence) DJNZ R2,S0 deonice u okviru zadate sekvence // Registar R2 odre'uje duinu trajanja

Ako je kraj sekvence (R2=0) pozivamo potprogram nova_deonica CALL NOVA_DEONICA RETI // Kada je R2=0 poziva se #itanje nove deonice // Povratak iz prekida

Neto nalik case strukturi (u odnosu na R1) kojom se odre'uje koja je deonica trenutno aktivirana S0: S1: S2: S3: S4: S5: RET_I: CJNE R1,#USPON, S1 CALL PP1 CJNE R1,#MIRNO, S2 CALL PP2 CJNE R1,#DOLE, S3 CALL PP3 CJNE R1,#NANULU, S4 CALL PP4 CJNE R1,#POCETAK, S5 CALL PP5 CJNE R1,#SETTIMER, RET_I CALL SET_TIMER RETI // Sko#i ako nije jednako // Ako jeste izvri PP1 (potprogram)

// Zavravamo case strukturu i vra&amo se iz prekida

Posle ispitivanja R1 registra izvrava se neki od slede&ih potprograma PP1: PP2: INC P1 RET RET // PP1 rastu&i // PP2 mirno

- 39 -

PP3:

DEC P1 RET

// PP3 opadaju&i

Dodeljuje portu P1 nulu, vra&a ga na nulu PP4: RET Poto R0 registar koristimo kao indeksni registar u PP5 vra&amo na po#etnu lokaciju u memoriju u koju je upisana sekvenca koja se izvrava PP5: RET Potprogram kojim podeavamo trajanje Tajmera 2 tako to u capture registrima upisujemo vrednost od koje Tajmer 2 broji (to smo izra#unali iz jedna#ine gore) Podeavanje Tajmera 2 SET_TIMER: MOV RCAP2H,@R0 ukazuje registar R0 (indirektno adresiranje) INC R0 MOV RCAP2L,@R0 INC R0 MOV R2,#1 RET // Iz memorijske lokacije na koju // Pre'i na slede&u memorijsku lokaciju MOV R0,#020H MOV R2,#1 // PP5 na sekvenca od po#etka MOV P1,#0 MOV R2,#1 // PP4 vrati na 0

// Vrati se iz potprograma

Potprogram koji i#itava podatke o nova_deonica (ta treba slede&e da uradi) NOVA_DEONICA: lokacije R0 U registru R1 se smeta kod stanja sekvence tj. da li je uspon, mirno, opada, vra&a na nulu, vrati na po#etak sekvence ili podesi trajanje Tajmera 2 INC R0 za #itanje zadate sekvence iz RAM-a // Registar R0 slui kao indeksni registatr MOV A,@R0 MOV R1,A // Is#itavanje parametara za novu deonicu // R1 dobija vrednost iz memorijske

Ako je u R1 upisano uspon, mirno ili opada tada treba da se pro#ita jo jedan parametar koji odre'uje trajanje stanja, zato slui slede&a case struktura kojom se ispituje

- 40 -

da li je u R1 upisano jedno od ovih tri stanja, ako jeste onda se vri #itanje parametara u slede&e memorijske lokacije, ako nije zavrava se potprogram CJNE R1,#USPON, SD1 li je potrebno iscitati drugi parametar JMP READ_SP dole onda je potrebno pro#itati drugi parametar SD1: CJNE R1,#MIRNO, SD2 JMP READ_SP // Struktura kojom ispitujemo da // Ako je sekvenca uspon, mirno,

SD2: CJNE R1,#DOLE, RET_ND // Ako nije jedna od tri gore navedene sekvence onda nema drugog parametra pa treba presko#iti njegovo #itanje READ_SP: MOV A,@R0 MOV R2,A INC R0 RET

RET_ND:

Slede&i potprogram slui za unoenje sekvence START_V: MOV R0,#020H lokacija na kojoj se u RAM-u smeta sekvenca MOV R2,#1 izri samo jedna prekidna rutina // U R0 se smeta po#etna

// U R2 se nalazi broja# u ovom slu#aju treba da se

Programiranje sekvence koja se izvrava MOV @R0,#SETTIMER INC R0 MOV @R0,#0FFH Tajmera 2 INC R0 MOV @R0,#0F0H Tajmera 2 INC R0 MOV @R0,#USPON INC R0 MOV @R0,#15 INC R0 MOV @R0,#MIRNO INC R0 MOV @R0,#10 // Pre'i na slede&u mem lokaciju // Drugi parametar za nii registar // Postavimo vrednost Tajmera // Pre'i na slede&u mem lokaciju // Prvi parametar za vii registar

// Uspon traje 15 vremenskih intervala

// Mirno traje 10 vremenskih intervala

- 41 -

INC R0 MOV @R0,#DOLE INC R0 MOV @R0,#12 //Na dole traje 12 vremenskih intervala INC R0 MOV @R0,#NANULU // Traje jedan vremenski interval INC R0 MOV @R0,#POCETAK MOV R0,#020H RET Potprogram za inicijalizaciju Tajmera 2, upisujemo po#etne vrednosti u registre Tajmera 2 INIT_TIMER: MOV TH2,#0FEH MOV TL2,#0EBH MOV RCAP2H,#0FEH MOV RCAP2L,#0EBH SETB ET2 SETB EA SETB TR2 RET

// Omogu&ava prekide Tajmera 2 // Omogu&ava sve prekide // Start broja#a Tajmera 2

RSEG PROGRAM // Segment glavnog programa startuje od nulte memorijske lokacije u memoriji za program (fle memoriju) U glavnom programu inicijalizuje se Tajmer 2, postavljaju se po#etne vrednosti na portovima i upisuje se u RAM memoriju sekvence (poziva se potprogram koji upisuje sekvencu u RAM memoriju), zatim ulazi u beskona#nu petlju i #eka prekid Tajmera 2. MAIN: CALL INIT_TIMER CLR P2.0 MOV P1,#0 CALL START_V JMP $ END // Brisanje bita 0 porta P2 // Postavi port P1 u 00000000 // Programiranje sekvencu // Vrti se u beskona#nu petlju

- 42 -

9. Tipi#ni aplikacioni programi 9.1 Softver:


Za programiranje mikrokontrolera AT89S8253 koristili smo Univerzalni programmer UNP2 firme MEC. To je ure'aj koji slui za programiranje rali#itih tipova #ipova ,tako to ve& gotov heksadecimalni fajl koji smo dobili u keil-u (asembler) u#itava u #ip. Ovaj na pogramator se moe koristiti za za razli#ite tipove #ipova koji se mogu razlikovati po tipu ku&ia ili broju pinova,zato i ima univerzalno podnoje za njih.Ima mogucnost brisanja i upisa odgovarajuceg sadraja.

Generalni opis UNP2 : Mali, mocni i brzi univerzalni programator. DIL40 ZIF adapter ,ure'aji u DIL paketu do 40 pina su podrani bez adaptera. Konekcija sa PC paralelni port . Visoko brzinski IEEE 1284 izlazni port sa brzinom od 1Mb/s . Lak za koricenje u DOC i Windows 95/98/Me/NT/200/XP Adapter za napajanje i softver su sastavni delovi paketa. Ure'aj podrava programiranje za: EPROM:NMOS/CMOS,27xxx I 27cxxx serije, sa 8/16 irinom baze podataka, puna podrka za LV seriju(*1*2) EEPROM:NMOS*CMOS, 28xxx,28Cxxx,27EExxx serije, sa 8/16 bita irinom baze, puna podrka za LV seriju(*1*2) FLASH EPROM: 28Fxxx, 29Cxxx, 29Bxxx, 29LVxxx,29Wxxx, 49Fxxx serije sa 8/16 irinom baze podataka, puna podrka za LV seriju(*1*2)

- 43 -

SerijaE(E)PROM: 17Cxxx, 24Cxxx,25Cxxx,25Cxxx,59Cxxx,85Cxxx,93Cxxx serije , puna podrka za LV seriju(*1*2) Konfiguracioni PROM: 17xxx serije i LV serije. NV RAM, PLD serija. Mikrokontroleri MCS51, 87Cxxx,89Cxxx,89Sxxx,89LVxxx serije od Atmela,Atmel W and M,Intel,Philips,SST,paralelni i seriski(ISP) mod . Mikrokontroleri Scenixs: SX 18xxx, SX20xxx,SX28xxx serije.

Po#etni korisni#ki ekran izgleda ovako:

- 44 -

Slede&i korak je izbor ATMEL-ovog mikrokontrolera, a kako smo mi koristili AT89S8253 biramo njega. Sto je prikazano na slede&im slikama:

- 45 -

Posle izbora komponente sledi brisanje #ipa

- 46 -

Zatim sledi u#itavanje heksadecimalnog zapisa i asemblera u mikrokontroler.

- 47 -

Zatim sledi programiranje mikrokontrolera:

- 48 -

- 49 -

Izgled ekrana posle programiranja mikrokontrolera prikazan je gore na slici. Sada kada smo zavrili programiranje, vadimo #ip iz programatora i stavljamo ga u podnoje na maketi. Poto smo isprogramirali mikrokontroler uzimamo osciloskop i stavljamo sonde na izlaz D/A konvertora generisani oblik eljenog napona izgleda kao na slici:

- 50 -

10.ZADACI ZA STUDENTE
PRIMER 1. Generisati signal proizvoljnog talasnog oblika pomocu funkciskog geneartora. Koji ce da ima rastucu ivicu definisanu programskom sekvencom (konstantom) USPON sa naponom od 0.293 V, mirujucu sekvencu definisanu programskom konstantom MIRNO sa naponom od 0.195 V ,opadajucu ivicu definisanu programskom konstantom DOLE sa naponom 0.234 V i ivicu kojom se signal vra&a na nulu definisanu programskom konstantom NANULU sa naponom od 0.02V. Frekvencija izlaznog takta CLOCK OUT je 10 KHz. Napomena: Signal realizovati koris&enjem postojeceg asemblera , gde su naponi definisani vremenskim intervalima, a ne voltima. Za programiranje mikokontrolera koristiti unuverzalni programator UNP2 firme MEC. RAD: Name DAC Program segment code USPON EQU 1 MIRNO EQU 2 DOLE EQU 3 NANULU EQU 4 POCETAK EQU 5 SETTIMER EQU 6 CSEG AT 002BH JMP Timer_2 TIMER_2: CLR TF2 SETB P2.0 CLR P2.0 DJNZ R2,S0 CALL NOVA_DEONICA RETI

- 51 -

S0: S1: S2: S3: S4: S5: RET_I:

CJNE R1,#USPON, S1 CALL PP1 CJNE R1,#MIRNO, S2 CALL PP2 CJNE R1,#DOLE, S3 CALL PP3 CJNE R1,#NANULU, S4 CALL PP4 CJNE R1,#POCETAK, S5 CALL PP5 CJNE R1,#SETTIMER, RET_I CALL SET_TIMER RETI

PP1: PP2: PP3:

INC P1 RET RET DEC P1 RET

PP4: RET PP5: RET SET_TIMER:

MOV P1,#0 MOV R2,#1

MOV R0,#020H MOV R2,#1

MOV RCAP2H,@R0 INC R0 MOV RCAP2L,@R0 INC R0 MOV R2,#1 RET

- 52 -

NOVA_DEONICA:

MOV A,@R0 MOV R1,A INC R0 CJNE R1,#USPON, SD1 JMP READ_SP

SD1: SD2: READ_SP:

CJNE R1,#MIRNO, SD2 JMP READ_SP CJNE R1,#DOLE, RET_ND MOV A,@R0 MOV R2,A INC R0 RET MOV R0,#020H MOV R2,#1 MOV @R0,#SETTIMER INC R0 MOV @R0,#0FFH INC R0 MOV @R0,#0F0H INC R0 MOV @R0,#USPON INC R0 MOV @R0,#15 INC R0 MOV @R0,#MIRNO INC R0 MOV @R0,#10 INC R0 MOV @R0,#DOLE INC R0 MOV @R0,#12 INC R0 MOV @R0,#NANULU INC R0 MOV @R0,#POCETAK MOV R0,#020H RET

RET_ND: START_V:

- 53 -

INIT_TIMER:

MOV TH2,#0FEH MOV TL2,#0EBH MOV RCAP2H,#0FEH MOV RCAP2L,#0EBH SETB ET2 SETB EA SETB TR2 RET

RSEG PROGRAM MAIN: CALL INIT_TIMER CLR P2.0 MOV P1,#0 CALL START_V JMP $ END

- 54 -

PRIMER 2. Generisati signal proizvoljnog talasnog oblika pomocu funkciskog geneartora. Koji ce da ima rastucu ivicu definisanu programskom sekvencom (konstantom) USPON sa naponom od 1.953 V, mirujucu sekvencu definisanu programskom konstantom MIRNO sa naponom od 0.59 V ,ponovo rastucu ivicu sa naponom od 0.977 V ,opadajucu ivicu definisanu programskom konstantom DOLE sa naponom 2.34V i ivicu kojom se signal vra&a na nulu definisanu programskom konstantom NANULU sa naponom od 0.59V. Frekvencija izlaznog takta CLOCK OUT je 10 KHz. Napomena: signal realizovati koris&enjem postojeceg asemblera , gde su naponi definisani vremenskim intervalima, a ne voltima. Za programiranje mikokontrolera koristiti unuverzalni programator UNP2 firme MEC. RAD: Name DAC Program segment code USPON EQU 1 MIRNO EQU 2 DOLE EQU 3 NANULU EQU 4 POCETAK EQU 5 SETTIMER EQU 6 CSEG AT 002BH JMP Timer_2 TIMER_2: CLR TF2 SETB P2.0 CLR P2.0 DJNZ R2,S0 CALL NOVA_DEONICA RETI S0: S1: S2: CJNE R1,#USPON, S1 CALL PP1 CJNE R1,#MIRNO, S2 CALL PP2 CJNE R1,#DOLE, S3 CALL PP3

- 55 -

S3: S4: S5: RET_I:

CJNE R1,#NANULU, S4 CALL PP4 CJNE R1,#POCETAK, S5 CALL PP5 CJNE R1,#SETTIMER, RET_I CALL SET_TIMER RETI

PP1: PP2: PP3:

INC P1 RET RET DEC P1 RET

PP4: RET PP5: RET SET_TIMER:

MOV P1,#0 MOV R2,#1

MOV R0,#020H MOV R2,#1

MOV RCAP2H,@R0 INC R0 MOV RCAP2L,@R0 INC R0 MOV R2,#1 RET MOV A,@R0 MOV R1,A INC R0 CJNE R1,#USPON, SD1 JMP READ_SP

NOVA_DEONICA:

- 56 -

SD1: SD2: READ_SP:

CJNE R1,#MIRNO, SD2 JMP READ_SP CJNE R1,#DOLE, RET_ND MOV A,@R0 MOV R2,A INC R0 RET MOV R0,#020H MOV R2,#1 MOV @R0,#SETTIMER INC R0 MOV @R0,#0FFH INC R0 MOV @R0,#0F0H INC R0 MOV @R0,#USPON INC R0 MOV @R0,#100 INC R0 MOV @R0,#MIRNO INC R0 MOV @R0,#30 INC R0 MOV @R0,#USPON INC R0 MOV @R0,#50 INC R0 MOV @R0,#DOLE INC R0 MOV @R0,#120 INC R0 MOV @R0,#NANULU INC R0 MOV @R0,#30 INC R0 MOV @R0,#POCETAK MOV R0,#020H RET MOV TH2,#0FEH MOV TL2,#0EBH MOV RCAP2H,#0FEH

RET_ND: START_V:

INIT_TIMER:

- 57 -

MOV RCAP2L,#0EBH SETB ET2 SETB EA SETB TR2 RET RSEG PROGRAM MAIN: CALL INIT_TIMER CLR P2.0 MOV P1,#0 CALL START_V JMP $ END

- 58 -

11. ZAKLJU AK:


Na osnovu svega to je ovde ura'eno i prikazano slikama, programom (asemblerom) re#ima i blok emama, moe se zaklju#iti da je generator proizvoljnog talasnog oblika uspeno realizovan, to pokazuju i ponu'ena reenja kao rezultat proteklog rada. Studentima se daje na kori&enje par primera signala proizvoljnog talasnog oblika kod kojih se mogu menjati periode trajanja i izgled po elji, i koji se mogu nadogra'ivati po potrebi i koristiti u lab. vebama ili u druge edukativne svrhe.

- 59 -

11.LITERATURA:
RISC i SICS Procesori Pr.Mile Stojcev www.atmel.com Literature Atmel AT89S8253 Datasheet Atmel Microcontroller Instruction Set Toshiba TC74HC373AP Datasheet MEC UNP2 details specification www.atmel.com www.keil.com www.mecelectronic.com

- 60 -

12. DODACI Sva literatura koja je kori&ena u ovom projektu je data u elektronskoj verziji ovog projekta i dostupna je zainteresovanim kandidatima.

- 61 -

You might also like