95
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU Merenje vremena treperenja tastera pomoću mikrokontrolera AT89S8253

es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU

Merenje vremena treperenja tastera pomoću mikrokontrolera AT89S8253

Studenti:

Milan Radenković 11280 Aleksandar Stevanović 11313

Page 2: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

SADRŽAJ

2

Page 3: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

1. UVOD ---------------------------------------------------------------------------------------- 5

1.1. Šta su mikrokontroleri? ------------------------------------------------------------------- 6

1.2. Mikrokontroleri: tipovi arhitektura i blok šema --------------------------------------- 8

1.3. Mikrokontroleri u odnosu na mikroprocesore ----------------------------------------- 9

1.4. Struktura mikroprocesora --------------------------------------------------------------- 10

1.5. Struktura mikrokontrolera --------------------------------------------------------------- 11

1.6. Razlike između mikroprocesora i mikrokontrolera ---------------------------------- 12

2. MIKROKONTROLER AT89S8253 ----------------------------------------------------- 15

2.1. Unutrašnja struktura mikrokontrolera -------------------------------------------------- 15

2.2. Opis pinova -------------------------------------------------------------------------------- 16

2.3. Redukovani režim napajanja ------------------------------------------------------------- 20

2.4. Programska memorija --------------------------------------------------------------------- 20

2.5. Memorija podataka ------------------------------------------------------------------------ 22

2.6. Programski statusni registar -------------------------------------------------------------- 27

2.7. Taktovanje mikroprocesora -------------------------------------------------------------- 28

2.8. Mašinski ciklusi --------------------------------------------------------------------------- 29

2.9. Brojači/Tajmeri --------------------------------------------------------------------------- 29

2.9.1. Kontrola rada tajmera -------------------------------------------------------- 302.9.2. Modovi rada tajmera 0 i 1---------------------------------------------------- 31

3

Page 4: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2.10. Opis prekida kod mikrokontrolera ---------------------------------------------------- 33

2.10.1. Izvori prekida --------------------------------------------------------------- 34 2.10.2. Maskiranje prekida --------------------------------------------------------- 38 2.10.3. Prioriteti prekida ------------------------------------------------------------ 39 2.10.4. Serijski prekidi -------------------------------------------------------------- 40 2.10.5. Važno prekidno razmatranje: Zaštita registara -------------------------- 41 2.10.6. Najčešći problemi sa prekidima ------------------------------------------ 43

2.11. Načini programiranja ------------------------------------------------------------------ 45 2.12. Električna šema ------------------------------------------------------------------------ 45

3. OPIS SISTEMA --------------------------------------------------------------------------- 47

3.1. Blok šema ----------------------------------------------------------------------- 47 3.2. Rešenje problema -------------------------------------------------------------- 49 3.3. Algoritam ----------------------------------------------------------------------- 50

4. KOD ---------------------------------------------------------------------------------------- 53 4.1. Definisanje funkcija i promenljivih ----------------------------------------- 53

4.2. Hardverski zahtevi ------------------------------------------------------------- 53 4.3. Inicijalizacija TIMER-a ------------------------------------------------------- 54 4.4. Glavni program ----------------------------------------------------------------- 54 4.5. Inicijalizacija displeja ---------------------------------------------------------- 59 4.6. Prikazivanje poruke ------------------------------------------------------------ 60

5. PROGRAMIRANJE MIKROKONTROLERA AT89S8253 ------------------------ 63

5.1. ISP PROG 1.3 ------------------------------------------------------------------ 64

6. LITERATURA ----------------------------------------------------------------------------- 67

7. BIOGRAFIJE AUTORA ---------------------------------------------------------------- 69

4

Page 5: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

1. UVOD

Današnji život je, nezamisliv bez različitih vidova komunikacije, informisanja, kontrole i dr. Sve više procesi koji mogu da se kontrolišu 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 možemo 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 izvršenju mnogih procesa, zapostavlja a ostavlja mesto da sami elektronski uređaji upravljaju i kontrolišu neke procese. Kao primer toga u vojnoj avijaciji se sve cešće upotrebljavaju bespilotne letelice koje same kontrolišu, snimaju, izvršavaju zadatke tamo gde je to potrebno.

Sve ovo o čemu smo govorili ne može se zamisliti bez sistema kao sto su memorijski prostori, procesori, mikrokontroleri, displeji, senzori i dr. Sa razvojem mikrokontrolera u prošlosti povećavao se broj procesa koji su mogli da se kontrolišu

5

Page 6: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

ovim putem. Mikrokontroleri su relativno spori ali sa aspekta iskorišćenja silicijuma po površini-veoma-efikasni procesori, uglavnom namenjeni za upravljačko-intenzivne aplikacije. Karakteriše ih mikroprogramska CISC bazirana arhitektura, što znači 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.

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.

1.1. Š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 međusobno 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 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

6

Page 7: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

specijalozovane komponente, posebno pogodne (prilagođene) za veoma brzo manipulisanje podacima.No kod određenih aplikacija veoma često je neophodno ugraditi određeni iznos lokalnog procesiranja na licu mesta procesa. Tako na primer, automat za izdavanje karata na autobuskim stanicama treba da ima određeni 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 takođe 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 uređaja baziranih na mikrokontrolerima od izuzetne važnosti za krajnjeg korisnika, mikrokontroleri su integrisali na čipu veliki broj standardnih periferala, kontrolere raznih tipova uređaja, 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 određene 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 proizvođača, tako da je posao projektanta da izabere najbolji mikrokontroler za datu 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 usađenu 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č događaja, LCD drajver, i dr. Mikrokontroleri se danas koriste u embedded sistemima za upravljanje raznim funkcijama koje sistem treba da obavi. Na primer, u današnjim automobilima ugrađuje se veliki broj (reda 100) mikrokontrolera koji se koriste za upravljanje radom kočionog sistema, ubrizgavanjem goriva, klima sistemom za grejanje-hlađenje,

7

Page 8: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

prikazom informacije na pokaznoj tabli, i td. Drugim rečima, jedno-čipni računar omogućava projektantima da ugrade računar u bilo kom uređaju koji postavlja makar i minimalne zahteve za određenim 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 takođe da rade po nadzorom operativnih sistema za rad u realnom vremenu (RTOS) čiji je obim manji, pri čemu ovakvi sistemi bolje reaguju (za krać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.

1.2. 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 pro-gramskoj memoriji i memoriji za podatke ostvaruje konkurentno. Obvakvim pristupom se skraćuje ukupno vreme izvršenja programa. Proizvođač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. Arhitek-ture 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 proizvođač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 relokati-bilnim softverskim magacinom (stack) omogućavaju efikasno korišćenje pro-gramskog 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 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 prilagođene za

8

Page 9: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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 događaja, PWM generatore, AD i DA konvertore, i dr. Pored ostalog programska memorija i memorija za podatke su takođe 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 uređaja. Veliki broj proizvođača naziva mikrokontrolere embedded procesore. Razlika između 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.Opšti blok dijagram mikrokontrolera je prikazan na slici 1.

slika 1.

9

Page 10: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Blok dijagram mikrokontrolera

1.3. Mikrokontroleri u odnosu na mikroprocesore

Da bi ukazali na to kakva razlika postoji između mikroprocesora i mikrokontrolera analiziraćemo sliku 2 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.).

