69
ELEKTRONSKI FAKULTET NIS OBRADA PREKIDA KOD MIKROKONTROLERA AT 89S8253 NIS DJORDJEVIC SASA 10.05.2007g Br.Indeksa 9904

OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

  • Upload
    vantruc

  • View
    224

  • Download
    4

Embed Size (px)

Citation preview

Page 1: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

ELEKTRONSKI FAKULTET

NIS

OBRADA PREKIDA KOD MIKROKONTROLERA

AT 89S8253

NIS DJORDJEVIC SASA 10.05.2007g Br.Indeksa 9904

Page 2: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

SADRZAJ 1.Sadrzaj………………………………………………………………………………….1 2.Uvod…………………………………………………………………………………….2 3.Opste o mikrokontrolerima i mikroprocesorima……………………………………3 -Sta su mikrokontroleri? -Mikrokontroleri:tipovi arhitektura i blok sema -Mikrokonroleri u odnosu na mikroprocesore -Struktura mikrokontrolera -Struktura mikroprocesora -Razlika izmedju mikrokontrolera i mikroprocesora 4.Opis i analiza mikrokontrolera AT 89S 8253……………………………………….13 -O mikrokontroleru -Opis pinova -Memorija podataka -Analiza blok seme 5.Opis prekida kod mikroprocesora ………………………………………………….22 -Izvori prekida -Maskiranje prekida -Prioriteti prekida -Sta se desava kad se prekid desi? -Sta se dogadja kad se prekid zavrsi? -Serijski prekidi -Najcesci problemi sa prekidima 6.Princip rada periferije……………………………………………………………… 33 -LCD displej -Oscilator stabilne ucestanosti -Napajanje 7.Tipicni aplikacioni programi……………………………………………………… 41 -Softver -Asembler za date programe 8.Vezbanja………………………………………………………………………………55 9.Zakljucak …………………………………………………………………………… 66 10.Literatura ……………………………………………………………………………67 11.Dodaci ……………………………………………………………………………… 68

1

Page 3: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

UVOD

Danasnji zivot je, slobodno mozemo reci nezamisliv bez razlicitih vidova komunikacije,informisanja,kontrole i dr.Naime ,sve cesce se svi procesi koji mogu da se kontrolisu elektronskim putem,se time i podvrgavaju.Pocev od medicine gde se kod dijagnostike bolesti pacijenata sve cesce koriste medicinsko elektronski uredjaji koji razlicite vidove energije koriste za pobudjivanje elektro senzora koji pobidjuju pokazivace za prikazivanje tih kontrolnih pregleda.Zatim, nemogu a da ne spomenem automobilsku industriju gde se pocesi starta,upravljanja,kontrole i drugih procesa takodje sprovode elekronskim uredjajima.Mislim da je uzaludno pricati o tome koliko je elektronika prodrla u oblast zivota kad je u pitanju televizija,radio,telefonija,informacione tehnologije,internet,satelitske komunikacije i dr. kada su danas svi svesni toga.Podseticu samo na upotrebu elektronskih uredjaja u vojnoj,avionskoj,telekomunikacionoj i drugim oblastima industrije.Navescemo jos jedan primer gde je danasnja elektronika nasla primenu a to je recimo u astronomiji i ispitivanju porekla i sastava drugih tela u Kosmosu.U novije vreme sve cesce se covek kao aktivni subjekat u izvrsenju mnogih procesa sve cesce zapostavlja a ostavlja mesto da sami elektronski uredjaji upravljaju i kontrolisu neke procese.Kao primer toga u vojnoj aviaciji se sve cesce upotrebljavaju bez pilotne letilice koje same kontrolisu,snimaju,izvrsavaju zadatke tamo gde je to potrebno. Svi ovi procesi sa stanovista obicnih ljudi jesu deo elektronike ali sa stanovista ljudi koji su malo vise upucenu u oblast elektronike se mogu podeliti na razne pod oblasti.Ali sve ovo o cemu sam do sada pricao ne moze se zamisliti bez sistema kao sto su memorijski prostori,procesori,mikrokontroleri,displeji,indikatori drugih vrsta i dr.Svima nama odvuku paznju nocne reklame u velikim gradovima pa jos pored toga ako imaju jos neke detalje koji su pokretni ne mozemo a da se ne pitamo kako sve to radi.Pitamo se i kako su ostvareni procesi ispisivanja gradskih autobuskih stanica na displeju u autobusu,ili kako se kontrolisu i procesi kod savremenih bilborda,reda voznje na aerodromima,povoljnosti za kupce u supermarketima,ispisivanja poruka na displeju telefona i mnogi drugi primeri upotrebe.Sve ovo je nezamislivo bez mikrokontrolera koji ce sve ovo formirati,kontrolisati i na kraju pobuditi displeje koji ce to prikazati korisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su mogli da se kontrolisu ovim putem.Koliko god nama izgledali slozeno svi ovi procesi moraju da sadrze neke osnovne sisteme koji naravno u zavisnosti od zahteva korisnika mogu izgledati komplikovano.Mi cemo u sledecim sadrzajima tekstova detaljno opisati sisteme mikrokontrolera i prikazivanja svih tih detalja tj.informacija na displeju.

2

Page 4: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

OPSTE O MIKROKONTROLERIMA