slika 2. Detaljni blok dijagram mikroračunarskog sistema

1.4. Struktura mikroprocesora

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

10

Page 11: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

slika 3. Blok dijagram mikroprocesora(CPU-a)

Da bi se kompletirao mikroračunarski sistem pored mikroprocesora potrebno je dodati ROM, RAM memorijske dekodere, oscilator, određeni broj ulazno-izlaznih uređaja kakvi su paralelni i serijski portovi za podatke, A/D i D/A konvertore i drugo. Pored ulazno-izlaznih uređaja 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 uređaji 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.

1.5. Struktura mikrokontrolera

Blok dijagram mikrokontrolera prikazan je na slici 4. 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 takođe i RAM, ROM, paralelne i serijske U/I portove, generatore takta i dr.Kao i mikroprocesor, i mikrokontroler je uređaj opšte namene, koji pribavlja podatke, obavlja ograničenu obradu nad tim podacima, i upravlja svojim okruženjem na osnovu

11

Page 12: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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.

slika 4.Blok dijagram mikrokontrolera

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.

1.6. Razlike između mikroprocesora i mikrokontrolera

Razlike su brojne ali one koje su najvaznije su sledeće: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.Za manipulisanje sa podacima tipa bit mikroprocesori koriste jedan ili dva tipa instrukcija, dok kod mikrokontrolera taj broj je veći.

12

Page 13: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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.Mikrokontroler moze da funkcioniše kao računar bez dodataka spoljnih gradivnih blokova (memorije i U/I uređaja), dok operativnost mikroprocesora bez spoljne memorije i U/I podsistema nije moguća.

13

Page 14: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

14

Page 15: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2. MIKROKONTROLER AT89S8253

Atmel-ov mikrokontroler AT89S8253 je 8-bitni mikrokontroler izrađen u CMOS tehnologiji i optimizovan za upravljačke aplikacije. Kompatibilan je sa MCS-51 serijom mikrokontrolera. Set instrukcija je kompatibilan sa industrijskim standardom 80C51. Proizvodi se u tri kućišta (DIP-40, PLCC44, TQFP44) i jednom specifičnom (DIP-42) kućištu. Raspored pinova je prikazan na Slici 2.1 – dok je unutrašnja struktura mikrokontrolera prikazana na Slici 2.2.

U programerskom smislu, AT89S8253 je gotovo identičan sa mikrokontrolerom AT89S53.

2.1. Unutrašnja struktura mikrokontrolera

Ukratko, ovaj mikrokontroler poseduje sledeće karakteristike:

Obimne logičke procesne mogućnosti (jednobitna logika) Ugrađena flash programska memorija (12 Kb) Ugrađena RAM memorija podataka (256 x 8 bitova) 32 dvosmerne (bidirekcione) i pojedinačno adresibilne ulazno/izlazne linije Devet izvora prekida Ugrađeni EEPROM (2Kb) Programabilni UART sa potpunim dupleksom i detekcijom greške rama

podataka SPI serijski interfejs Tri nivoa zaštite programske memorije Tri 16-bitna tajmera/brojača Programabilni watchdog tajmer Flag prestanka napajanja Režimi smanjene potrošnje Napajanje u opsegu 4-6V Ugrađeni oscilator takta Frekvencija rada do 24MHz.

2.2. Opis pinova

15

Page 16: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Slika 2.1. Raspored pinova kod mikrokontrolera AT89S8253

VCC - napajanje (za sva kucista osim za 42 PDIP);

GND - masa(za sva kućista osim za 42 PDIP,za 42 PDIP masa spaja logičko jezgro i ugradjene data/program memorije);

VDD - napon napajanja za 42PDIP koji spaja logičko jezgro i ugradjenu program/data memoriju;

PWR VDD - napon napajanja za 42PDIP koji sadrži samo I/O drajvere.Aplikaciona ploča mora da spoji zajedno VDD i PWRVDD na zajedničko napajanje;

PWR GND - masa za 42 PDIP koji spaja samo I/O drajvere .PWR GND i GND su obično spojeni pomoću uobičajenih silikonskih supstrata,ali ne preko bilo kog metalnog linka.Aplikaciona ploča mora zajedno GND i PWR GND spojiti na zajedničku masu;

PORT 0 - je 8-bitni I/O port,a takodje i izlazni port. Svaki pin može pobuditi 8 TTL ulaza.Kada je 1 s upisana na port 0 može biti visoko impedansni ulaz.Ovaj pin se može koristiti kao multiplekser ali i kao prenosni put niske naredbe address-data u toku prihvatanja spoljašnjih programa i memorijskih podataka. U ovom modu Port 0 ima unutrasnje neprekidno napajanje. PORT 0 takodje prihvata kodove u toku programiranja FLASH memorije i izlazne kodove u toku verifikacije programa;

16

Page 17: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

PORT 1 - Ovaj port je 8-bitni obostrano prihvatni I/O port sa neprekidnim unutrašnjim napajanjem. Izlazne posebne memorijske lokacije PORT 1 mogu pobuditi 4 TTL logicka kola. Kada je 1s upisana na Port 1, pinovi su na visokom nivou uz pomoć unutrasnjeg neprekidnog napajanja i mogu se koristiti kao ulazi. Početna ulazna struja je Iil=150µA zbog unutrašnjeg neprekidnog napajanja. Neki PORT 1 pinovi mogu imati i druge dodatne funkcije P.1.0 i P.1.1 mogu služiti kao 2 spoljašnja 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 služiti za pomoćne 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.

PORT 2 je 8 bitni dvosmerni I/O port sa unutrašnjim neprestanim napajanjem. Izlazne pomoćne memorije PORT-a 2 mogu prihvatiti/napajati 6 TTL ulaza. Kada je 1s na ulazu Porta 2 on je na visokom nivou uz pomoć neprekidnog unutrašnjeg napajanja i mogu se koristiti kao ulazi. Kod ovih ulaza tipična ulazna stuja je 150 µA zbog slabog unutrašnjeg neprekidnog napajanja. PORT 2 emituje adrese visokih naredbi u toku donošenja podataka od spoljasnje memorije i u toku prihvatanja podataka iz spoljašnje memorije koje koriste 16-bitne adrese(MOVX I DPTR). U ovom slucaju PORT2 kada emituje 1s koristi jako unutrašnje napajanje . U toku prihvatanja podataka iz spoljašnje memorije PORT 2 korist 8 bitne 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 bitni dvosmerni I/O port sa neprekidnim unutrašnjim napajanjem. PORT 3 pomoćne memorije mogu pobuditi 6 TTL ulaza. Kada se upisuju podaci na PORT 3, ovaj PORT dosta energije vuče od unutrašnjeg neprekidnog napajanja i tada se mogu koristiti ulazi. Kod ovih ulaza uz pomoc spoljašnjeg napajanja

17

Page 18: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

struja je tipicno 150 µA zbog slabog unutrašnjeg napajanja. PORT 3 takodje prihvata i pojedine kontrolne signale za programiranje FLASH memorije. PORT 3 takodje predstavlja i servis specijalnih promenljivih osobina AT89S8253 koji su prikazani u tabeli:

NAPOMENA: Svi pinovi u PORT 1 i PORT 2 kao i pinovi PORT 3 (izuzev P3.2 INT 0 i P 3.3 INT 1) imaju sopstveno nepekidno napajanje koje je nedostupno u

POWER-DOWN modu. Pinovi P 3.2 (INT 0) I P 3.3 (INT 1) su aktivni podjednako i u POWER –DOWN modu ( da bi mogli da potražuju prekide za izlaz iz POWER-DOWN moda) uz stalno uključeno unutrašnje napajanje.

RST - RESET ulaz. Ovaj pin ima visoki nivo za najmanje 2 ciklusa. ALE/PROG - omogućava blokiranje podataka. ALE/PROG je ustvari izlaz

koji blokira niske byte adrese (u toku opadajuce ivice) u toku prihvatanja spoljašnje memorije. Ovaj pin je takodje ulazni impuls programa (PROG) u toku programiranja FLASH-a. U normalnom radu ALE traje 1/6 frekvencije oscilovanja i može biti upotrebljen za spoljasnji counter i clock. Važno je, medjutim, da je ALE impuls preskočen u toku svakog prihvatanja podataka iz spoljašnje memorije. ALE operacija moze 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 spoljašnjem izvršnom modu.

PSEN - omogućava čuvanje programa. PSEN čita strobe za programiranje spoljašnje memorije. Kada AT89S8253 izgubi code od izlazne memorije programa, PSEN je aktivan dvostruko u toku svakog ciklusa mašine izuzev 2 PSEN u toku svakog prihvatanja podataka od spoljašnje memorije.

18

Page 19: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

EA/VPP - spoljašnje omogućavanje pristupa. EA mora biti na GND u naredbi za omogućavanje komponente za unošenje podataka iz spoljašnje memorijske lokacije startujući od 0000H sve do FFFFH. Uprkos tome ,to je moguce samo ako je zaključani bit 1 programiran, i EA ce biti postavljeno na RESET.

EA treba biti postavljen na Vcc za izvršenje 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 pojačavač oscilatora i ulaz u unutrašnji clock električnog kola.

XTAL 2 - izlaz iz invertovanog pojačavača oscilatora.

Slika 2.2. Unutrašnja struktura mikrokontrolera AT89S8253

19

Page 20: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2.3. Redukovani režim napajanja

U cilju uštede potrošnje električne energije, koja je dostupna za CMOS kola, Atmel-ovi flash mikrokontroleri mogu da uđu u dva režima redukovanog napajanja:

Režim praznog hoda (Idle Mode). CPU se prestaje sa radom, dok RAM i drugi ugrađeni pe-riferali u mikrokontroleru nastavljaju da rade. U ovom režimu rada, mikrokontroler se napaja strujom koja iznosi oko 15% vrednosti struje u normalnom režimu, tj. kada je mikrokontroler potpuno aktivan. U ovom modu (režimu rada), mikrokontroler tipično povlači struju oko 2 μA.

Režim smanjene potrošnje (Power Down Mode). Sve aktivnosti unutar mikrokontrolera su suspendovane, dok RAM i dalje zadržava svoj sadržaj. U ovom režimu, mikrokontroler tipično povlači struju oko 1 μA, a ponekad i manje od 0.2 μA. Kao dodatak, ovi mikrokontroleri su projektovani korišćenjem statičke logike, koja ne zahteva kontinualno taktovanje. To znači da frekvencija takta mikrokontrolera može usporiti ili čak zaustaviti, dok se čeka na unutrašnji događaj.

2.4. Programska memorija

Svi Atmel-ovi flash mikrokontroleri imaju odvojene adresne prostore za programsku i memoriju podataka, što je prikazano na Slici 2.3. Ovo logičko odvajanje omogućava da se memorija podataka adresira sa 8-bitnim adresama, koje mogu brže da se memorišu. Pored toga, 16-bitne memorijske adre-se mogu da se generišu preko DPTR registra. Mogu će sa mo čitanje programske memorije, koja može da se direktno adresira do 64 Kb. Impuls PSEN (Program Signal Enable Store) služi za čitanje spo-ljašnje programske memorije (vidi Sliku 2.3). Memorija podataka zauzima odvojeni adresni prostor od programske memorije. Do 64Kb spoljašnje memorije može da se direktno adresira u spoljašnjem memorijskom prostoru podataka. Mikroprocesor generiše signale čitanja (RD) i upisa (WR), tokom pri-stupa spoljašnjoj memoriji podataka. Spoljašnja programska memorija i spoljašnja memorija podataka mogu da se kombinuju primenom RD i PSEN signala na ulazu I (AND) kola.

20

Page 21: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Slika 2.3. Struktura programske i memorije podataka

Najniže adrese programske memorije mogu da se nalaze ili u ugrađenoj flash memoriji ili u spoljašnjoj memoriji. Da bi se ovo odabralo, treba povezati EA (External Access) pin na masu (GND), a sva programska obraćanja usmerena su prema spoljašnjoj memoriji. Impuls za čitanje spoljne me-morije, PSEN, koristi se za sva spoljašnja programska obraćanja. nutrašnja programska obraćanja ne mogu da aktiviraju PSEN .

Mapa donjeg dela programske memorije prikazana je na Slici 2.4. Posle reseta, mikroprocesor započinje da izvršava instrukcije počev od memorijske lokacije 0000H. Kao što se vidi na slici, svakom prekidu je dodeljena fiksna lokacija u programskoj memoriji. Prekid inicira da mikroprocesor “skoči” na tu lokaciju, gde izvršava servisnu rutinu. Spoljašnji Prekid 0, na primer, dodeljen je memorijskoj lokaciji 0003H. Ako se koristi spoljašnji Prekid 0, njegova servisna rutina mora da započne od lokacije 0003H. Ukoliko se ne koristi prekid, pomenuta servisna lokacija je dostupna kao programska memorija opšte namene. Prekidne servisne lokacije postavljene su u 8-bitnim intervalima (razmacima):

0003H za spoljašnji Prekid 0, 000BH za Tajmer 0, 0013H za spoljašnji Prekid 1, 001BH za Tajmer 1, i tako dalje.

21

Page 22: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Ukoliko je servisna rutina prekida dovoljno kratka (to je čest slučaj u upravljačkim aplikaci-jama), ista može potpuno da se smesti unutar 8-bajtnog intervala. Duže rutine prekida mogu da koriste instrukciju skoka, kako bi preskočili sledeće prekidne lokacije – ako su u upotrebi drugi prekidi.

Slika 2.4. Programska memorija

2.5. Memorija podataka

Desna polovina Slike 2.3 prikazuje unutrašnje i spoljašnje memorijske prostore dostupne kod Atmel-ovih flash mikrokontrolera. Slika 2.4 prikazuje konfiguraciju za pristupanje do 2Kb spoljaš-nje RAM memorije. U ovom slučaju, mikroprocesor izvršava program iz unutrašnje flash memorije. Port 0 služi kao multipleksirana magistrala adresa/podataka za RAM, dok se 3 linije Porta 2 koriste za straničenje RAM-a.