Kao sto sam rekao vecina danasnji kontrolnih procesa je nezamislivo bez mikrokontrolera.Mikrokontroleri su relativno spori ali sa aspekta iskoriscenja silicijuma po povrsini-veoma-efikasni procesori, uglavnom namenjeni za upravljacko-intenzivne aplikacije. Karakterise ih mikroprogramska CISC bazirana arhitektura, sto znaci da je broj taktnih intervala za izvršenje različitih tipova instrukcija u velikoj meri promenljiv. Moć izračunavanja kao i broj memorijskih resursa je veoma ograničen, a obim reči staze-podataka relativno mali (obično 8 ili 16 bitova). Sa druge strane, kompleksnost skupa instrukcija pruža odgovarajući programski interfejs, uključujući instrukcije za množenje i deljenje kao i veći broj memorijsko adresnih načina rada. Kao rezultat se dobija veoma kompaktan kôd (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 nešto izmenjenoj formi kao mikrokontroleri kod embedded sistema. Bez sumnje najvažniji faktor koji je imao dominantni uticaj na masovno korišćenje računara u industriji predstavlja razvoj mikroprocesora. Mikroprocesor je u suštini računar na čipu. Da bi obavili koristan zadatak, sistemi zasnovani na mikroprocesorima prve generacije zahtevali su ugradnju velikog broja dodatnih komponenata (oscilatore, adresne lečeve, lečeve za podatke i druga LSI kola relativno male složenosti). Kasnije, napredak na polju VLSI tehnologije doveo je do proizvodnje mikroračunarskih sistema kod kojih su sva neophodna kola bila ugradjena (embedded) u relativno mali broj pratećih integrisanih kola (tipično su to bili integrisane CPU jedinice relativno velike složenosti, kontroleri prekida, DMA kontroleri, tajmeri, UART-i, programibilni paralelni periferni interfejsi (PIA), i dr.). Kao plod dalje integracije nastaju jedno-čipni mikrokontroleri koji u sebi imaju ugradjeno analogni i digitalni ulazno-izlazni podsistem, tajmere i brojače, LCD drajvere i druge logike.Time su ova kola, takoreči bez dodatnog hardvera, sada bila u stanju da obavljaju relativno složene upravljačke funkcije koje se odnose na rad sistema u realnom vremenu. Primeri ovakvih tipova mikrokontrolera su Intel 8051 i 8096, Motorola MCH 68HC11, Microchip PIC 18F1x20, i dr. Ovi čipovi su pre svega razvijeni

3

Page 5: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

za potrebe automobilske industrije, procesne industrije, elektromedicine, telekomunikacija, robe široke potrošnje, i td. 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š mašinama, 16-bitne srećemo u sistemima za upravljanje klimom u kolima, a 32-bitni se primenjuju da obave složene telekomunikacione funkcije u mobilnim bežičnim uredjajima. Osnovne karakteristike mikrokontrolera su: 1. usadjeni (built-in) ROM- najčešće kapaciteta 4 kB na samom čipu u kome se čuva

upravljački program, 2. usadjeni RAM- najčešće kapaciteta 128 B, koji se koristi za čuvanje privremeno

promenljivih, 3. CPU koji je, zbog efikasnijeg korišćenja ograničene programske memorije, u stanju da i zvrsava instrukcije koje manipulisu sa jedinicnim bitovi 4. veliki broj mikrokontrolera ima usadjeno koprocesor Boole-ovog tipa. Ovaj koprocesor zajedno sa CPU-om ima mogućnost da pojednostavljeno implementira Boole-ove izraze koji se veoma često javljaju u upravljačkim aplikacijama, 5. mikrokontroleri imaju usadjene ulazno-izlazne portove koji se koriste za efikasno upravljanje, kao i jednostavnu i laku interakciju sa spoljnim uredjajima. U daljem tekstu ukazaćemo na osnovne karakteristike mikrokontrolera bez ulaženja u detalje koji se odnose na specifičnosti njihovih realizacija.

Šta su mikrokontroleri?

Svi današnji računari su realizovani od istih gradivnih blokova. To su centralni procesor ili CPU, memorijski podsistem, ulazno-izlazni podsistem, generatora taktne pobude, i sistemska magistrala koja medjusobno povezuje pomenute gradivne blokove. Sistemska magistrala se sastoji od adresne magistrale, magistrale podataka, i upravljačke magistrale. Najveći broj standardnih računara, kakav je na primer PC mašina, se smešta u jedistveno kučište. Periferije kakvi su štampač, displej, skener, tastatura, miš, i druge se povezuju na računarski sistem preko konektora koji su montirani na kučištu. Druge sistemske komponente kakvi su diskovi, memorije proširenja, mrežne kartice i dr., su locirane u samom kučištu ili pak na osnovnoj ploči (motherboard) računara. Mikroprocesor je integrisano kolo ili čip lociran na osnovnoj ploči koje u suštini

4

Page 6: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

predstavlja CPU računarskog sistema. Uglavnom svet PC mašina je taj koji je bio glavni pokretač razvoja sistema baziranih na mikroprocesorima. Imajući u vidu ovakve zahteve za mikroprocesore kažemo da su u novije vreme postali relativno specijalozovane komponente, posebno pogodne (prilagodjene) za veoma brzo manipulisanje podacima. No kod odredjenih aplikacija veoma često je neophodno ugraditi odredjeni iznos lokalnog procesiranja na licu mesta procesa. Tako na primer, automat za izdavanje karata na autobuskim stanicama treba da ima odredjeni nivo autonomnosti u radu (pameti) tako da za unete podatke preko lokalne tastature sam izračuna cenu karte i izda je. Zbog ovakvog načina rada računarske mašine opšte namene ne predstavljaju dobro rešenje (izbor) za ovakav tip aplikacije, prvenstveno zbog velikog gabarita (dimenzije) mašine, a takodje i zbog visoke cene. Upravo su ovo idealne aplikacije za mikrokontrolere. Nasuprot mikroprocesorima, mikrokontroleri su više orijentisani ka postizanju superiornijih performansi kod aplikacija namemjenih upravljanju, bezbednosti i pouzdanosti u radu. Imajući u vidu da je cena uredjaja baziranih na mikrokontrolerima od izuzetne važnosti za krajnjeg korisnika, mikrokontroleri su integrisali na čipu veliki broj standardnih periferala, kontrolere raznih tipova uredjaja, kao i memoriju. Na osnovu prethodnog mogli bi da kažemo sledeće: Mikrokontroler je računar na čipu. On sadrži skoro sve osnovne gradivne blokove računarskog sistema (CPU, ROM, RAM, U/I periferije tipa AD i DA konvertore, serijske komunikacione interfejse (UART), paralelne interfejs portove (PIA), tajmere/brojače, LCD drajvere, i dr.) koje se mogu integrisati na jedinstvenom čipu. Danas su mikrokontroleri najviše prodavan tip procesora. Ne bez razloga projektanti sistema relativno male složenosti kažu da su to čipovi upravo projektovani po njihovoj meri, tj. čipove o kojima sanjaju. Nasuprot mikroprocesorima, cena mikrokontrolera je veoma niska (do nekoliko dolara u odnosu na cenu od stotinu dolara kakva je cena mikroprocesora). Za odredjene aplikacije niska cena mikrokontrolera je idealno rešenje. Taktna frekvencija na kojoj rade, obim adresibilne memorije, i obim podataka sa kojima manipulišu varira od jednog mikrokontrolera do drugog, šta više i kod jednog istog proizvodjača, tako da je posao projektanta da izabere najbolji mikrokontroler za datu CPU koji je, zbog efikasnijeg korišćenja ograničene programske memorije, u stanju da izvršava instrukcije koje manipulišu sa jediničnim bitovima,aplikaciju. Drugi važan razlog korišćenja mikrokontrolera, u odnosu na PC mašinu, predstavlja njegova kompaktnost koja se može iskazati konstatacijom: Računar na jednom čipu. Svi mikrokontroleri imaju usadjenu memoriju na čipu kao i veći broj ulazno-izlaznih interfejs linija. Veliki broj mikrokontrolera poseduje AD i DA konvertore, impulsno-širinski modulisane (PWM) generatore, sofisticirani sistem prekida, veći broj seriskih i paralelnih ulazno-izlaznih portova, fleksibilni sistem tajmer-brojač dogadjaja, LCD drajver, i dr. Mikrokontroleri se danas koriste u embedded sistemima za upravljanje raznim

5

Page 7: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

funkcijama koje sistem treba da obavi. Na primer, u današnjim automobilima ugradjuje se veliki broj (reda 100) mikrokontrolera koji se koriste za upravljanje radom kočionog sistema, ubrizgavanjem goriva, klima sistemom za grejanje-hladjenje, prikazom informacije na pokaznoj tabli, i td. Drugim rečima, jedno-čipni računar omogućava projektantima da ugrade računar u bilo kom uredjaju koji postavlja makar i minimalne zahteve za odredjenim iznosom izračunavanja. Mikrokontroleri se veoma često koriste i u situacijama kada treba da se veoma brzo reaguje na spoljne signale- posebno ako se takvi sistemi koriste za rad u realnom vremenu- pa zbog toga koriste procesiranje bazirano na obradu prekida. Mikrokontroleri mogu takodje da rade po nadzorom operativnih sistema za rad u realnom vremenu (RTOS) čiji je obim manji, pri čemu ovakvi sistemi bolje reaguju (za kreće vreme) na odzive sistema koji se odnose na rad u realnom vremenu, nego što je to slučaj sa operativnim sistemima opšte namene koji se instaliraju na večim mašinama kakve su recimo PC mašine.

Mikrokontroleri: tipovi arhitektura i blok šema

Arhitekture mikrokontrolera se mogu podeliti na sledeća dva tipa: 1. Harvard tip- karakteriše se razdvojenim memorijama za program i podatke. Svaki tip memorije ima svoj sopstveni fizički adresni prostor i koristi sopstvenu internu adresnu magistralu. Prednost ove arhitekture je ta što se pristup programskoj memoriji i memoriji za podatke ostvaruje konkurentno. Obvakvim pristupom se skraćuje ukupno vreme izvršenja programa. Proizvodjači mikrokontrolera Microchip, Zilog, National Semiconductor i Cypress zasnivaju svoje proizvode na Harvard arhitekturi, mada postoje neke neznatne ali važne razlike u pristupima kako ove kompanije implementiraju arhitekturu. Arhitekture ovih mikrokontrolera su tipične za RISC pristup. 2. Princeton tip (tzv. von Neumann)- programska memorija i memorija za podatke dele isti adresni prostor. To znači da se instrukcioni kôd može izvršavati kako iz programske tako i iz memorije za podatke. Poznati proizvodjači ovih tipova mikrokontrolera su Intel, Atmel, Motorola i dr. Ključna osobina ovih proizvoda je povećan broj instrukcija i adresnih načina rada koji u kombinaciji sa relokatibilnim softverskim magacinom (stack) omogućavaju efikasno korišćenje programskog jezika visokog nivoa C. Arhitekture ovih mikrokontrolera su tipične za CISC pristup.

Mikrokontroleri i digitalni signal procesori (DSP) su poznati tipovi aplikaciono integrisanih procesora (ASIP). U suštini mikrokontroler je mikroprocesor koji je

6

Page 8: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

optimiziran za embedded upravljačke aplikacije. Kod ovakvih aplikacija se obično nadgledaju (monitorišu) i postavljaju brojni jedno-bitni upravljački (control) signali, a pri tome se ne obavlja neko intenzivno izračunavanje nad podacima. Zbog ovoga mikrokontroleri imaju jednostavne staze podataka (datapaths) koje su prilagodjene za brzo izvršenje operacija na nivou-bita (bit manipulation) kao i operacija čitanja i upis sadržaja bitova sa spoljnih pinova čipa. Pored jednostavne CPU, na istom čipu, mikrokontroleri imaju inkorporirano nekoliko periferalnih komponenata tipične za upravljačke aplikacije, kakve su serijske komunikacione periferije, tajmere/brojače dogadjaja, PWM generatore, AD i DA konvertore, i dr. Pored ostalog programska memorija i memorija za podatke su takodje inkorporirane na samom čipu. Inkorporiranjem periferala i memorije na istom integrisanom kolu smanjuje se broj dodatnih integrisanih kola koje treba ugraditi u sistem, što rezultira kompaktijoj implementaciji i globalno posmatrano smanjenoj potrošnji, tj rešenje postaje tipa low-power. Činjenica da se programskim putem može direktno pristupati spoljnim pinovima čipa omogućava da program može lako da monitoriše stanje senzora, postavlja u definisano stanje aktuatore, i vrši prenos podataka ka/iz drugih uredjaja. Veliki broj proizvodjača naziva mikrokontrolere embedded procesore. Razlika izmedju embedded procesora i mikrokontrolera često nije jasna, mada se u stručnoj literaturi termin embedded procesor najčešće koristi za veće (32-bitne) procesore, a termin mikrokontroler za manje (4-, 8-, i 16-bitne) procesore.

7

Page 9: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Opšti blok dijagram mikrokontrolera je prikazan na slici D2.12.

Mikrokontroleri u odnosu na mikroprocesore Da bi ukazali na to kakva razlika postoji izmedju mikroprocesora i mikrokontrolera analiziraćemo sliku D2.13 koja predstavlja jedan detaljan blok dijagram mikroracunarskog sistema. Dok je mikroprocesor (CPU) integrisana komponenta na jedinstvenom čipu, sam mikrokontroler,na jedinstvenom cipu ima integrisano CPU, RAM i ROM memoriju i ostale ulazno izlazno orijentisane gradivne blokove (paralelni i serijski interfejsi, tajmeri, logika za prihvatanje prekida, A/D i D/A konvertore i dr.).

8

Page 10: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Struktura mikroprocesora

Na slici D2.14 prikazan je blok dijagram mikroprocesora.CPU čine sledeći blokovi:ALU, PC, SP, odredjeni broj radnih registara, kola za taktovanje i sinhronizaciju i kola koja se koriste za prihvatanje zahteva za prekid.

9

Page 11: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Da bi se kompletirao mikroračunarski sistem pored mikroprocesora potrebno je dodati ROM, RAM memorijske dekodere, oscilator, odredjeni broj ulazno-izlaznih uredjaja kakvi su paralelni i serijski portovi za podatke, A/D i D/A konvertore i drugo. Pored ulazno-izlaznih uredjaja specijalne namene, često se javlja i potreba da se ugrade i kontroleri prekida, DMA kontroleri, kao i brojaci/tajmeri čiji je zadatak da oslobode CPU-a od obavljanja U/I aktivnosti. Kada se u sistem instaliraju i uredjaji za masovno memorisanje (hard disk, CD drajver), kao i tastatura, mis i CRT displej, tada se taj ''mali racunar'' moze koristiti za razlicite aplikacije opste namene. Osnovna namena CPU-a je da pribavlja podatke, obavlja izračunavanja nad podacima i memorise rezultate izračunavanja na disku, kao i da za potrebe korisnika prikaže te rezultate na displeju (CRT, TFT, LED i dr.). Programi koje koristi mikroprocesor memorisani su na disku odakle se čitaju i smeštaju u RAM. Deo programa, najčešće malog obima, se obično smešta i u ROM-u.

10

Page 12: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Struktura mikrokontrolera Blok dijagram mikrokontrolera prikazan je na slici D2.15. Mikrokontroler je u suštini pravi ''mali računar'' na čipu, koji sadrzi sve gradivne blokove CPU-a (ALU, PC, SP, registre i dr.), ali takodje i RAM, ROM, paralelne i serijske U/I portove, generatore takta i dr. Kao i mikroprocesor, i mikrokontroler je uredjaj opšte namene, koji pribavlja podatke, obavlja ograničenu obradu nad tim podacima, i upravlja svojim okruženjem na osnovu rezultata izračunavanja. Mikrokontroler u toku svog rada koristi fiksni program koji je smešten u ROM-u i koji se ne menja u toku životnog veka sistema.

11

Page 13: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Mikrokontroler koristi ograničen skup jedno- ili dvo-bajtnih instrukcija koje se koriste za pribavljanje programa i podataka iz interne memorije. Veliki broj ulazno-izlaznih pinova mikrokontrolera se može koristiti za više namena, što se softverski definiše Mikrokontroler komunicira sa spoljnim svetom (pribavlja i predaje podatke) preko svojih pinova, pri čemu je arihitektura i skup instrukcija projektovan za manipulisanje sa podacima obima bajt ili bit.

Razlike izmedju mikroprocesora i mikrokontrolera

Razlike su brojne ali one koje su najvaznije su sledeće: 1. Mikroprocesori najcešće CISC tipa za kopiranje podataka iz spoljne memorije u CPU

koriste veći broj op-kôdova, dok mikrokontroleri jedan ili dva.

2. Za manipulisanje sa podacima tipa bit mikroprocesori koriste jedan ili dva tipa instrukcija, dok kod mikrokontrolera taj broj je veći.

3. Mikroprocesori su projektovani za brzi prenos podataka iz programa sa spoljno

adresiranih lokacija u čip, dok se kod mikrokontrolera brzi prenos bitova obavlja u okviru čipa.

4. Mikrokontroler moze da funkcioniše kao računar bez dodataka spoljnih gradivnih

blokova (memorije i U/I uredjaja), dok operativnost mikroprocesora bez spoljne memorije i U/I podsistema

12

Page 14: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

OPIS I ANALIZA MIKROKONTROLERA AT 89 S 8253

-Kompatibilan je sa procesorom 51 -12 k bytes flesh memorija -SPI serijlski unos za ucitavanje programa -10000 read/write ciklusa -2k byte EEPROM -100000 write/read ciklusa(64k byte korisnicka matrica) -Napon napajanja 2,7 do 5.5 V -Frekvencija od 0 do 24 MHz -Memorijsko zakljucanvanje iz 3 nivoa -256 x 8-bit-ni unutrasnji ram -32 I/O linije za programiranje -16-bitna clock/timer brojaca -9 generatora prekida -Poboljsani UART serijski port sa centriranjem detekcije greske i automatskim prepoznavanjem adrese -Male snage napajanja -Uspostavljanje prekida u niskom rezimu -Programilni tajmeri -Dvostruki pokazivac podataka -Iskljucivanje pomocu znaka(POWER OFF) -Fleksibilni ISP programator(byte i page mode) -Page mode:64 byte/page za DATA memoriju -4-nivo poboljsani kontrolor prekida -Programabilna x2 clock opcije -Unutrasnji POWER-ON reset -42-pin PDIP model kucista za redukovanje EMS emisije -Zeleni(Pb/Holide-free) opcija kucista AT89S8253 je processor visokih performansi,male potrosnje snage.To je CMOS 8-bitni mikrocontroler sa 12 k bytes flash memorijom i 2k EEPROM memorijom.Komponenta je napravljena u Atmel korporaciji i kompatibilna je sa nadaleko poznatim i popularnim procesorom 80C51.Repogramiranje memorije je moguce pomocu SPI serijskog ulaza ili pomocu konvekcionalnog programatora memorija.Kombinovanjem razlicitih 8-bitnih CPU-a sa ugradjenom programibilnom fles memorijom na monolitnom cipu,

13

Page 15: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Atmel AT89S8253 je fleksibilan processor koli je zahvaljujuci niskoj cene nasao veliku primenu kod mnogih kontrolnih aplikacija i programa. AT89S8253 ukljucuje standardne osobine poput 12 k bytes flash memory,2 k bytes EEPROM,256 bytes RAM memorije,32 I/O linije,programirljivi clock/tajmer,dvostruki pokazivac,tri 16 bit-na clock/counter,6 vektorske arhitekture prekida sa 2 nivoa,potpuni serijski ulaz,eksterni sopstveni oscilator,i elektricno kolo sata.Ustvari AT89S8253 (uz pomoc staticke logike) se koristi za operacije niskih frekvencija,potpomognut sa 2 softverska moda.IDLE mod zaustavlja CPU dok dopustajuci RAM ,clock/counter,serijski port i system prekida se koriste za nastavak funkcionisanja.Niski mod cuva RAM sadrzaj ali i zamrzava oscilator iskljucujuci sve ostale funkcije u kolu sve dok naidje sledeci spoljasnji prekid ili hardverski reset.FLASH memorija se moze menjati pomocu serijskog SPI pristupa.Zadrzavanje Reset opcije SPI omogucava da memorija bude upisana ili procitana od stane bita koji su bili aktivni.

Opis pinova

- VCC-napajanje (za sva kucista osim za 42 PDIP) -GND-masa(za sva kucista osim za 42 PDIP,za 42 PDIP masa spaja logicko jezgro i ugradjene data/program memorije)

14

Page 16: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

-VDD-napon napajanja za 42PDIP koji spaja logicko jezgro i ugradjenu program/data memoriju -PWRVDD-napon napajanja za 42PDIP koji sadrzi samo I/O drajvere.Aplikaciona ploca mora da spoji zajedno VDD I PWRVDD na zajednicko napajanje. -PWR GND-masa za 42 PDIP koji spaja samo I/O drajvere .PWR GND i GND su obicno spojeni pomocu uobicajenih silikonskih supstrata,ali ne preko bilo kog metalnog linka.Aplikaciona ploca mora zajedno GND i PWR GND spojiti na zajednicku masu. -PORT 0-JE 8-bitni I/O port,a takodje i izlazni port.Svaki pin moze pobuditi 8 TTL ulaza.Kada je 1 s upisana na port 0 moze biti visoko impedansni ulaz.Ovaj pin se moze koristiti kao multiplekser ali i kao prenosni put niske naredbe address-data u toku prihvatanja spoljasnjih programa i memorijskih podataka.U ovom modu PO ima unutrasnje neprekidno napajanje.PORT 0 takodje prihvata kodove u toku programiranja FLASH mmorije i izlazne kodove u toku verifikacije programa. -PORT 1-Ovaj port je 8-bitni obostrano prihvatni I/O port sa neprekidnim unutrasnjim 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 pomoc unutrasnjeg neprekidnog napajanja i mogu se koristiti kao ulazi.Pocetna ulazna struja je Iil=150µA zbog unutrasnjeg neprekidnog napajanja.Neki PORT 1 pinovi mogu imati i druge dodatne funkcije P.1.0 i P.1.1 mogu sluziti kao 2 spoljasnja 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 sluziti za pomocne portove.DATA INPUT/OUTPUT i CLOCK INPUT/OUTPUT pinovi su prikazani u narednoj tabeli:

Ovaj port prihvata adrese niskih nivoa u toku programiranja i verifikacije FLASH memorije.

15

Page 17: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

-PORT 2 je 8 bit-ni dvosmerni I/O port sa unutrasnjim neprestanim napajanjem.Izlazne pomocne memorije PORT-a 2 mogu prihvatiti/napajati 6 TTL ulaza.Kada je 1 s na ulazu port-a 2 on je na visokom nivou uz pomoc neprekidnog unutrasnjeg napajanja i mogu se koristiti kao ulazi.Kod ovih ulaza tipicna ulazna stuja je 150 µA zbog slabog unutrasnjeg neprekidnog napajanja.PORT 2 emituje adrese visokih naredbi u toku donosenja podataka od spoljasnje memorije i u toku prihvatanja podataka iz spoljasnje memorije koje koriste 16-bitne adrese(MOVX i DPTR).U ovom slucaju PORT2 kada emituje 1s koristi jako unutrasnje napajanje .U toku prihvatanja podataka iz spoljasnje memorije tada PORT 2 korist 8bit-ne adrese (MOVX i RI).PORT2 takodje ima i specijalne funkcije registra.PORT 2 takodje prihvata adresne bitove visokog zahteva i neke kontrolne signale u toku programiranja i potvrde FLASH memorije. -PORT 3 je 8 bit-ni dvosmerni I/O dvosmerni port sa neprekidnim unutrasnjim napajanjem.PORT 3 pomocne memorije mogu pobuditi 6 TTL ulaza.Kada se upisuju podaci na PORT3 ovaj PORT dosta energije vuce od unutrasnjeg neprekidnog napajanja i tada se mogu koristiti ulazi.Kod ovih ulaza uz pomoc spoljasnjeg napajanja struja je tipicno 150 µA zbog slabog unutrasnjeg napajanja.PORT 3 takodje prihvata takodje i pojedine kontrolne signale za programiranje FLASH memorije.PORT3 takodje predstavlja i servis specijalnih promenljivih osobina AT89S 8253 koji su prikazani u tabeli

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.

16

Page 18: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

-RST-RESET ulaz.Ovaj pin ima visoki nivo za najmanje 2 ciklusa. -ALE/PROG-omogucava blokiranje podataka.ALE/PROG je ustvari izlazni koji blokira niske byte adrese(u toku opadajuce ivice) u toku prihvatanja spoljasnje memorije.Ovaj pin je takodje ulazni impuls programa u (PROG) u toku programiranja FLASH-a.U normalnom radu ALE traje 1/6 frekvencije oscilovanja i moze biti upotrebljen za spoljasnji counter i clock.Vazno je medjutim da je ALE impuls preskocen u toku svakog prihvatanja podataka iz spoljasnje memorije.ALE operacija moze biti onemogucena 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 spoljasnjem izvrsnom modu. -PSEN-omogucava cuvanje programa.PSEN cita strobe za programiranje spoljasnje memorije.Kada AT 89 S 8253 izgubi code od izlazne memorije programa,PSEN je aktivan dvostruko u toku svakog ciklusa masine izuzev 2PSEN u toku svakog prihvatanja podataka od spoljasnje memorije. -EA/VPP-spoljasnje omogucavanje pristupa.EA mora biti na GND u naredbi za omogucavanje komponente za unosenje podataka iz spoljasnje meorijske lokacije startujuci 0000H sve do FFFFH.Uprkos tome ,to je moguce samo ako je zakljucani bit 1 programiran,i EA ce biti postavljeno na RESET. EA treba biti postavljen na Vcc za izvrsenje unutrasnje naredbe,ovaj pin takodje prihvata Vpp napon pristupa u toku programiranja FLASH memorije kada je 12 V programiranje selektovano. -XTAL 1-ulaz u invertovani pojacavac oscilatora i ulaz u unutrasnji clock elektricnog kola. -XTAL 2-izlaz iz invertovani pojacavac oscilatora.

Memorija podataka

AT89S 8253 sadrži 256B RAM memorije na čipu. Viših 128B zauzima paralelni adresni prostor dospecijalnih funkcijskih registara. Ovo znači da viših 128B ima iste adrese kao SFR prostor alifizički odvojen od SFR prostora. Kada instrukcija pristupi unutrašnjoj lokaciji iznad adrese 7FH, adresni mod korišćen u instrukciji određuje dali CPU pristupa višim 128B RAM memorije ili prostoru SFR. Instrukcije koje koristedirektno adresiranje pristupaju SFR prostoru.

17

Page 19: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Na primer, sledeća direktno adresirajuća instrukcija pristupa SFR na lokaciji 0A0H (što je P2). MOV 0A0H, #data Instrukcije koje koriste indirektno adresiranje pristupaju višim 128B RAM memorije. Na primer,sledeća indirektno adresirajuća instrukcija, gde R0 sadrži 0A0H, pristupa bajtu podataka na adresi0A0H, pre nego P2 (čija je adresa 0A0H). MOV @RO, #data Zapazite da su operacije skladištenja primeri indirektnog adresiranja, tako da viših 128B RAM-a podataka je slobodno kao prostor za skladištenje.

Blok sema mikrokontrolera AT 89 S 8253 prikazana je na sledecoj slici:

18

Page 20: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

19

Page 21: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

-Port 0 drivers – drajveri porta 0 -RAM ADDR REGISTER – adresni registar ram memorije -PORT 0 LATCH – Leč kolo Port 0 -Flash –Fleš -Stack pointer – pokazivač steka -Program address register - adresni registar programske memorije -Interrupt,serial port and timer blocks – prekid, serijski port i blokoivi tajmera -Program counter – programski brojač -Timing and control – izbor vremena i kontrola -Instruction register – registar instrukcija -Program logic – programska logika

Uporedjujuci ovu blok semu mikrokontrolera AT 89 S8253 sa osnovnom blok semom datom u poglavlju 2 vidimo da ovaj procesor sadrzi sve osnovne komponenete iz sastava bblok seme mokrokontrolera, sa jos nekim dodacima.Za komunikaciju sa perifernim uredjajima koriste se PORT 0,PORT 1,PORT 2 i PORT 3.Svi oni su vec detaljno opisani.Kao sklopovi koji predstavljaju periferiju je i kvarc kristal oscillator koji sluzi za normalan rad i sinhronizaciju mikrokontrolera.Vrednost ucestanosti oscilatora moze biti do 24 MHz ali se u ovom projektu radi sa frekvencijom od 11,059 MHz.Takodje pored ovog kao spoljasni dodatak za normalno funkcionisanje ovog sklopa je i izvor napajanja vrednosti +5V.Za komunikaciju spoljasnjih portova sa adresnom i magistralom podataka koriste se PORT LACH-evi.Adresna magistrala moze da komunicira direktno sa spoljnom memorijom podataka preko portova ako se to trazi.Sa glavnom magistralom podataka komuniciraju i sledeci uredjaji:RAM memorija,EEPROM memorija,SPI port,PORT LACH-evi,ALU,PSW,spoljasnji port registar prekida,DUAL DPTR,bafer,pokazivac STACK-a,RAM ADDR registar,fles,ACC akumulator,B registar. Interesantno je i to da ovaj mokrokontroler sadrzi i WATCH DOG koji sluzi da u slucaju da mikrokontroler poremeti svoj rad resetuje hardverski mikrokontroler na odredjen vremenski period od nekoliko ms.PSW (PROGRAME STATUS WORD) selektuje koju registarsku banku cemo koristiti i sadrzi over flow,i on se uvek gura u stek.Ocaj PSW bitan je i zato sto mi imamo pravo da koristimo 4 registarske banke po 8 bita i to su registri opste namene koji mi sami definisemo.Posebno se nekad koristi i B registar.Jedini 16 bitni registar je DPTR registar.On se smesta u DPTRL i DPTRH.U sklopu registra instrukcija je i registar sata i kontrole koji komunicira sa oscilatorom da bi smo imali konstantnu vrednost vremena i kontrole.Ovde se za odrzavanje kontrole takodje povezuju spoljasnji uredjaji koji se pak povezuju sa glavnim cipom preko PSEN,ALEPROG,RST i EA/Vpp. Za razliku od prethodnog modela mikrokontrolera AT 89 S 8252 ovaj mikrokontroler sadrzi I EEPROM memoriju.

21

Page 22: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

OPIS PREKIDA KOD MIKROKONTROLERA U mikroprocesorskim sistemima često je potrebno istovremeno pratiti rad više

perifernih jedinica. To se može postići neprestanim prozivanjem jedne po jedne jedinice, proveravajući njihova stanja. Ako se utvrdi da je došlo 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 vrši čitanje stanja BUSY nožice konvertora, koje označava da li je konverzija u toku ili je završena. Ako neko očitavanje pokaže da je konverzija završena, 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 više perifernih jedinica je da same jedinice jave kada je potrebno opsluživanje. 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 rešiti povezivanjem BUSY nožice konvertora na odgovarajuću INT (spoljašnji prekid) nožicu mikrokontrolera. Kada se BUSY deaktivira izaziva se prekid. Nakon što mikrokontroler uvaži zahtev, prelazi na podprogram za opsluživanje prekida (u ovom slučaju čitanje vrednosti konverzije), a nakon toga nastavlja sa izvršavanjem 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 potroši mnogo manje vremena za opsluživanje periferija, zbog čega i program može biti mnogo efikasniji.

Izvori prekida Kod ovog mikrokontrolera postoje šest izvora prekida. Dva spoljašnja (0INT i

1INT), 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.

22

Page 23: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

3. Započeti prekidnu servisnu rutinu na odgovarajućoj adresi vektora prekida. Videti sledeću tabelu.

Prekid tajmera 2 se generise logickim OR ili bitovima TF 2 I EXF 2 u registru T 2

CON.Nijedan od ovih markera se neb rise hardverom u toku servisnih uobicajenih procesa.U stvari,servisne uobicajeni procesi odredjuju koji od stanja TF 2 ili EXF 2 generisu prekide I taj bit ce biti obrisan softwerom.

Serijski prekid je logicki OR od bitova RI I TI u registru SCON I takodje bit SPIF u SPSR(ako je SPIE u SPCR setovan).Nijedan od ovih markera se neb rise pomocu hardwera u toku servisnih uobicajenih procesa.Servisni uobicajeni procesi mogu odrediti koji od SPI ili UART generisu prekide .

Timer 0 I timer 1 markeri, TF0 I TF 1,se setuju S5P2 ciklusa u toku timer-ovih prezasicenja.Vrednosti se zatim upisuju u sledecem ciklusu.Medjutim markeri Timera 2,TF 2, setuju S5P2 I upisuju u istom ciklusu kada je Timer prepunjen(prezasicen).

Prekid Izvor Vektorske adrese Sistem reset RST ili POR ili BOD 0000H Spoljasnji prekid 0 IE 0 0003H Prekid tajmera 0 TF 0 000BH Spoljasnji prekid 1 IE 1 0013H Prekid tajmera 1 TF 1 001BH Prekid serijskog porta RI ili TI 0013H

Slede struktrure nekih registara:

Registar koji omogucava prekide je na sledecoj slici:

23

Page 24: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Registar prioriteta prekida je prikazan na sledecoj slici:

Simbol Funkcije PT2 Timer 2- prekid niskog prioriteta PS Serijski port- prekid niskog prioriteta PT1 Timer 1- prekid niskog prioriteta PX1 Spoljasnji prekid 1 niskog prioriteta PT0 Timer 0- prekid niskog prioriteta PX0 Spoljasnji prekid 0- prekid niskog prioriteta

Registar visokog prioriteta prekida je prikazan na sledecoj slici:

24

Page 25: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Izvor prekida je prikazan na sledecoj slici:

Na slici ispod se može videti da se prekid može jednostavno onemogućiti brisanje bita EA u istom registru.

25

Simbol Funkcije PT2H Timer 2- prekid visokog prioriteta PSH Serijski port- prekid visokog prioriteta PT1H Timer 1- prekid visokog prioriteta PX1H Spoljasnji prekid 1 visokog prioriteta PT0H Timer 0- prekid visokog prioriteta PX0H Spoljasnji prekid 0- prekid visokog prioriteta

Page 26: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Kao dodatak, za spoljašnje 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

Maskiranje prekida Svaki od pomenutih prekida se može 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 AT89S52 svaki od izvora prekida se može maskirati, to se kontroliše 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. Najviši bit EA (enable all) kontroliše maskiranje svih prekida. Ukoliko je on 0, svi prekidi su maskirani bez obzira na stanje bitova istog registra koji kontrolišu maskiranost pojedinačnih izvora prekida. 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

26

Page 27: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

EA — ET2 ES ET1 EX1 ET0 EX0 EA IE.7 Onemogućava sve prekide. Ako je EA=0, nema

potvrde prekida. Ako je EA=1, svaki izvor prekida se pojedinačno omogućava ili onemogućava postavljanjem njegovog bita dozvole

— IE.6 Nije implementirano, rezervisano za buduću upotrebu.

(1)

ET2 IE.5 Omogućava ili onemogućava prekoračenje tajmera 2 ili zahavtanje prekida (samo kod AT89C52)

ES IE.4

Omogućava ili neomogućava prekid serijskog porta.

ET1 IE.3 Omogućava ili onemogućava prekoračenje tajmera 1.

EX1 IE.2 Omogućava ili onemogućava spoljašnji prekid 1. ET0 IE. 1 Omogućava ili onemogućava prekoračenje tajmera

0. EX

Omogućava ili onemogućava spoljašnji prekid 0.

Prioriteti prekida

Na primer, možete omogućiti Tajmer 1 prekid koji se automatski poziva svaki put

kada se Tajmer 1 overflow-je. Naknadno, možete omogućiti serijski prekid koji se poziva svaki put kada se primi karakter preko serijskog porta. Medjutim, vi možete smatrati da je prijem karaktera mnogo važniji od tajmerskog prekida. U ovom slučaju, ako se tajmer 1 prekid već izvršava vi možete poželeti da sam serijski prekid interrupt-uje tajmer 1 prekid. Kada se serijski prekid kompletira, upravljanje se vraća nazad na Tajmer 1 prekid opslužuje ga i konačno se vraća u glavni program. Ovo možete ostvariti dodeljivanjem visokog nivoa prioriteta serijskom prekidu i niskog nivoa prekida tajmer 1 prekidu.

Prioriteti prekida se kotrolišu od strane IP SFR registra (B8h). IP SFR registar ima sledeći format

Bit Name Bit Address Explanation of Function 7 - - Undefined 6 - - Undefined 5 - - Undefined 4 PS BCh Serial Interrupt Priority 3 PT1 BBh Timer 1 Interrupt Priority

Page 28: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

2 PX1 BAh External 1 Interrupt Priority1 PT0 B9h Timer 0 Interrupt Priority 0 PX0 B8h External 0 InPriorit

Razmatranjem liste prioriteta prekida, dolazimo do sledećih pravila koja

primenjujemo: - ništa ne može da prekine prekid visokog nivoa prioriteta – čak ni drugi prekid visokog nivoa prioriteta

- prekid visokog nivoa može prekinuti izvršenje prekida niskog nivoa - prekid niskog nivoa prioriteta može jedino da se opsluži ako nema drugih prekida koji

se već izvršavaju - ako se dva prekida dogode u isto vreme, prekid sa višim nivoom prioriteta će se prvi izvršiti. Ako su oba prekida istog prioriteta prekid koji je prozvan prvi sekvecnom prozivke prvi će se izvršiti

Šta se dogadja kada se prekid dogodi ?

Kada se dogodi prekid automatski se preuzimaju sledeće akcije od strane mikrokontrolera: - tekuća vrednost Pc-a se smesti na stek, prvo niži bajt - prekidi istog ili nižeg nivoa prioriteta se blokiraju - u slučaju tajmerskog ili spoljašnjeg prekida, odgovarajući prekidni markeri se brišu - programsko izvršenje se prenosi na odgovarajuću vektor adresu prekidnog opslužioca (handler-a) - rutina prekidnog opslužioca se izvršava

Posebno istaknimo treći korak: Ako prekidi opslužuju tajmerski ili spoljašnji prekid, mikrokontroler automatski briše prekidni marker pre nego što prenese upravljanje na rutinu koja opslužuje vaš prekid. Ovo znači da nije neophodno da vi brišete bit softverski u vašem kôdu.

28

Page 29: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Šta se dogadja kada se prekid završi ? Prekid se završava kada vaš program izvrši RETI (Return from Interrupt)

instrukciju. Kada se RETI instrukcija izvrši mikrokontroler preuzima sledeće akcije: - dva bajta se prenesu sa steka u programski brojač da se ponovo uspostavilo normalno programsko izvršenje - prekidni status se ponovo vraća na svoj status pre prekida

Serijski prekidi Serijski prekidi su neznatno različiti od ostalih prekida. Ovo je posledica činjenice

da postoje dva prekidna markera: RI i TI. Ako je bilo koji marker postavljen, serijski prekid je trigerovan. Kao što smo istakli u sekciji o serijskom portu, RI bit se postavlja kada se bajt primi od strane serijskog porta dok se TI postavlja kada se bajt šalje. Ovo znači da kada se vaš serijski prekid izvršava, on može biti trigerovan zato što je RI marker postavljen ili zato što je TI marker postavljen – ili zato što su oba postavljena. Dakle vaša rutina mora da proveri status ovih markera da bi odredila koju akciju da preuzme. Takodje, pošto 8051 ne briše automatski markere RI i TI morate da ih obrišete u vašem softveru koji opslužuje prekid. Kratak kôdni primer je u sledećem redosledu: INT_SERIAL- JNB RI, CHECK_TI ;ako RI marker nije postavljen, sakačemo na proveru TI MOV A,SBUF ;ako dodjemo do ove linije, to zato što je RI bio postavljen CLR RI -brišemo RI bit posle njegovog procesiranja CHECK_TI- JNB TI,EXIT_INT ;ako marker TI nije postavljen skočimo na izlaznu tačku CLR TI -brišemo TI bit pre slanja drugog karaktera MOV SBUF,#'A' -šaljemio drugi karakter na serijski port EXIT_INT-RETI Kao što vidimo, naš kôd proverava oba prekidna markera. Ako su oba markera postavljena, obe sekcije kôda će biti izvršene. Takodje podvučimo da svaka sekcija kôda briše svoj odgovarajući prekidni marker. Ako ste zaboravili da obrišete bitove prekida serijski prekid će se izvršavati ponavljajući se sve dok ne obrišite bit. Dakle veoma je važno da vi uvek obrišete prekidne markere serijskog prekida.

29

Page 30: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Važno prekidno razmatranje: Zaštita registara Vrlo važno pravilo koje se primenjuje na sve opslužioce prekida: Prekid mora da ostavi procesor u isto stanje kakvo je bilo kada se prekid pokrenut. Zapamtite, ideja je da iza prekida glavni program ne bude svestan da se oni izvršavaju u ''pozadini''. Ipak, razmotrimo sledeći kôd: CLR C ;obrišimo prenos MOV A,#25h ;loaduj akumulator sa 25h ADDC A,#10h ;saberi 10h sa prenosom Nakon izvršenja prethodne tri instrukcije, akumulator će sadržati vrednost 35h. Ali šta će se desiti ako se upravo posle MOV instrukcije dogodi prekid. U toku prekida, bit prenosa je postavljen i vrednost akumulatora je promenjena na 40h. Kada se prekid završi i upravljanje prenese nazad u glavni program, instrukcija ADDC će dodati 10h na 40h i dodatno dodati dodatni bt 1h zato što je bit prenosa postavljen. U ovom slučaju, akumulator će sadržati vrednost 51h nakon izvršenja instrukcije. U ovom slučaju, glavni program kako se čini izračunava pogrešan rezultat. Kako može 25h + 10h da proizvede 51h kao rezultat ? Ovo nema smilsa. Programer koji nije familijaran sa prekidima izazvan problemom matematičkog proračuna uveriće se da je mikrokontroler na neki način oštećen. Šta se dogadja, u stvarnosti, ako prekid ne štiti prethodni sadržaj registra prilikom njihovog korišćenja. Preformulišimo: Prekid mora da ostavi procesor u isto stanje kao što je bilo kada je prekid započeo Šta ovo znači ? To znači da ako vi u prekidnoj rutini koristite akumulator, morate da budete sigurni da je vrednost akumulatora ista na kraju prekida kao što je bila na njegovom početku. Ovo je generalno izvodljivo sa PUSH i POP sekvencom. Na primer: PUSH ACC PUSH PSW MOV A,#0FFh ADD A,#02h POP PSW POP ACC ''Opustošenje'' prekidom je od strane MOV i ADD instrukcije. Ma koja od ove dve instrukcije modifikuje Akumulator (MOV i ADD instrukcija) i takodje modifikuje

30

Page 31: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

vrednost bita prenosa (ADD instrukcija će usloviti da bit prenosa bude postavljen). Pošto prekidna rutina mora da garantuje da registri ostaju ne promenjeni primenom rutine, rutina smešta originalne vrednosti na stek korišćenjem PUSH iinstrukcije. Nakon toga ona je slobodna da koristi registre pošto je zaštitila njihove suštinske vrednosti. Pošto prekid završi svoj zadatak, on uzima originalne vrednosti i vraća ih u registre. Dok se prekid izvršava, glavni program neće nikad da zna razliku zbog toga što su registri egzaktno isti kao što su bili pre nego što se prekid izvršio. U principu, prekidna rutina mora da zaštiti sledeće registre: - PSW (Program Status Word) - DPTR (DPH/DPL) (Data Pointer) - ACC - B - Registri R0 – R7

Zapamtite da PSW sadrži mnoge individualne bitove koji su postavljeni od strane različitih 8051 instrukcija. Ako niste apsolutno sigurni šta radite i ako ne razumete potpuno koja instrukcija koji bit postavlja najbolja ideja je da uvek zaštite PSW smeštajući ga na i uzimajući ga sa steka na početku i kraju prekida.

Istaknimo takodje da većina asemblera (u suštini, svi koje ja znam) neće vam dozvoliti da izvršite instrukciju:

PUSH R0 Ovo je posledica činjenice da zavisi koja je registarskih banaka selektovana, tj. R0

se može odnositi na adresu unutrašnje memorije ili 00h, ili 08h, ili 10h, ili 18h. R0, ++++, nije validna memorijska adresa koju instrukcije PUSH i POP mogu da koriste.

Prema tome, ako vi koristite bilo koji ''R'' registar u vašu prekidnu rutinu, vi ćete staviti apsolutnu adresu registra na stek umesto da samo kažete PUSH R0. Na primer, umesto PUSH R0 vi ćete izvršiti:

PUSH 00h Naravno ovo funkcioniše jedino u slučaju ako ste selektovali default-ni set

registara (registarska banka 0). Ako koristite alternativni registarski set, morate da PUSH adresu koja odgovara registru koji vi koristite.

31

Page 32: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Najcesci problemi sa prekidima Prekidi su veoma moćno sredstvo dostupno 8051 korisnicima, ali kada ih koristite

nekorektno mogu biti izvor velikog broja časova debagovanja. Greške u prekidnim rutinama je često veoma tečko dijagnosticirati i korigovati. Ako ste koristili prekide i vaš je program doživeo krah ili vam se čini da se ne izvršava kako ste očekivali, uvek ponovo razmotrite sledeće prekide povezane odlukama:

Zaštita registra: Budite sigurni da ste zaštitili sve vaše registre, kako smo objasnili u prethodnom delu. Ako ste zaboravili da zaštitite registar koji koristi vaš glavni program, možete dobiti vrlo čudne rezultate. U našem prethodnom primeru pokazali smo kako greške kod zaštite registara uslovljavaju da glavni program očigledno izračunava da je 25h + 10h = 51h. Ako ste svedok problema sa registrima kao što su neočekivana promena vrednosti ili rezultat operacije je nekorektna vrednost, vrlo je verovatno da ste zaboravili da zaštitite registre. Uvek zaštitite vaše registre. • Zaboravili ste da vratite vaše zaštićene vrednosti: Druga česta greška je da stavite vrednosti registara na stek da bi ih zaštitili, i onda zaboravite da ih preuzmete sa steka pre napuštanja prekidne rutine. Na primer, stavili ste ACC, B, i PSW na stek u cilju njihove zaštite i zatim preuzmete samo ACC i PSW sa steka pre napuštanja prekidne rutine. U o stavite vrednost ''B'', ekstra vrednost ostaje na steku. Nakon izvršavanja RETI instrukciju 8051 će koristiti vrednost kao vraćenu adresu umesto korektne vrednosti. U ovom slučaju, vaš program će skoro sigurno pasti. Uvek budite sigurni da ste POP onaj broj vrednosti sa steka koji ste i stavili. • Koristite RET umesto RETI: Zapamtite da se prekidne rutine uvek završavaju sa RETI instrukcijom. Lako može da se desi da nepažnjom umestio RETI instrukcije koristitite RET. Prema tome RET instrukcija nesme da završi vašu prekidnu rutinu. Obično, korišćenje instrukcije RET umesto RETI stvoriće iluziju da vaš program radi normalno.

POMOCNI MOD

U pomocnom modu,CPU prelazi u sleep modu sve dok su periferne on-chip komponente aktivne.Ovaj mod se poziva pomocu softvera.Sadrzaj on-chip RAM-a I registra specijalnih funkcija u toku ovog moda.Pomocni mod moze biti prekinut pomocu bilo kog dostupnog prekida ili pomocu hardverskog reseta. Kada je pomocni mod prekinut pomocu hardverskog reseta,komponente normalno obnavljaju verifikaciju programa kada je iskljucen,u toku vise od 2 masinska ciklusa pre nego unutrasnji reset algoritam uzme kontrole.On chip hardver sprecava pristup

32

Page 33: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

unutrasnjem RAM-u u ovom slucaju,ali pristup pinovima portova nisu zabranjeni.Da bi se eliminisala mogucnost zabrane upisa u pinovima portova kada je pomocni mod prekinut pomocu reseta,prateci instrukcije kada se pozove pomocni mod ne treba upisivati podatke u pinovima portova ili u spoljasnju memoriju.

PRINCIP RADA PERIFERIJE

LCD displej Upotreba liquid crystal display-a(LCD) je novijeg datuma i zamenila je 7-segmentni light emitting diode(LED) displeje.Naime,LED displeji su mogli upisivati u svom sadrzaju samo brojeve medjutim ,za razliku od njih LCD disleji pored brojeva upisuju i slova,karaktere,simbole.Upravo ova cinjenica je i dovela do toga da LCD displeji skoro potpuno potisnu upotrebu LED displeja.Jedan od tih displeja je i ovde koriscen pri realizaciji projekta.To je LCD display sa Hitachi-evim HD44780 display kontrolerom,i ovo nije poslednja generacija LCD displeja koji koriste najsavremeniji uredjaji.Ovi displeji imaju mogucnost podesavanja boje,kontrasta,back-light i drugih propratnih funkcija.LCD displeji su se ranije koristili kao hardverska podrska PIC mikrikontrolerima ali se danas koriste i za druge procesore i microkontrolere.Dostupni su LCD displeji duzine 8,16,20,24,32,40 karaktera u jednom,dva ili cetiri reda.Najveci broj ovih LCD displeja se povezuju standardnim interface-om.14 pinova koji se koriste u sebi sadrze 8 linije podataka,3 kontrolne linije i 3 linije za napajanje.Kod vecine LCD displaja se moze videti gde je 1 pin ali je on najcesce obelezen.Pin 1 je povezan na masu preko metaliziranih kontakata.Izgled 16-karakternog displeja je prikazana na ledecoj slici:

33

Page 34: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Pinovi 1 I 2 su pinovi za napajanje ,Vss I Vdd.Ovaj Vdd pin bi trebalo povezati na (+) napajanje a Vss na 0V ili masu.Obicno se napon napajanja displeja kao I kod svih standardnih digitalnih kola 5V ali raspon napajanja moze ici od 4,5V do 6V. -Pin 3 je kontrolni pin koji se koristi za kontrolni contrast displeja.U idealnom slucaju ovaj pin treba povazati na promenljivi napon napajanja.Potenciometar je povezan na napajanje preko kliznog pina povezan na na contrast pin koji je kod nekih displeja povezan na -7V. -Pin 4 se koristi za RS line I to je prvi od 3 kontrolna ulaza.Kada je ovaj pin na niskom nivou byte-ovi podataka se predaju displeju I ovi byte-ovi podataka citaju sa displeja status.postavljanjem RS linije na visoki nivo karakterni podaci se salju ili ka ili od displeja. -Pin 5 je Read/Write(R/W) veza.Ovaj pin se postavlja na niski nivo kada se zahteva upis komandi ili karakternih byte-ovau modul ili postavlja na visoki nivo kada se zeli citanje podataka ili informacije statusa iz registara. -Pin 6 je enable(omoguciti) veza.Ovaj pin se koristi da inicijalizuje prenos podataka I komande izmedju modula I veza podataka.Kada se upisuj podaci u displej podaci je salju samo od visokog do niskog nivoa ovog signala,medjutim kada se cita sa displeja tada se cita sa niskog ka visem nivou I podaci su sporije dostupni I potrajace sve dok signal padne na niskom nivou ponovo. -Pinovi 7-14 su pinovi koji se koriste za prenos podataka D0 do D7.Podaci se sa displeja mogu slati od I ka displeju u zavisnosti dali je jedan 8-bit byte ili dva 4-bit-na.Novije verzije koriste samo gornjih 4 linije podataka (D4-D7).

34

Page 35: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Kada se displaj ukljuci on pokazuje serije tamnih pravougaonika koji su vezani samo za odredjena mesta na displeju I kontrola kontrasta bi trebala postaviti anti-shockwise dok se pravougaonici mogu videti.Displej resetuje sam sebe u inicijalno stanje kada je napajanje dovedeno koji iskljucuje ove pravougaonike I upisuje odredjene karaktere koji su uneseni I oni se ne mogu videti odmah.potrebno je objaviti komande u ovoj tacki da bi se ukljucio diplej.Puno objasnjenje komandi koji se koriste kod unosa I citanja informacija su dati na sledecoj tabeli zajedno sa njihovim hexadecimalnim I binarnim vrednostima.

35

Page 36: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Heksadecimalni zapis svakog od 32 karaktera ovog displeja prikazani su na sledecoj slici:

Pored toga data je I tabela svih karaktera koji se mogu upisati I videti na displeju sa njihovim binarnim vrednostima.Treba jos naglasiti I da je D7 skroz levo a podatak D0 skroz levo. Vreme izvrsenja pojedinih nadedbi I komandi kod ovog displeja prikazani sun a sledecoj slici:

Vecina karaktera koji se koriste u svetu se prevode u ASCII kod osim nekih Japanskih I Grckih slova koji imaju specijalan nacin prikazivanja na displeju.

36

Page 37: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Oscilator stabilne frekvencije Kao propratna hardverska struktura koriscen je digitalni oscillator frekvencije koji na svom izlazu generise cetvrtaste impulse frekvencije 0.5 Hz i 1 Hz ili vremenske cetvrtke sa periodom od 1s I 2 s.Ceo uredjaj se napaja naponom napajanja od 5V kao i vecina digitalnih kola a koristi se zajednicko napajanje koje je vec predstavljeno u prethodnoj elektricnoj semi.Kao oscilator konstantne frekvencije koristi se kvarc kristal ucestanosti 4 194 304 Hz ili 242 Hz sa propratnim elementima za normalno prooscilovanje elektricnog sklopa.Kao delitelj frekvencije se koristi IC CDA 4060 ciji je maksimalni stepen deljenja 16384 ili 142 ali nam do 4194304 Hz treba jos mnozenje sa 256 sto postizemo drugim kolom koje je povezano na izlaz prethodnog kola.Drugo kolo je iz iste serije CDA 4040 koje deli sa 256 ili 82 a takodje i sa 512 ili 92 na njegovom izlazu na pinu 13 se dobija impuls od 1s a na pinu 12 dobija impuls od 2s.Elektricna sema veze oscilatora konstantne ucestanosti je prikazana na sledecoj slici:

37

Page 38: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Napajanje

Napajanje mikrokontrolera je ostvareno klasicnom procedurom i komponentama kao i kod drugih kontrolera.Naizmenicni napona napajanja iz mreze 220V se preko transformatora tansformise na 7V 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 sluzi kao napajanje konstantnom vrednoscu napona.Elektricna sema izvora napajanja je data na sledecoj slici:

Elektricna sema uredjaja sa svim detaljno opisanim komponentama kao I izgled stampane veze date su na sledecim slikama:

38

Page 39: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

39

Page 40: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

40

Page 41: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Kao sto sam vec napomenuo sva digitalna kola se napajaju preko izvora konstantnog napona +5V koji je vec ranije bio obradjen u oblasti o perifernim uredjajima, i pozitivan kraj ovog napona je doveden na 40 pin mokrokontrolera a masa je preko 20 pina povezana na uzemljenje i zajednicku masu.Kada je rec o oscilatoru konstantne ucestanosti ovde je on povezan preko pinova 18 i 19.Kod povezivanja LCD displeja kao jos jedne periferne jedinica koristili smo sledece postupke a to su:podaci D0 do D7 su povezani sa mikrokontrolerom preko porta P0.0 pa do porta P0.7 sukcesivno.Pin koji omogucava upis na displeju (EN) je povezan preko porta P3.7, RS preko P3.6 i preko P3.5 je povezan trimer i transistor za contrast displeja.Komunikacija sa racunarom je ostvarena preko portova P1.5,P1.6 i P1.7 a spoljasnja stabilna frekvencija je dovedena preko P3.2 porta.Spoljasnji reset mikrokontrolera je povezan preko 9 pina kao sto je ilustrovano na prethodnim slikama.

TIPICNI APLIKACIONI PROGRAMI

Softver

Za komunikaciju izmedju racunara I mikroprocesora koristio sam paralelni port DB 25 uz podrsku programatora koji je realizovan sa kolom 74LVC244.Koristi se standardna procedura povezivanja ali se kao softver koristi ATMEL- ov softver cija osnovni prozor izgleda kao na sledecoj slici:

41

Page 42: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

-Sledeci korak je izbor ATMEL-ovog mikrocontrolera,a kako smo mi koristili AT 89 S 8253 Sto je prikazano na sledecoj slici:

42

Page 43: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Posle izbora komponente u prozoru softvera se moze videti prazan buffer mikrocontrolera koji je prikazan na sledecoj slici:

Zatim sledi ucitavanje heksadecimalnog zapisa I asemblera u mikrokontroler,

43

Page 44: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Posle ucitavanja izgled dela buffer-a je:

44

Page 45: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Nakon ovog procesa mozemo selektovati neku od instrukcija kao sto su upis,citanje,brisanje, provera praznog prostora,podesavanje bita zakljucavanja,podesavanje sigurnosnog bita,verifikaciju koje se nalaze pod opcijom INSTRUCTIONS a zatim se moze selektovati AUTO PROGRAM iz iste opcije koji ce preko paralelnog porta prebaciti sve ovo u mikrokontroler.Nakon ovoga mozemo videti zeljenu poruku na LCD displeju.

45

Page 46: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Asemler

46

Page 47: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

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.Od 00H do 20H se smestaju 4 registarske banke koje sadrze 8 bajta i to je ukupno 32 bajta.

STATUS EQU 20H ZAHTIME EQU STATUS.0 ;ZAHTEV ZA PRIKAZIVANJEM VREMENA POR12 EQU STATUS.1 ;ISPISIVANJE 1. ILI 2. PORUKE FULEMPTY EQU STATUS.2 ;POMOCNI FLAG KOD PRIKAZIVANJA CRNO/BELO

Zatim sledi definisanje modova i to su modovi od MODE1 do MODE6. MODES EQU 21H MODE1 EQU MODES.0 ;PRIKAZIVANJE SATA MODE2 EQU MODES.1 ;PRIKAZIVANJE CRNO/BELO NA 1S MODE3 EQU MODES.2 ;EL.FAK/IME I PREZIME NA 5S MODE4 EQU MODES.3 ;SHIFTOVANJE TEXTA U DESNO MODE5 EQU MODES.4 ;SHIFTOVANJE TEXTA U LEVO MODE6 EQU MODES.5 ;SHIFTOVANJE TEXTA LEVO-DESNO SEKUNDE EQU 30H MINUTI EQU 31H SATI EQU 32H CHARBRO EQU 33H ;BROJAC KARAKTERA ZA ISPIS POMLO EQU 34H POMHI EQU 35H SEC5 EQU 36H ;POMOCNI BROJAC ZA 5 SEC. Zatim slede hardverski zahevi za inicijalizaciju spoljasnjih perifernih uredjaja u ovom slucaju LCD displeja ENABLE EQU P3.7 ;ENABLE LCD RS EQU P3.6 ;REGISTAR SELECT BLIGHT EQU P3.5 ;BACK LIGHT LCD-a CLCIN EQU P3.2 ;OSCILATOR INPUT MODETAST EQU P2.7 ;MODE SELECT TASTER -U slucaju da dodje do prekida definise se gde ce da skoci program u ovom slucaju on skace na potprogram koji se zove EXIN RSEG CODE START JMP GLAVNI

47

Page 48: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

ORG START+EXTI0 JMP EXIN ;EX CLC IN Iz sigurnosnih razloga se definise zabrana svih prekida da se ne desi da ode processor u prekid a mi treba da definisemo neke promenljive recimo sate,minute,ime dr,zbog toga zabranimo sve prekide da ne pocne sa neke pozicije koju je vec sacuvao u registru.Zatim se definise stek.Imamo 16 bajta za koriscenje I to su prvih 128 pozicija u ramu.

GLAVNI MOV IE,#00H ;ZABRANA SVIH PREKIDA MOV SP,#70H ;DEFINISANJE STEKA INIC: MOV TMOD,#001H ;T0 = 16b_TIMER Ovde se resetuje ram MOV R0,#08 RESR MOV A,#0 MOV @R0,A INC R0 MOV A,R0 CJNE A,#070H,RESR MOV P3,#0FFH Ovde prekid radi na ivici I to negativnoj ili opadajucoj kako se drugojacije zove,zatim se dozvoli prekid,inicijalizuje displej I dozvoli prekid 0. SETB IT0 ;EX0 RADI NA IVICU MOV IE,#080H ;ENABLE INTERRUPTS CALL PAUSE10MS ;PAUZA 10mS CALL LCDINIC ;INICIJALIZACIJA DISPLEJA SETB EX0 ;ENABLE INT0 Upali se svetlo na displeju I na displeju se prikaze u startu prvi mod tj.ispisivanje sata. CLR BLIGHT MOV MODES,#01 ;SELEKTOVAN MOD1=PRIKAZIVANJE SATA

48

Page 49: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

***** GLAVNI PROGRAM *******

Zatim se selektije mod tast koji spaja ovaj pin sa masom I znaci da moze biti ovaj taster pritisnut ili otpusten,ovde se ceka neki vremenski period od 250µs zbog istitravanja kontakta.Ako je taster ukljucen moze se promeniri mod rotacijom naredbom RL. GP JB MODETAST,NOTAST MOV R0,#0250 ;CEKA 250uS ZBOG ISTITRAVANJA KONTAKTA DJNZ R0,$ JB MODETAST,NOTAST CLR C MOV A,MODES RL A CJNE A,#01000000B,OKMODES MOV MODES,#01 JMP OBRISI OKMODES MOV MODES,A Brise se displej,I ispisuje taj mod koji je selektovan I ceka 250µs kada se otpusti taster zbog istitravanja. OBRISI CALL CLRLCD ;BRISE LCD DRZI JNB MODETAST,$ MOV R0,#0250 ;CEKA PO OTPUSTANJU 250uS ZBOG ISTITRAVANJA DJNZ R0,$ JNB MODETAST,DRZI Rad prema selektovanom modu I sad se testiraju svi modovi pocev od MODE 1 DO MODE 6 NOTAST JNB ZAHTIME,GP CLR ZAHTIME ;BRISE ZAHTEV ZA PRIKAZIVANJEM VREMENA JNB MODE1,TSTM2 JMP CLCPRINT ;MOD1=PRIKAZIVANJE SATA TSTM2 JNB MODE2,TSTM3 JMP CRNOBELO TSTM3 JNB MODE3,TSTM4 JMP ELFAK

49

Page 50: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

TSTM4 JNB MODE4,TSTM5 JMP SHIFTR ;SHIFTOVANJE TEXTA U DESNO (1.RED LCD-a) TSTM5 JNB MODE5,TSTM6 JMP SHIFTL ;SHIFTOVANJE TEXTA U LEVO (2.RED LCD-a) TSTM6 JNB MODE6,TSTM7 JMP SHIFTLR TSTM7 JMP GP Prva stvar je da se gurne PSW I ACC na stack a zatim se inkrementiraju sekunde EXIN PUSH PSW ;'gura' PSW I ACC NA STACK PUSH ACC INC SEKUNDE ;INKREMENTIRA SEKUNDE MOV A,SEKUNDE CJNE A,#060,NOCHG MOV SEKUNDE,#0 INC MINUTI MOV A,MINUTI CJNE A,#060,NOCHG MOV MINUTI,#0 INC SATI

MOV A,SATI CJNE A,#024,NOCHG MOV SATI,#0 NOCHG SETB ZAHTIME POP ACC ;'vraca' ACC I PSW IZ STACK MEMORIJE POP PSW RETI ;POVRATAK IZ INTERAPTA Brise se displej CLRLCD CLR RS ;BRISE RS I ENABLE CLR ENABLE MOV R0,#050 DJNZ R0,$ MOV P0,#00000001B ;CLEAR DISPLAY SETB ENABLE MOV R0,#050 DJNZ R0,$

50

Page 51: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

CLR ENABLE MOV R1,#017 ;PAUSE 1.7 mS, MAX. EXECUTE TIME = 1.64mS PAU100 MOV R0,#0100 DJNZ R0,$ DJNZ R1,PAU100 RET Potprogram za postavljanje adrese se selektuje tako sto je u R1 je ta adresa i ACC.7 je uvek setovan kod postavljanja adrese I ovde je maksimalno vreme izvrsenja naredbi 40µs ali smo uzeli ovde da je vreme izvrsenja naredbe 50µs ADRLCD CLR ENABLE CLR RS MOV R0,#050 ; 50 uS DJNZ R0,$ MOV A,R1 ;U R1 JE ZELJENA ADRESA SETB ACC.7 ;ACC.7 JE UVEK SETOVAN KOD POSTAVLJANJA ADRESE MOV P0,A ;DISPLAY DATA RAM ADRESS SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 50uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS RET Stampa 1 karakter na displeju u prvom redu LCDSTAMP SETB RS CLR ENABLE MOV R0,#050 ; 50 uS DJNZ R0,$ MOV P0,A SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 50uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS RET

51

Page 52: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Konverzija brojeva iz BCD u ASCII kod se vrsi tako sto ako je broj manji od 10 tj brojevi od 0 do 9 skace na BRMANJI tada samo dodaje 48 a u slucaju kada treba da se konvertuju heksadecimalni brojevi od A do F onda se dodaje 64 jer je 65 heksadecimalni zapis broja A.

BCDASC: ANL A,#00001111B PUSH ACC CLR C SUBB A,#00AH JC BRMANJI POP ACC ;BROJEVI A-F, tj.10-15 dec. CLR C SUBB A,#009H ORL A,#01000000B ;DODAJE 64 JMP EXKONV BRMANJI POP ACC ORL A,#00110000B ;DODAJE 48 EXKONV RET Softverska pauza od 10ms PAUSE10MS MOV R1,#040 ;40x250uS=10mS PET250u MOV R0,#0250 DJNZ R0,$ DJNZ R1,PET250u RET Inicijalizacija displeja po pravilu traje 40µs ali se ostavlja 50 µs za svaki slucaj.Ovo je 2-redni 16 karakterni displej 8 bitni I fonta 5x7 LCDINIC CLR ENABLE CLR RS NOP MOV P0,#00111000B ;8-bit interface,2-redni LCD, 5x7 font SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS MOV P0,#00001100B ;DISPLAY ON/OFF CONTROL SETB ENABLE

52

Page 53: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS

MOV P0,#00000001B ;CLEAR DISPLAY SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R1,#017 ;PAUSE 1.7 mS, MAX. EXECUTE TIME = 1.64mS PAU100uS MOV R0,#0100 DJNZ R0,$ DJNZ R1,PAU100uS MOV P0,#00000110B ;ENTRY MODE SET SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS RET Za prikazivanje poruke na displeju koriste se sledeca 2 pod programa i to su PORPRIKE 1 i PORPRIKE 2 i to radi na sledeci nacin:adresira se gornji levi karakter. A zatim u DPTR se smesti adresa tablice koja se u ovom slucaju zove PORUKE i pozove se PRIK 12. PORPRIK MOV R1,#0 CALL ADRLCD MOV CHARBRO,#0 MOV DPTR,#PORUKE CALL PRIK12 RET Za ispisivanje poruke u drugom redu se koristi podprogram PORPRIKE 2 I razlika u odnosu na prethodni je u tome sto se adresira prvi karakter u donjem redu displeja I sto se uzimaju podaci iz PORUKE 2 PORPRIK2 MOV R1,#040H CALL ADRLCD MOV CHARBRO,#0

53

Page 54: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

MOV DPTR,#PORUKE2 CALL PRIK12 RET PRIK12 CLR C MOV A,R7 ;U R7 JE BROJ PORUKE (0-15) ANL A,#00001111B RL A RL A RL A RL A

ADDC A,DPL MOV DPL,A MOV A,DPH ADDC A,#0 MOV DPH,A MOV POMLO,DPL MOV POMHI,DPH NEXTPOR MOV DPL,POMLO MOV DPH,POMHI MOV A,CHARBRO MOVC A,@A+DPTR CALL LCDSTAMP INC CHARBRO MOV A,CHARBRO CJNE A,#016,NEXTPOR RET Ovde sada vidimo poruke koje su ispisane na displeju u prvom redu LCD displeja koji se sastoji od 16 karaktera u jednom redu tj ukupno 32 u oba reda. PORUKE DB ' Elektronski ' ;00 DB 'Djordjevic ' ;01 DB 'XXXX ' ;02 Ovde sada vidimo poruke koje su ispisane na displeju u drugom redu LCD displeja koji se sastoji od 16 karaktera u jednom redu tj ukupno 32 u oba reda. PORUKE2 DB ' fakultet ' ;00 DB ' Sasa' ;01 DB ' XXXX' ;02

54

Page 55: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

LR1RED DB '9904 ' LR2RED DB '4099 ' END START ;KRAJ PROGRAMA

VEZBANJA

1. Kreirati programsku sekvencu koja ce ispisivati u gornjem redu na displeju digitalni sat koji pocinje od 00:00:00?

Za izvrsenje ovog zadatka trebamo slediti standardnu proceduru definisanu kao: -Startovati ATMELOV softver koji je opisan u prethodnoj oblasti -Selektovati komponentu AT 89 S8253 -Selektovati pod program “PRIKAZIVANJE SATA” -Sledi detaljan opis ovog pod programa.

-Postavlja se adresa na 4 karakter u prvom redu,sledi adresiranjje LCD-a I onda ispise na 4 I 5 poziciji ispisuje sat koji pocinje od 00 zatim ispisuje “:”dve tacke.Za ispisivanje minuta koristi se 6 I 7 pozicija I na njoj pocetno stanje je 00,a zatim opet slede “:” I na kraju poslednja 2 karaktera na 8 I 9 poziciji ispisuje sekunde. -Uzme sada promenljivu koju zeli da upise u ovom slucaju to je SATI ,u B registar ubaci 10 zatim komandom DIV podeli sa 10 I u R7 je ostatak deljenja sa 10 -konvertuje BCD u ASCII pozivanjem podprogram -a u ACC smesta rezultat deljenja sa 10. -Pozove LCD STAMP I to istampa na displeju -Ispise izmedju SATI I MINUTI “:”

- ponoviti istu proceduru I za ispisivanje MINUTI I SEKUNDE -Ucita se hex oblik ovog asemblera u ATMEL softver -I izvrsiti datu naredbu selektovanjem AUTOPROGRAM

--ISPISUJE SAT U PRVOM REDU— CLCPRINT MOV R1,#04 ;POSTAVLJA ADRESU NA 4 KARAKTER U PRVOM REDUCALL ADRLCD MOV A,SATI MOV B,#010 DIV AB MOV R7,B ;U R7 JE OSTATAK DELJENJA SA 10 CALL BCDASC ;U ACC JE REZULTAT DELJENJA SATI/10

55

Page 56: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

CALL LCDSTAMP MOV A,R7 ;U R7 JE REZULTAT JEDINICE SATI CALL BCDASC CALL LCDSTAMP MOV A,#':' ;IZMEDJU SATI I MINUTI STAMPA ':' CALL LCDSTAMP MOV A,MINUTI MOV B,#010 DIV AB ;DELI MINUTI/10 MOV R7,B ;OSTATAK DELJENJA SMESTA U R7 CALL BCDASC ;U ACC JE REZULTAT DELJENJA MINUTI/10 CALL LCDSTAMP MOV A,R7 ;OSTATAK DELJENJA MINUTI/10 CALL BCDASC CALL LCDSTAMP MOV A,#':' ;':' IZMEDJU MINUTA I SEKUNDI CALL LCDSTAMP MOV A,SEKUNDE MOV B,#010 DIV AB ;DELI SEKUNDE/10 MOV R7,B CALL BCDASC CALL LCDSTAMP MOV A,R7 ;OSTATAK DELJENJA SEKUNDE/10 CALL BCDASC CALL LCDSTAMP JMP GP

Zadatak za studente:

Kreirati programsku sekvencu koja ce ispisivati sat na displeju stim da prvi karakter bude na poziciji 2 na LCD-u, a vreme pocinje da broji od 01 SAT ,28 MINUTA i 30 SEKUNDI i da izmedju brojeva ispisuje prazno mesto tj.BLANKO.

56

Page 57: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Grupa 1:___________________ _____________________

Grupa 2:___________________ _____________________

Grupa 3:___________________ _____________________

Grupa 4:___________________ _____________________

Grupa 5:___________________ _____________________

Grupa 6:___________________ _____________________

Grupa 7:___________________ _____________________

Grupa 8:___________________ _____________________

Grupa 9:___________________ _____________________

57

Page 58: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Grupa 10:___________________ _____________________

Grupa 11:___________________ _____________________

Grupa 12:___________________ _____________________

Grupa 13:___________________ _____________________

Grupa 14:___________________ _____________________

Grupa 15:___________________ _____________________

Grupa 16:___________________ _____________________

58

Page 59: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

2. Kreirati programsku sekvencu koja ce na svakih 2s ispuniti displej karakterima a drugih 2s displej biti prazan?

Za izvrsenje ovog zadatka trebamo slediti standardnu proceduru definisanu kao: -Startovati ATMEL softver koji je opisan u prethodnoj oblasti -Selektovati komponentu AT 89 S8253 -Selektovati pod program “PRIKAZIVANJE CRNO/BELO NA 1S” -Sledi detaljan opis ovog pod programa.

-Ovde so koristi pomocni flag koji se zove FUL EMPTY koji oznacava dali treba da je pun ili prazan displej jer ne postoji drugi nacin zato sto mozemo da pisemo samo podatke na LCD . -U slucaju da je FULL postavi se adresa u prvom redu I ispisu se 16 punih karaktera a zatim postavi adresa u donjem levom uglu I opet ispise 16 punih karaktera I to je to. -U slucaju da je EMPTY onda se samo pozove naredba CLRLCD koja obrise sadrzaj I time se zavrsava.

-Ucita se hex oblik ovog asemblera u ATMEL softver -I izvrsiti datu naredbu selektovanjem AUTOPROGRAM

CRNOBELO CPL FUL-EMPTY ;PUN ILI PRAZAN DISPLEJ JNB FULEMPTY,EMPTYDIS ;--ISPISUJE DISPLEJ PUNIM KARAKTERIMA U OBA REDA-- FULDIS MOV R1,#0 CALL ADRLCD ;POSTAVLJA ADRESU LCD-a: PRVI RED, LEVO MOV R1,#016 FULCHAR1 MOV A,#0FFH ;PUNI KARAKTER U PRVOM REDU CALL LCDSTAMP DJNZ R1,FULCHAR1 MOV R1,#040H CALL ADRLCD ;POSTAVLJA ADRESU NA POCETAK 2.REDA MOV R1,#016 FULCHAR2 MOV A,#0FFH ;PUNI KARAKTER U DRUGOM REDU ASCII=255 CALL LCDSTAMP DJNZ R1,FULCHAR2 JMP GP ;--BRISE DISPLEJ-- EMPTYDIS CALL CLRLCD ;BRISE LCD JMP GP

59

Page 60: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

Zadatak za studente:

Kreirati programsku sekvencu koja ce na svaku 1s ispisivati u gornjem redu displeja svi karakteri su “@” a u donjem redu displeja symbol “&”?

3. Kreirati programsku sekvencu koja ce ispisivati rec “ELEKTRONSKI FAKULTET” svakih 5s a narednih 5s ce ispisivati ime I prezime studenta u ovom slucaju “DJORDJEVIC SASA”? Za izvrsenje ovog zadatka trebamo slediti standardnu proceduru definisanu kao:

-Startovati ATMEL softver koji je opisan u prethodnoj oblasti -Selektovati komponentu AT 89 S8253 -Selektovati pod program “EL FAK/IME PREZIME NA 5S” -Sledi detaljan opis ovog pod programa. -Definisana promenljiva SEC 5 koja ispituje dali su prosle 5 sekunde I ako jesu onda se poziva podprogram za ispisivanje poruke 1 ili poruke 2 selektovanjem POR12.

-Za ispisivanje poruke u prvom redu se poziva podprogram PORPRIK a zaispisivanje poruke u 2 redu PORPRIK 2.

-Ucita se hex oblik ovog asemblera u ATMEL softver -I izvrsiti datu naredbu selektovanjem AUTOPROGRAM

ELFAK INC SEC5 MOV A,SEC5 CJNE A,#05,EXEF MOV SEC5,#0 CPL POR12 ;POMOCNI FLAG ZA ISPISIVANJE 1. ILI 2. PORUKE JB POR12,IMEPR ;ISPISUJE 2.PORUKU TJ IME I PREZIME MOV R7,#0 CALL PORPRIK CALL PORPRIK2 JMP GP

60

Page 61: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

IMEPR MOV R7,#01 CALL PORPRIK CALL PORPRIK2 EXEF JMP GP Zadatak za studente

Kreirati programsku sekvencu koja ce na 10 sekundi ispisivati poruku 1 i poruku 2 sukcesivno.Poruka 1 sadrzi “IME I PREZIME STUDENTA” a druha poruka “PROJEKAT 115”

4.Kreirati programsku sekvencu koja ce svakih “y” sekundi vrsiti siftovanje (pomeranje) reci “XXXX” u desno za 1 I po zavrsetku vracati na START?

Za izvrsenje ovog zadatka trebamo slediti standardnu proceduru definisanu kao: -Startovati ATMEL softver koji je opisan u prethodnoj oblasti -Selektovati komponentu AT 89 S8253 -Selektovati pod program “SHIFTOVANJE TEKSTA U DESNO” -Sledi detaljan opis ovog pod programa. -Poziva se podprogram SHIFTR -Postavi se adresa na prvu levu lokaciju u gornjem redu I upise se poruka na displeju. -ZATIM pozvati naredbu SHIFT KURSOR koji svaki put kada se upisuje poruka na displeju on pomera kursor za 1 mesto I na kraju vraca na START -Ucita se hex oblik ovog asemblera u ATMEL softver -I izvrsiti datu naredbu selektovanjem AUTOPROGRAM

61

Page 62: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

SHIFTR MOV R7,#02 ;PORUKA 02 IZ TABLICE 'PORUKE' CALL PORPRIK ;PRIKAZIVANJE PORUKE 1. RED LCD-a CLR ENABLE CLR RS MOV P0,#00011100B ;DISPLAY/CURSOR SHIFT SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS JMP GP Zadataka za studente

Kreirati programsku sekvencu koja ce u donjem redu displeja pomerati sadrzaj poruke u DESNO za jedno mesto a sadrzaj poruke je trenutni datum u formatu “MM DD YY” (MESEC,DAN,GODINA)

5.Kreirati programsku sekvencu koja ce svakih “y” sekundi vrsiti siftovanje (pomeranje) reci “XXXX” u levo za 1 I po zavrsetku vracati na START?

Za izvrsenje ovog zadatka trebamo slediti standardnu proceduru definisanu kao: -Startovati ATMEL softver koji je opisan u prethodnoj oblasti -Selektovati komponentu AT 89 S8253 -Selektovati pod program “SHIFTOVANJE TEKSTA U LEVO” -Sledi detaljan opis ovog pod programa. -Poziva se podprogram SHIFTL -Postavi se adresa na zadnju desnu lokaciju u donjem redu I upise se poruka na displeju. -ZATIM pozvati naredbu SHIFT KURSOR koji svaki put kada se upisuje poruka na displeju on pomera kursor za 1 mesto I na kraju vraca na START -Ucita se hex oblik ovog asemblera u ATMEL softver -I izvrsiti datu naredbu selektovanjem AUTOPROGRAM

62

Page 63: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

SHIFTL MOV R7,#02 ;PORUKA 02 IZ TABLICE 'PORUKE' CALL PORPRIK2 ;PRIKAZIVANJE PORUKE 2. RED LCD-a CLR ENABLE CLR RS MOV P0,#00011000B ;DISPLAY/CURSOR SHIFT SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS JMP GP Zadatak za studente

Kreirati programsku sekvencu koja ce u GORNJEM redu displeja pomerati sadrzaj poruke u LEVO za jedno mesto a sadrzaj poruke je “BROJ INDEKSA STUDENTA”

6.Kreirati programsku sekvencu koja ce vrsiti siftovanje (pomeranje) reci “XXXX” u desno za 1 mesto u gornjem redu displeja I pomeranje iste reci “XXXX” u levo za 1 mesto u donjem redu displeja I po zavrsetku vracati na START.Pocetak pomeranja u gornjem I donjem redu treba da je istovremen?

Za izvrsenje ovog zadatka trebamo slediti standardnu proceduru definisanu kao: -Startovati ATMEL softver koji je opisan u prethodnoj oblasti -Selektovati komponentu AT 89 S8253 -Selektovati pod program “SHIFTOVANJE TEKSTA LEVO-DESNO”

63

Page 64: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

-Sledi detaljan opis ovog pod programa. -Poziva se podprogram SHIFTLR -Adresira se odakle pocinje ispisivanje teksta -jednom se kursor pomera desno i tad se inkrementira karakter I cita tekst iz tablice i pozivom CHARACTER ENTRY MODE a drugi put se kursor pomera u levo i tad se adresa dekrementira ali sada pocetak poruke je sa zadnje lokacije u drugom redu -Ucita se hex oblik ovog asemblera u ATMEL softver -I izvrsiti datu naredbu selektovanjem AUTOPROGRAM

SHIFTLR CALL CLRLCD INC CHARBRO MOV A,CHARBRO ANL A,#00001111B MOV CHARBRO,A

; /////////////////////////// CLR RS MOV P0,#00000110B ;CHARACTER ENTRY MODE

SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS

CLR C MOV A,#0 ;ADRESA GORE LEVO JE 0 ADDC A,CHARBRO MOV R1,A CALL ADRLC MOV DPTR,#LR1RED MOV R1,#0

NEXTR1 MOV A,R1 MOVC A,@A+DPTR CALL LCDSTAMP INC R1 CJNE R1,#016,NEXTR1

; /////////////////////////// CLR RS

64

Page 65: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

MOV P0,#00000100B ;CHARACTER ENTRY MODE SETB ENABLE MOV R0,#050 DJNZ R0,$ CLR ENABLE MOV R0,#050 ;PAUSE 40uS DJNZ R0,$ ;MAX. EXECUTE TIME =40uS

CLR C MOV A,#04FH SUBB A,CHARBRO MOV R1,A CALL ADRLCD MOV DPTR,#LR2RED MOV R1,#0

NEXTR2 MOV A,R1 MOVC A,@A+DPTR CALL LCDSTAMP INC R1 CJNE R1,#016,NEXTR2 JMP GP Zadatak za studente Kreirati programsku sekvencu koja ce pomerati u gornjem I donjem redu displeja u desno I levo sukcesivno tekst poruke “SRBIJA”

65

Page 66: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

ZAKLJUCAK

Proucavajuci ove primere nadam se da sam studente i javnost uputio u sistem mikroprocesora i nacina ispisivanja raznih vidova poruka na LCD displeju.Obradili smo i neke najnovije programske sekvence i ATMEL mikroproces AT 89 S 8253 kao i ATMEL softver sa svim slikovito prikazanim funkcijama koje se koriste da bi smo dobili ono o cemu smo pricali na pocetku a to su sve one poruke koje se mogu videti na LCD displejima na raznim mestima.

66

Page 67: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

LITERATURA

-RISC i SICS Procesori –Pr.Mile Stolcev -www.Atmel.com literature -Arhitektura procesora C8051 -www.HOW TO USE INTELIGGENT L.C.D.s-Julyan Ilett -Quarc oscillator.com -www.Atmel software.com

67

Page 68: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

DODACI

Sva literature koja je koriscena u ovom projekti je data u elektronskoj verziji ovog projekta I zainteresovani kandidati je mogu preuzeti. Kandidat: Djordjevic Sasa 9904

Page 69: OBRADA PREKIDA KOD MIKROKONTROLERA AT …es.elfak.ni.ac.rs/Papers/Obrada prekida_AT89S8253.pdfkorisnicima.Sa razvojem mikrokontrolera u proslosti povecavao se broj procesa koji su

68