Može se dodeliti do 64 Kb spoljašnje memorije podataka. Adrese spoljašnje memorije podataka mogu da budu širine 1 ili 2 bajta. Jednobajtne adrese često se koriste u vezi sa jednim ili više dru-gih ulazno/izlaznih linija za straničenje RAM-a, kao što je prikazano na Slici 2.5. Dvo-bajtne adre-se se takođe mogu koristiti, i u tom slučaju bajt više adrese se pojavljuje na Portu 2.

22

Page 23: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Slika 2.5. Izvršavanje programa iz spoljašnje memorije

Konfiguracija hardvera za izvršavanje spoljašnjeg programa je prikazana na Slici 2.5. Vidimo da 16 ulazno/izlaznih linija (Port 0 i Port 2) su posvećeni radu sa magistralom tokom obraćanja spoljaš-njeg programa memoriji. Port 0 (P0 na Slici 2.5) služi kao multipleksirana magistrala adresa/podataka.

Slika 2.6. Pristupanje spoljašnjoj memoriji podataka

On postavlja niži bajt programskog brojača (Program Counter) PCL kao adresu i zatim prelazi u plivajuće stanje, dok čeka na pristizanje bajta kôda iz programske memorije. Tokom vremena kada je PCL važeći na P0, signal ALE (Address Latch Enable) postavlja ovaj bajt u adresni leč. U međuvremenu, Port 2 (P2 na Slici 2.5) postavlja viši bajt programskog brojača PCH. Tada PSEN šalje impuls

23

Page 24: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

spoljašnjoj memoriji, i mikrokontroler čita bajt kôda. Adrese programske memorije su uvek 16-bitne, čak i kada kapacitet upotrebljene memorije može da bude manja od 64 Kb. Izvršavanje spoljašnjeg programa “troši” (“žrtvuje”) dva 8-bitna porta (P0 i P2), zbog operacije adresiranja prog-ramske memorije.

Ukoliko je programska memorija unutrašnja, ostali bitovi P2 dostupnisu kao ulaz/izlaz. Unutraš-nja memorija podataka je prikazana na Slici 2.6. Memorijski prostor je podeljen u tri bloka, koji se uglavnom nazivaju niži 128, gornji 128, i SFR prostor.

Adrese unutrašnje memorije podataka su uvek dužine 1 bajt, što znači da se adresira samo prostor od 256 bajtova. Ipak, način adresiranja unutrašnjeg RAM-a može da, u stvari, smesti 384 bajtova. Direktne adrese veće od 7FH pristupaju jednom memorijskom prostoru, a indirektne adrese veće od 7FH pristupaju različitom memorijskom prostoru. Prema tome, Slika 2.7 ilustruje Gornji 128 i SFR prostor koji zauzima isti blok adresa, od 80H do FFH, iako su oni fizički odvojeni entiteti.

Slika 2.7. Unutrašnja memorija podataka

24

Page 25: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Slika 2.8. Nižih 128 bajtova unutrašnjeg RAM-a

Slika 2.9. Gornjih (viših) 128 bajtova RAM-a

25

Page 26: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Slika 2.8 ilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano u 4 banke od 8 registara. Programske instrukcije pozivaju ove registre kao R0 do R7. Dva bita u registru programske statusne reči PSW (Program Status Word) selektuju koja je registarska banka u upotrebi. Ova arhitektura omogućava efikasniju upotrebu kôdnog prostora, pošto su registarske in-strukcije kraće od instrukcija koje koriste direktno adresiranje. Sledećih 16 bajtova iznad registarskih banki formira blok bit-adresibilnog memorijskog prostora. Skup instrukcija mikrokontrolera uključuje veliki broj instrukcija sa jednim bitom, i ove instrukcije mogu direktno da adresiraju 128 bitova u ovom prostoru. Ove bit-adrese su od 00H do 7FH. Svi bajtovi u donjih 128 bajtova prostora mogu da se adresiraju ili direktno ili indirektno. Gornjih 128 (Slika 2.9) može da se adresira samo indirektno. Gornjih 128 bajtova RAM-a su samo u uređajima sa 256 bajta RAM-a.

Na Slici 2.10 prikazan je prostor registara specijalnih funkcija SFR (Special Function Register). SFR uključuje lečeve porta, tajmere, kontrolu periferala itd. Ovi registri mogu da se adresiraju samo direktno, tj. pristupa im se direktnim adresiranjem.

Slika 2.10. Prikaz registara specijalne namene

26

Page 27: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2.6. Programski statusni registar

Programski statusni registar (PSW) sadrži bitove statusa koji ukazuju na trenutno stanje mikroprocesora. PSW, prikazan na Slici 2.11, smešten je u SFR prostor. PSW sadrži bit prenosa (carry bit), bit pomoćnog prenosa (auxiliary carry bit) za BCD operacije, dva bita za selekciju ban-ke registara, marker prekoračenja (overflow flag), bit parnosti (parity bit), i dva korisnička statusna markera.

Bit prenosa, služi kao bit prenosa u aritmetičkim operacijama, a takođe služi i kao akumulator za veliki broj logičkih operacija. Bitovi RS0 i RS1 selektuju jednu od četiri registarke banke prikazane na Slici 2.8. Veliki broj instrukcija se obraća ovim lokacijama kao R0 do R7. Status bitova RS0 i RS1 u vreme izvršenja određuje koja je od četiri banke selektovana.

Bit parnosti ukazuje na broj jedinica u akumulatoru: P=1 – ukoliko akumulator sadrži neparan broj jedinica, i P=0 – ukoliko akumulator sadrži paran broj jedinica. Prema tome, broj jedinica u aku-mulatoru plus P uvek je paran broj.

Dva bita u PSW su neiskorišćeni i mogu da se upotrebe kao statusni bitovi opšte namene.

Slika 2.11. PSW registar u Atmelovim flash mikrokontrolerima

27

Page 28: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2.7. Taktovanje mikroprocesora

Svi Atmelovi flash mikrokontroleri poseduju ugrađeni oscilator, koji se može da se koristi kao iz-vor za njegov mikroprocesor. Da bi se koristio ugrađeni oscilator, treba povezati kristalni ili kera-mički rezonator između pinova XTAL1 i XTAL2 mikrokontrolera, i da se povežu kondenzatori pre-ma masi, kao što je prikazano na Slici 2.12.

Primer napajanja sa taktom iz spoljašnjeg oscilatora je prikazan na Slici 2.13. Unutrašnji takt ge-nerator definiše sekvence stanja koje čine mašinski ciklus.

Napomenuto je u uvodu kako mikroprocesor mikrokontrolera AT89S8253 može da se taktuje frekvencijom. Vrednosti kondenzatora na Slikama 2.12 i 2.13 mogu da uzimaju vrednosti 30±10 pF.

Slika 2.12. Korišćenje ugrađenog oscilatora

Slika 2.13. Povezivanje oscilatora (A) i konfiguracija sa spoljašnjim taktom (B)

28

Page 29: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2.8. Mašinski ciklusi

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

2.9. Brojači/Tajmeri

Mikrokontroler AT89S8253 ima tri šesnaestobitna tajmersko-brojačka registra. Tajmeri se mogu kofigurisati da rade u četiri moda rada, izuzetak je tajmer 2 koji može da radi u tri moda rada. Kada rade kao brojači, sadržaj tajmerskog registra se uvećava za jedan na svaku silaznu ivicu odgovarajućeg ulaza mikrokontrolera (T0 za tajmer 0, T1 za tajmer 1 i T2 za tajmer 2).

Maksimalna frekvencija ulaznog signala koju brojač može da prati je 24 puta manja od radnog takta mikrokontrolera. Kada rade kao tajmeri sadržaji tajmerskih registara se uvećava za jedan u svakom mašinskom ciklusu. Jedan mašinski ciklus traje 12 perioda radnog takta mikrokontrolera. Npr , ako je radni takt 24MHz, registri se uvećavaju svakih 500 ns.

Svakom tajmeru pripadaju po dva osmobitna registra:

tajmeru 0: TH0 i TL0,

tajmeru 1: TH1 i TL1 i

tajmeru 2: TH2 i TL1.

29

Page 30: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2.9.1. Kontrola rada tajmera

Radom tajmera 0 i 1 upravlja se pomoću registara TMOD i TCON.

Značenje pojedinih bita je sljedeće:

GATE – kontrola gejta. Kada je ovaj bit na jedinici odgovarajući tajmer može da broji kada je pripadajući TR bit jedinica i pripadajući INTx ulaz mikrokontrolera visok. Ako je vrijednost GATE bita 0, onda je dovoljno da odgovarajući bit TR bude visok.

C/`T- ovaj bit određuje da li odgovarajući tajmer radi kao brojač opadajućih ivica na odgovarajućem T ulazu (C/`T= 1) ili kao tajmer (C/`T= 0).

M1 M0 Način rada (mod)

0 0 Mod 0 – tajmer radi kao 13-bitni brojač

0 1 Mod 1 – tajmer radi kao 16-bitni brojač

1 0 Mod 2 – tajmer radi kao osmobitni brojač. Brojački registar TL, nakon preticanja se puni sadržajem TH registra (auto reload)

1 1 Mod 3 – tajmer 1 je u ovom modu zaustavljen, a tajmer 0 radi kao dva odvojena osmobitna tajmera

30

Page 31: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Struktura TCON registra:

Značenje pojednih bita je sljedeće:

TF1 – zastavica preteka tajmera 1 automatski se briše kada se skoči na potprogram za opsluživanje prekida.

TR1 – postavljanje ovog bita tajmer 1 počinje da broji, dok u suprotnom ne broji.TF0 – zastavica preteka tajmera 0 automatski se briše kada se skoči na

potprogram za opsluživanje prekida.TR0 – postavljanje ovog bita tajmer 0 počinje da broji, dok u suprotnom ne broji.IE1 – zastavica detektovanog spoljašnjeg zahtjeva za prekidom 1. Kada je zahtjev

detektovan postavlja se na jedinicu, a briše se automatski kada se skoči na potprogram za opsluživanje prekida.

IT1 – određuje da li je ulaz spoljašnjeg prekida osjetljiv na na opadajuću ivicu (IT1=1) ili na nizak nivo (IT1=0).

IE0 – zastavica detektovanog spoljašnjeg zahtjeva za prekidom 0. Kada je zahtjev detektovan postavlja se na jedinicu, a briše se automatski kada se skoči na potprogram za opsluživanje prekida.

IT0 – određuje da li je ulaz spoljašnjeg prekida osjetljiv na na opadajuću ivicu (IT0=1) ili na nizak nivo (IT0=0).

2.9.2. Modovi rada tajmera 0 i 1

Preticanje: Kada svi bitovi registra tajmera/brojača postanu jedinice, sledećim uvećanjem sadržaja svi bitovi postaju nule.

31

Page 32: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Mod 0:

U ovom modu tajmer predstavlja 13-bitni tajmer/brojač. Preticanje tajmera izaziva postavljanje odgovarajućih interapt zastavica (TF2, TF1, TF0). Postavljanje interapt zastavice izaziva prelazak na izvršenje servisne rutine, ako je odgovarajući interapt dozvoljen. Biti TF1, TF0 automatski se brišu prilikom skoka na prekidnu rutinu.

Mod 1:Mod 1 je isti kao mod 0, s tim da se koristi svih 8 bita registra TL1 tako da

imamo 16-bitni registar tajmera.

Slika 2.14. Mod 0 ili 1 tajmera 0 ili 1

32

Page 33: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Mod 2

U ovom modu tajmer je kao osmobitni sa automatskim punjenjem incijalne vrijednosti nakon preticanja. timer 0 At89S8253.

Slika 2.15. Mod 2 tajmera 0 ili 1

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

33

Page 34: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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

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

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

34

Page 35: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

PrekidIzvorVektorske adreseSistem resetRST ili POR ili BOD0000HSpoljasnji prekid 0IE 00003HPrekid tajmera 0TF 0000BHSpoljasnji prekid 1 IE 10013HPrekid tajmera 1TF 1001BHPrekid serijskog portaRI ili TI0013H

Slede struktrure nekih registara:

Registar koji omogucava prekide je na sledecoj slici:

Registar prioriteta prekida je prikazan na sledecoj slici:

35

Page 36: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Simbol FunkcijePT2 Timer 2- prekid niskog prioritetaPS Serijski port- prekid niskog prioritetaPT1 Timer 1- prekid niskog prioritetaPX1 Spoljasnji prekid 1 niskog prioritetaPT0 Timer 0- prekid niskog prioritetaPX0 Spoljasnji prekid 0- prekid niskog prioriteta

Registar visokog prioriteta prekida je prikazan na sledecoj slici:

36

Simbol FunkcijePT2H Timer 2- prekid visokog prioritetaPSH Serijski port- prekid visokog prioritetaPT1H Timer 1- prekid visokog prioritetaPX1H Spoljasnji prekid 1 visokog prioritetaPT0H Timer 0- prekid visokog prioritetaPX0H Spoljasnji prekid 0- prekid visokog prioriteta

Page 37: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Izvor prekida je prikazan na sledecoj slici:

Slika 2.16. Izvor prekida

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

37

Page 38: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Slika 2.17. Ilustracija dozvole prekida

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

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

38

Page 39: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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.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.EX0 IE.0 Omogućava ili onemogućava spoljašnji prekid 0.

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

39

Page 40: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

7 - - Undefined6 - - Undefined5 - - Undefined4 PS BCh Serial Interrupt Priority3 PT1 BBh Timer 1 Interrupt Priority2 PX1 BAh External 1 Interrupt

Priority1 PT0 B9h Timer 0 Interrupt Priority0 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.

Šta se dogadja kada se prekid završi ?

40

Page 41: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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.

2.10.4. 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 procesiranjaCHECK_TI - JNB TI,EXIT_INT ;ako marker TI nije postavljen skočimo na

izlaznu tačkuCLR TI - brišemo TI bit pre slanja drugog karakteraMOV SBUF,#'A' - šaljemio drugi karakter na serijski portEXIT_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.

41

Page 42: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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

42

Page 43: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

''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 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 00hNaravno 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.

43

Page 44: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2.10.6. Najčešći 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.

44

Page 45: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

2.11. Načini programiranja

Programiranje, čitanje i brisanje sadržaja EEPROM-a i flash memorije mikrokontrolera može da se ostvari paralelno ili serijski. Ovde se nećemo zadržavati oko opisa jednog ili drugog načina progra-miranja, već ćemo naglasiti da se serijsko programiranje ostvaruje preko tri pina mikrokontrolera: MOSI (P1.5), MISO (P1.6) i SCK (P.1.7), uz dovedeni takt, napajanje i masu (GND).

2.12. Električna šema

Da bi se omogućilo programiranje i ispravno funkcionisanje mikrokontrolera, kao i prikaz toka komunikacije u skladu sa projektnim zadatkom, potrebno je obezbediti dodatne hardverske komponente, kao što su: napajanje, električna kola koja omogućavaju fizičko povezivanje sa računarom (MAX232, 74LVC244), displej za grafički prikaz. Sve ove komponente zajedno čine razvojni sistem, čija je el. šema data na slici 3.1. i u šemi na kraju rada.

Slika 3.1. Razvojni sistem mikrokontrolera

Page 46: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Štampana ploča na kojoj je smešten razvojni sistem prikazana je na sledećoj slici:

Slika 3.2. Štampana ploča (PCB) razvojnog sistema mikrokontrolera

Page 47: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

LCD 16 x 2

MCU

AT89S8253

3. OPIS SISTEMA

Cilj ovog projekta je da se pomocu mikrokontrolera AT89S8253 realizuje merenje vremena treperenja tastera. Za realizaciju pored pomenutog mikrokontrolera koristimo i pet razlicitih tastera na osnovu kojih vrsimo merenje. Tasteri su povezani na posebnoj ploci a pored svakog tastera stavljena je led dioda koja služi za vizuelnu indikaciju pritisnutog tastera kao sto je prikazano na blok šemi.

3.1. Blok šema

Slika 3.3 Blok šema sistema za merenje vremena treperenja

Kada se dirka pritisne (prekidač zatvori), ne postoji samo jedan, čisti prelaz iz stanja otvoreno u stanje zatvoreno. Naprotiv dirka treperi između stanja otvoreno i zatvoreno pre nego što ona konačno ne zauzme poziciju zatvoreno. Slična situacija se javlja i kada se dirka otpušta. Period treperenja dirke zavisi od njegove konstrukcije. Kvalitetne dirke trepere od (1-5)ms a

Page 48: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

loše od (20-100)ms. Ako se o treperenju ne vodi računa, mikroračunar će "smatrati" da je taster, umesto jedanput, više puta pritisnut i oslobođen. Postoji veći broj rešenja kako da se eliminiše problem treperenja dirki. Četiri hardverska metoda su prikazana na slici ispod .

Sve tehnike za eliminaciju treperenja dirki prikazane na slici pogodne su kod onih aplikacija kod kojih se čitanje stanja dirki vrši hardverski, Kod aplikacija gde se čitanje stanja dirki vrši softverski, eliminacija treptanja dirki se u potpunosti obavlja programski. Osnovna ideja algoritma za elimi-naciju treperenja dirki sastoji se u aktiviranju brojača čija perioda brojanja odgovara vremenu treperenja u toku aktiviranja i deaktiviranja dirke.

Kada je pritisak dirke detektovan, softver smešta kod dirke u lokaciju za privremeno memorisanje. Ako je dirka i dalje pritisnuta kada se vrši nova analiza tastature, tada se za svaku dirku smatra da je pritisnuta, a kod te dirke se predaje rutini za obradu. Ako je vreme treperenja duže od vremena analize, broj analiza za koje je dirka pritisnuta mora se odbrojati pa kada brojač dostigne određenu vrednost kod dirke se predaje rutini na dalju obradu.

Page 49: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Napomenimo da nije uvek neophodno eliminisati treperenje kako kod zatvaranja tako i kod otvaranja prekidača. Na narednoj slici prikazan je efekat eliminacije treperenja dirke koji je karakterističan za njeno oslobađanje.

U trenutku kada se dirka pritisne, za nju se smatra da je zatvorena. Ali u trenutku otpuštanja, ona mora ostati otvorena još najmanje 10ms pre nego što se smatra da će konačno biti otvorena.

3.2. Rešenje problema

Resenje problema merenja vremena treperenja tastera (slika ispod) se sastoji u sledecem:

Pritiskom i otpustanjem jednog od pet tastera startuju se TIMER 0 i TIMER 1. TIMER 0 se koristi za merenje ukupnog vremena a TIMER 1 za merenje vremena bez treperenja od 20 ms koje nam sluzi kao siguran uslov da je taster prešao iz jedno stanje u drugo na taj način sto se na svakom piku (treperenju) TIMER 1 resetuje i započinje brojenje ispočetka. Nakon isteka vremena od 20 ms TIMER0 i TIMER 1 se zaustavljaju a vreme treperenja V se određuje po formuli V= TIMER 0 – TIMER 1. Ukoliko je vreme treperenja tastera manje od 45536 µs rezultat će biti ispisan na LED displeju a ukoliko je vreme treperenja veće od 45536 µs na displeju ce biti ispisano XXXX (216 = 65536, 65536-20000=45536).

Page 50: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

3.3. Algoritam

Page 51: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Na sledećim slikama je prikazan rezultat nekoliko izvršenih merenja kao i slika celog projekta:

Sa slike se vidi da se merenje vremena treperenja vrši na tasteru T0 (gornji levi ugao LED displeja) a vreme treperenja pri uključenju (ON) odnosno isključenju (OFF) je prikazano na centralnom delu LED displeja (ON = 18.42 ms, OFF = 00.20 ms)

Na ovoj slici je prikazan slučaj kada je vreme treperenja tastera (T2) pri uključenju veće od 45536 µs, pa je u tom slučaju na pozciji gde treba da se ispiše rezultat merenja pri uključenju (ON) ispisano XXXX, a vreme isključenja (OFF) je 01.39 ms.

Page 52: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano
Page 53: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

4. KOD

Kod je pisan u Asembleru i kompajliran u softveru Arhimedes. Nakon završetka inicijalizacije, prelazi se na ispisivanje početne poruke i LED test. Početna poruka glasi:

“Elektronski fakultet’’’’MIPS laboratorija”

Nakon ovoga sistem je spreman za rad.

4.1. Definisanje funkcija i promenljivih

MASKA EQU 20HSTATUS EQU 21HPROC EQU STATUS.0 ;ISTEKLO VREME SIGURNO PROCITANOG TASTERATIMEOUT EQU STATUS.1 ;ISTEKLO MAX. DOZVOLJENO VREME ZA CITANJE STANJA TASTERA

CHARBRO EQU 30H ;BROJAC KARAKTERA ZA ISPISPOMLO EQU 31HPOMHI EQU 32HPRP EQU 33HBROSF EQU 34HTIMEHI EQU 35HTIMELO EQU 36H

CIF1 EQU 40HCIF10 EQU 41HCIF100 EQU 42HCIF1000 EQU 43HCIF10000 EQU 44H

4.2. Hardverski zahtevi

ENABLE EQU P3.7 ;ENABLE LCDRS EQU P3.6 ;REGISTAR SELECTBLIGHT EQU P3.5 ;BACK LIGHT LCD-a RSEG CODESTART JMP GLAVNI

ORG START+TIMER0 JMP TR0OUT ;PREKIDNI PROGRAM ZA TAJMER0 (time-out)

Page 54: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

ORG START+TIMER1 JMP TR1ISR ;INTERUPT SERVICE ROUTINE ZA TR1

4.3. Inicijalizacija TIMER-a

GLAVNI MOV IE,#00H ;zabrana svih interapta MOV SP,#70H ;definisanje steka

INIC: MOV TMOD,#011H ;T0 = 16b_TIMER, TR1 = 16b_TIMER MOV P1,#0FFH

MOV IE,#08AH ;ENABLE INTERRUPTS T0,T1 CALL PAUSE10MS ;PAUZA 10mS CALL LCDINIC ;INICIJALIZACIJA DISPLEJA

mov r7,#005h ;ISPISUJE PORUKU 5 U PRVOM I call PORPRIK ;5-tu PORUKU IZ TABELE U DRUGOM REDU call PORPRIK2

mov r3,#0100pauza1 call PAUSE10MS ;PAUZA 10mSEC x100=1SEC

djnz r3,pauza1

mov r7,#006h call PORPRIK call PORPRIK2

mov r3,#0100pauza1x call PAUSE10MS

djnz r3,pauza1x CALL CLRLCD ;BRISE LCD

4.4. Glavni program

GP MOV A,P1 ANL A,#00011111B CJNE A,#00011111B,DETEKT JMP GPDETEKT MOV MASKA,A CLR TIMEOUT MOV TH0,#000H MOV TL0,#000H MOV TH1,#0B1H MOV TL1,#0E0H SETB TR0 SETB TR1

CEK JB PROC,ISPIS JB TIMEOUT,ISPIS MOV A,P1 ANL A,#00011111B CJNE A,MASKA,RESTR JMP CEK

Page 55: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

RESTR MOV TH1,#0B1H ;65536-20000 = 45536dec = B1E0hex MOV TL1,#0E0H JMP CEK

ISPIS CLR C MOV A,TL0 SUBB A,#020H MOV TIMELO,A MOV A,TH0 SUBB A,#04EH ; 4E20hex = 20000dec MOV TIMEHI,A

CALL TASTISP ;ISPISIVANJE BROJA TASTERA CALL ISPISON CLR PROC ;CEKA ISKLJUCENJE TASTERA CKOFF MOV A,P1 ANL A,#00011111B CJNE A,#00011111B,CKOFF CLR TIMEOUT MOV TH0,#000H MOV TL0,#000H MOV TH1,#0B1H MOV TL1,#0E0H SETB TR0 SETB TR1

CHEK JB PROC,ISPOFF JB TIMEOUT,ISPOFF MOV A,P1 ANL A,#00011111B CJNE A,#00011111B,RESMOFF JMP CHEK

RESMOFF MOV TH1,#0B1H MOV TL1,#0E0H JMP CHEK ISPOFF CLR TR0 CLR TR1

CLR C MOV A,TL0 SUBB A,#020H MOV TIMELO,A MOV A,TH0 SUBB A,#04EH ;4E20H=20000dec MOV TIMEHI,A

CALL ISPISOFF CLR PROC

JMP GP ;PRIKAZIVANJE VREMENA UKLJUCENJA ISPISON MOV A,P1 ;TASTERI NA PORTU P1

Page 56: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

MOV P2,A ;LED NA P2 MOV R1,#007H CALL ADRLCD CALL VREME ;POTPROGRAM ZA ISPISIVANJE VREMENA RET

;PRIKAZIVANJE VREMENA ISKLJUCENJA;format XX,YY msISPISOFF MOV A,P1 ;TASTERI NA PORTU P1 MOV P2,A ;LED NA P2

MOV R1,#047H CALL ADRLCD CALL VREME RET;ISPISIVANJE VREMENA U PRVOM ILI DRUGOM REDUVREME JNB TIMEOUT,NORMVRE MOV A,#'X' CALL LCDSTAMP CALL LCDSTAMP CALL LCDSTAMP CALL LCDSTAMP CALL LCDSTAMP JMP EXVRE

NORMVRE MOV R3,TIMEHI MOV R2,TIMELO CALL DIV1610 ;JEDINICE uSEC MOV A,R7 ;U R7 JE OSTATAK DELJENJA R3,2 / 10 CALL BCDASC MOV CIF1,A

CALL DIV1610 ;DESETICE uSEC MOV A,R7 CALL BCDASC MOV CIF10,A

CALL DIV1610 ;STOTINE uSEC MOV A,R7 CALL BCDASC MOV CIF100,A

CALL DIV1610 ;HILJADE uSEC MOV A,R7 CALL BCDASC MOV CIF1000,A

CALL DIV1610 ;DES. HILJADA uSEC MOV A,R7 CALL BCDASC MOV CIF10000,A MOV A,CIF10000 CALL LCDSTAMP MOV A,CIF1000 CALL LCDSTAMP

Page 57: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

MOV A,#',' CALL LCDSTAMP MOV A,CIF100 CALL LCDSTAMP MOV A,CIF10 CALL LCDSTAMP EXVRE RET ;ISPISIVANJE ODGOVARAJUCE PORUKE O PRITISNUTOM TASTERUTASTISP JB P1.0,ISP1

MOV R7,#00 CALL PORPRIK CALL PORPRIK2 JMP EXPRN

ISP1 JB P1.1,ISP2 MOV R7,#01

CALL PORPRIK CALL PORPRIK2 JMP EXPRN

ISP2 JB P1.2,ISP3 MOV R7,#02

CALL PORPRIK CALL PORPRIK2 JMP EXPRN

ISP3 JB P1.3,ISP4 MOV R7,#03

CALL PORPRIK CALL PORPRIK2 JMP EXPRN

ISP4 JB P1.4,EXPRN MOV R7,#04

CALL PORPRIK CALL PORPRIK2 JMP EXPRN

EXPRN RET ;****** INTERRUPT TIMER-a 0 *************TR0OUT SETB TIMEOUT CLR TR0 CLR TR1 RETI

;****** INTERRUPT TIMER-a 1 na 20mS *************TR1ISR CLR TR0 CLR TR1 SETB PROC RETI

;-----------------------------------;DELJENJE 16-bitnog BIN. BROJA SA 10;-----------------------------------

Page 58: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

;U R7 SE NALAZI OSTATAK DELJENJADIV1610 MOV R7,#00 MOV BROSF,#16PODEL CLR C MOV A,R2 RLC A MOV R2,A MOV A,R3 RLC A MOV R3,A MOV A,R7 RLC A MOV R7,A CLR C MOV A,R7 SUBB A,#10 ;ISPITIVANJE DA LI JE OSTD >=10. MOV PRP,A ;PRIVREMENI SMESTAJ KOJI SE UZIMA U JC DECDEC ;OBZIR AKO JE OSTD >=10 MOV R7,PRP ;U R7 OSTD. INC R2DECDEC DJNZ BROSF,PODEL RET

;-------------------------------; KONVERZIJA BCD-ASCII;-------------------------------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 EXKONVBRMANJI POP ACC ORL A,#00110000B ;DODAJE 48EXKONV RET;***************************************************;------ CLEAR DISPLAY -------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,$ CLR ENABLE MOV R1,#017 ;PAUSE 1.7 mS, MAX. EXECUTE TIME = 1.64mSPAU100 MOV R0,#0100 DJNZ R0,$ DJNZ R1,PAU100 RET

Page 59: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

;------ POD.P ZA POSTAVLJANJE ADRESE REDA (ILI CHAR.) -------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 (ACC) NA LCD -------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

;--- SOFT. PAUZA 10mS ---PAUSE10MS MOV R1,#040 ;40x250uS=10mSPET250u MOV R0,#0250 DJNZ R0,$ DJNZ R1,PET250u RET

4.5. Inicijalizacija displeja

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

Page 60: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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.64mSPAU100uS 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

4.6. Prikazivanje poruke

;***** PRIKAZIVANJE PORUKA 1.RED ****PORPRIK MOV R1,#0 CALL ADRLCD MOV CHARBRO,#0 MOV DPTR,#PORUKE CALL PRIK12 RET

;***** PRIKAZIVANJE PORUKA 2.RED ****PORPRIK2 MOV R1,#040H CALL ADRLCD MOV CHARBRO,#0 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

Page 61: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

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

;******* TAB. TEKSTOVA ZA PRVI RED LCD-a *******; 1234567890123456PORUKE DB 'T0 ON ms' ;00 DB 'T1 ON ms' ;01 DB 'T2 ON ms' ;02 DB 'T3 ON ms' ;03 DB 'T4 ON ms' ;04 DB ' Elektronski ' ;05 DB ' MIPS ' ;06

;******* TAB. TEKSTOVA ZA DRUGI RED LCD-a ***PORUKE2 DB ' OFF ms' ;00 DB ' OFF ms' ;01 DB ' OFF ms' ;02 DB ' OFF ms' ;03 DB ' OFF ms' ;04 DB ' fakultet ' ;05 DB ' laboratorija ' ;06

END

Page 62: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano
Page 63: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

5. PROGRAMIRANJE MIKROKONTROLERA AT89S8253

Program koji smo napisali u asembleru možemo istestirati i kompajlirati pomoću više programa kao sto su Arhimed 8051, A51 makro asembler koji je u sastavu Keil uVision 3.

Ukoliko je program ispravan vršimo kreiranje hex fajla. Hex fajl upisujemo u mikrokontroler na način koji je opisan u slikovito prikazanom postupku koji sledi.

Za upis hex fajla koristimo ISP_PROG v1.3 Flexible Atmel AT89xx Flash programmer koji se moze download-ovati sa sajta www.8052.com Programator se sa racunarom povezuje preko serijske 232 veze (na COM port kompjutera).

Programiranje se vrši povezivanjem programatora na konektor JP1, stavljanjem prekidača S1 u stanje uključeno i prebacivanjem jumpera JP6 u mod „program“ . Time smo doveli potrebne signale za In Sistem Programiranje i reset procesora prebacili na programator. Napajanje programatora se vrši sa mikrokontrolerske ploče.

Nakon završenog programiranja (opisano u daljem tekstu) iskopčati programator sa ploče a prekidač i jumper vratiti u prethodni položaj i izvršiti reset mikrokontrolera pritiskom na taster RESET.

Šema programatora prikazana je na sledećoj slici:

Page 64: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

5.1. ISP PROG 1.3

Softver za ovaj programator je spakovan u jednoj izvršnoj datoteci i nije potrebna njegova instalacija, što pojednostavljuje njegovu upotrebu i mobilnost.

Pokretanje programa se vrši dvostrukim klikom na izvršnu datoteku.

Nakon pokretanja programa, ako vam isti prijavi grešku u konektovanju. Treba podesiti odgovarajući COM port na koji ste povezali vaš programator.Primer je prikazan na na sledećoj slici:

Sledeći korak je odabir kontrolera koji programiramo:

Page 65: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Zatim učitavamo HEX fajl koji želimo da upišemo u kontroler:

File – Load Flash File

Page 66: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Na kraju vršimo sledeće radnje u datom redosledu:- brisanje sadržaja kontrolera (CHIP ERASE)- upisivanje zeljenog HEX fajla u kontroler (WRITE FLASH)- provera upisanog sadrzaja (VERIFY FLASH)

Kao dodatne opcije korisniku se pruzaju i:-ostavljanje svog potpisa (WRITE USER SIGNATURE)-zaključavanje kontrolera (LOCK DEVICE)

Page 67: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

6. LITERATURA

1. ARHITEKTURE I PROGRAMIRANJE RAČUNARSKIH SISTEMA ZASNOVANIHNA FAMILIJI PROCESORA 80x86, Mile K. Stojčev, Branislav D. Petrović, I izdanje, Elektronski fakultet, Niš, 1999.2. Flash microcontroller – Architectural Overview, http://www.atmel.com3. Flash microcontroller – Memory Organization, http://www.atmel.com4. ATMEL, SPI AT Microcontrollers, Datasheets, http://www.atmel.com5. Migration from AT89S8252/53 to AT89S8253, http://www.atmel.com6. Obrada prekida kod mikrokontrolera AT89S8253, Saša Đorđević, Seminarski rad, Elektronski fakultet, Niš, 2007.

Page 68: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano
Page 69: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

7. BIOGRAFIJE AUTORA

Ime i prezime: Milan RadenkovićDatum i mesto rođenja: 08.04.1984. PirotAdresa stanovanja: Babušnica, selo SuračevoObrazovanje: ETŠ “Nikola Tesla” - NišGodina upisa fakulteta: 2003.Smer: ElektronikaPoznavanje jezika: Engleski, RuskiPoznavanje softvera i programskih jezika:

MSOffice, Photoshop,Corel Draw, C, Asembler

Interesovanja: Akvaristika, Pčelarstvo, PlivanjeZapošljenje: AMS electronic – firma za uvoz,

distribuciju i instalaciju opreme za video nadzor i obezbeđenje objekata i automobilaPozicija: tehnička podrška

Page 70: es.elfak.ni.ac.rses.elfak.ni.ac.rs/Files/MRadenkovic-AStevanovic - Projekat - merenj…  · Web viewilustruje kako je mapirano nižih 128 bajtova RAM-a. Nižih 32 bajtova je grupi-sano

Ime i prezime: Aleksndar StevanovićDatum i mesto rođenja: 06.01.1985. Kosovska Kamenica

Adresa stanovanja: APKiM, Kosovska Kamenica, selo Kololeč

Obrazovanje: Gimnazija - matematički smerKosovska Kamenica

Godina upisa fakulteta: 2003.Smer: ElektronikaPoznavanje jezika: Engleski, RuskiPoznavanje softvera i programskih jezika:

Protel, Eagle, Asembler, VHDL, MSOffice

Interesovanja: Putovanja, sport, računari