59
UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET KATEDRA ZA ELEKTRONIKU POVEZIVANJE MIKROKONTROLERA AT89S8253 SA INTERFEJSOM 8255 Student: Nenad Ristić 9774 Niš, Septembar 2007.

POVEZIVANJE MIKROKONTROLERA AT89S8253 SA …es.elfak.ni.ac.rs/Papers/AT89S8253 i PPI82C55A.pdflogički analizatori, analizatori spektra itd.) poseduju IEEE-488 GPIB magistralu. Kada

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET

KATEDRA ZA ELEKTRONIKU

POVEZIVANJE MIKROKONTROLERA AT89S8253 SA INTERFEJSOM 8255

Student: Nenad Ristić 9774

Niš, Septembar 2007.

1. Prenos podataka 3 1.1. Uporedne karakteristike paralelnog i serijskog prenosa 3 1.2. Primer kombinacije paralelnog i serijskog prenosa 4 1.3. Handshake paralelni U/I prenos 5 1.4. Zaključak 6 2. Mikrokontroler AT89S8253 8 2.1. Unutrašnja struktura mikrokontrolera 8 2.2. Redukovani režim napajanja 9 2.3. Programska memorija 9 2.4. Memorija podataka 11 2.5. Programski statusni registar 15 2.6. Taktovanje mikroprocesora 15 2.7. Mašinski ciklusi 16 2.8. Struktura prekida 16 2.9. Načini programiranja 17 3. Programabilni periferijski interfejs 8255 18 3.1. Funkcionalni opis kola 19 3.2. Opis rada 22 3.3. Primeri praktične primene 28 4. Programiranje mikrokontrolera AT89S8253 31 3.4. Bootstrap loader SI-Prog 33 3.5. Softverski alati kompatibilni sa SI-Prog 35 3.6. Bootstrap loader ISP programmer 45 3.7. Program Atmel Microcontroller ISP software 47 5. Projekat 5.1. Kôd u asembleru 49 5.2. Električna šema 52 6. Laboratorijska vežba 54 7. Zaključak 58 8. Literatura 59

1. PRENOS PODATAKA

Prenos podataka predstavlja prenošenje kôdirane informacije kroz prenosni medijum (kabl, ma-gistralu itd.) Prema načinu prenosa podataka između dva sistema (integrisana kola, računara, terminala itd.) razlikuju se dva tipa prenosa:

• Paralelni: prenos n bitova (n = 8, 16, 32, 64) vrši se istovremeno (ovakav prenos se tipič-

no ostvaruje preko sistemske ili neke druge magistrale u mikroprocesorskom sistemu) • Serijski: prenos podataka vrši se preko jedinstvene linije (provodnika, voda, žice).

1.1. Uporedne karakteristike paralelnog i serijskog prenosa

Na Slici 1.1 i Slici 1.2 ilustrovani paralelni i serijski prenos, respektivno. Paralelni prenos poda- taka je brži od serijskog, ali je znatno skuplji – jer zahteva veći broj veza (vodova ili kanala za prenos). Serijski prenos je pouzdaniji, iz razloga što se prekid ili greška u prenosu uvek mogu lako detektovati. Isto tako, kod serijskog prenosa su protokoli (skup pravila za razmenu podataka izme-đu dva sistema) daleko bolje definisani (postoje međunarodni standardi i norme za prenos). Kod paralelnog prenosa, zbog različitih formata paralelnih podataka, to nije slučaj.

Slika 1.1. Ilustracija paralelnog prenosa (n=8)

Slika 1.2. Ilustracija serijskog prenosa

Imajući sve ovo u vidu, paralelni prenos podataka se daleko više koristi kada se prenose podaci na kraćim rastojanjima: interno, unutar mikroprocesorskog sistema (komunikacija između mikroproce-sora i memorije, UART-a, A/D konvertora itd.) i eksterno, do nekoliko metara, u okviru računarskog okruženja (npr. komunikacija između računara i štampača preko paralelnog porta).

Kada su u pitanju rastojanja veća od reda nekoliko metara, serijski prenos podataka je neizbežan. Kod serijskog prenosa podaci se prenose bit po bit. Serijski prenos može da se ostvari preko jednog provodnika (žice). Međutim, potrebne su najmanje dve linije (provodnika, žice) za serijsku komunika-ciju: jedna za podatke i druga, tzv. masa – da bi se zatvorilo strujno kolo između dva sistema koji serij-ski komuniciraju. Naravno, moguće je ostvariti i tzv. diferencijalni serijski prenos kod koga su nivoi logičke 0 i logičke 1 definisani razlikom potencijala između dva signala koji se prenose. Takav je slu-čaj kominikacije kod USB porta.

Ovde će biti navedeni neki od standarda za serijsku komunikaciju:

• RS232 (nebalansirani, 1 drajver – 1 pijemnik, za rastojanja do 15m) • RS422 (nebalansirani, 1 drajver – 10 pijemnika, za rastojanja do 1200m) • RS423 (diferencijalni, 1 drajver – 10 pijemnika, za rastojanja do 1200m) • RS485 (diferencijalni, 32 drajvera – 32 pijemnika, za rastojanja do 1200m).

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

1.2. Primer kombinacije paralelnog i serijskog prenosa

Slika 1.3. Ilustracija paralelnog i serijskog prenosa unutar mikroprocesorskog sistema

U samom mikroprocesorskom sistemu prisutne su istovremeno i serijska i paralelna komunikaci-

ja. Na Slici 1.3. upravo je ilustrovan jedan takav primer. Naime, na mikrokontroler PIC18F452, koji čini jezgro sistema, povezane su sledeće komponente/uređaji:

Ø Flash memorija 29F040B (paralelni prenos podataka) Ø SPI EEPROM 25LC640 (serijski prenos)

Ø LCD modul, 2x16 karaktera (paralelni prenos) Ø GSM/GPRS modul Siemens TC35 (serijski prenos) Ø PC računar (serijski prenos).

Kao što se vidi na slici, multipleksiranjem (preko integrisanog kola MC14052) i GSM/GPRS

modul i PC ostvaruju komunikaciju sa internim UART modulom mikrokontrolera. Naravno, pošto se koriste samo tri linije (Rx, Tx i masa) komunikacija je bez handshaking-a.

Napomena: U ovom poglavlju pomenuti su termini USB (Universal Serial Bus), UART (Universal

Asyncronus Receiver Transmitter) i SPI (Serial Peripheral Interface). S obzirom da je u radustavljen akcenat na paralelnu komunikaciju, pomenuti tipovi serijske komunikacije nisu detaljnije objašnjavani. Za informacije o pomenutim načinima komunikacije treba konsultovati odgovarajuću literaturu.

1.3. Handshake paralelni U/I prenos

Handshake U/I prenos podrazumeva da se podaci iz spoljnjeg okruženja prihvataju od strane mikroprocesora (CPU) preko ulaznog bafera, dok se podaci koje procesor predaje spoljnom okruženju prenose preko izlaznog bafera. Na Slici 1.4 prikazan je primer povezivanja D/A konverora preko pa-ralelnog izlaznog interfejsa. Mikroprocesor lečuje podatke u izlazni bafer podataka. Izlazne linije pomenutog bafera di-rektno su povezane na izlazno kolo/uređaj (u ovom slučaju je u pitanju D/A konvertor). Izlazni napon D/A konvertora menjaće vrednost u skladu sa stanjem izlaznog bafera podataka.

Razmotrićemo sada još jedan primer paralelnog interfejsa kod kojeg se tokom komunikacije ko-riste handshake upravljačke linije (Slika 1.5) . Kada U/I uređaj preda podatke interfejsu, on prvo pos-tavlja važeće podatke na linijama Ulazni_podaci, a zatim aktivira liniju Pod_Ul_spreman. Interfejs odgovara lečovanjem podatka u Ulazni_bafer i aktivira liniju Potvrda_Ul_Podataka. U/I uređaj nakon prijema signala Potvrda_Ul_Podataka deaktivira podatke i signal Pod_Ul_Spreman.

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

Slika 1.5. Povezivanje ulaznog i izlaznog interfejsa

Interfejs nakon primanja podatka postavi statusni bit Ready i aktivira liniju IRn . Kada mik-roprocesor prihvati podatak, interfejs deaktivira statusni bit Ready. Zahtev za prekid (IRn), kao i obrada prekida, prihvataju se i obrađuju standardno.

U slučaju izlaza, interfejs će postaviti Ready statusni bit i generisati zahtev za prekid ka-da je Izlazni_bafer podataka dostupan. Kada procesor upiše podatke, interfejs resetuje izlazni statusni bit Ready, postavlja podatke na magistralu (Izlazni_podaci) i signalizira U/I uređaju preko linije Pod_Izl_Spremni. Kada je uređaj spreman da prihvati podatke, on lečuje podatke i vraća signal Potvrda_Izl_Signala. Nakon toga, interfejs deaktivira signal Pod_Izl_Spremni i ponovo postavlja iz-lazni statusni bit na Ready.

1.4. Zaključak Sa pojavom USB porta (najpre kod računara, a zatim kod mikrokontrolera i GSM/GPRS/3G mo-

dula) paralelna komunikacija između nekih eksternih uređaja (štampača, skenera itd.) i mikroprocesora polako odlazi u istoriju. Razlog tome su komparativne prednosti koje poseduje USB port, a ovde će se navesti tri najvažnije:

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

Međutim, kao što je napomenuto, ima slučajeva kada je paralelna komunikacija neophodna (sis-temska magistrala kod mikroprocesora, komunikacija mikrokontroler – flash memorija i slično).

Veliki broj potrebnih veza (jedna žica po bitu n-bitnog podatka) ograničava primenu paralel-nog prenosa isključivo na relativno kratka rastojanja. Tipičan primer je paralelna magistrala IEEE-488 GPIB, koja je projektovana za komunikaciju između pojedinih sistema/uređaja (najčešće je u pitanju merno-informaciona tehnika), koji su međusobno udaljeni maksimalno 20 m. Uređaji svih renomi-ranih proizvođača merno-informacione opreme (digitalni osciloskopi, digitalni izvori napajanja, logički analizatori, analizatori spektra itd.) poseduju IEEE-488 GPIB magistralu.

Kada se vrši prenos podataka na veća rastojanja koristi se jedinstvena veza, a ne veliki broj veza kao što je to slučaj kod IEEE-488 GPIB.

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.

Slika 2.1. Raspored pinova kod mikrokontrolera AT89S8253 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.

Slika 2.2. Unutrašnja struktura AT89S serije mikrokontrolera 2.2. 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.3. 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 samo č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 me-

_____ _____ morijskom 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.

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.

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

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

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

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

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

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

2.6. 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) 2.7. 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.8. Struktura prekida

Jezgro mikrokontrolera AT89S53 dozvoljava 6 interrupt vektora: 2 spoljašnja prekida, 3 preki-da tajmera i jedan prekid serijskog porta, tako da ukupno ima 9 izvora prekida. Svaki od pomenutih izvora prekida može da se pojedinačno omogući/onemogućiti setovanjem ili resetotovanjem bita IE (Interrupt Enable) u SFR. Registar takođe sadrži opšti bit za dozvolu, koji može da se resetuje kako bi se onemogućili svi prekidi odjednom.

Prioriteti prekida

Svaki izvor prekida može da se pojedinačno programira na jedan od dva nivoa prioriteta, setova-njem ili resetovanjem bita prekida u SFR-u.

Prekid nižeg prioriteta može se prekinuti prekidom višeg prioriteta, ali ne i sa drugim prekidom nižeg prioriteta. Prekid višeg prioriteta ne može se prekinuti sa bilo kojim drugim izvorom prekida. Ako dva prekida koji zahtevaju različite nivoe prioriteta se pojave istovremeno, servisira se zahtev sa većim nivoom prioriteta. Ako se istovremeno pojave prekidi istog nivoa prioriteta, unutrašnja sekven-ca odabiranja određuje koji će se prekid servisirati. Prema tome, unutar svakog nivoa prioriteta sekven-ca odabiranja određuje drugu prioritetnu strukturu.

Slika 2.14. Sistem obrade prekida kod serije mikrokontrolera AT89s

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

3. PROGRAMABILNI PERIFERIJSKI INTERFEJS 8255

8255 je Intel-ovo programabilno integrisano kolo koje je namenjeno za upotrebu u 8080 mik-roprocesorskim sistemima. Njegova uloga je da kao U/I komponenta opšte namene poveže peririferiju na 8080 sistemsku magistralu. Pored Intel-a, ovo kolo proizvode i druge renomirane firme (Altera, Dallas Semiconductor, National Semiconductor, Intersil, Toshiba, NEC, Mitsubishi Electric Corporation, ETC). Kolo može da radi u tri režima (Mod 0, Mod 1 i Mod 2). Od 40 pinova, 24 su definisani kao ulazno-izlazni i mogu da se koriste (programiraju) u dve grupe od po 12 pinova.

U Modu 0 svaka grupa od 12 ulazno-izlaznih pinova može da se programira u skupove od po 4, koji se definišu kao ulazi ili kao izlazi.

U Modu 1 svaka grupa može da se programira da ima po 8 linija ulaza ili izlaza. Od preostalih četiri, tri pina se koriste za signale handshake protokola, a jedan za kontrolu prekida.

Mod 2 predstavlja dvosmerni rad magistrale koja koristi 8 linija za dvosmernu magistralu, i 5 linija, tako što pozajmljuje jednu od ostalih grupa, za handshake protokol.

Među dodatne karakteristike integrisanog kola 8255 ubrajaju se mogućnost bitskog setovanja i resetovanja, kao i mogućnost davanja struje od 1 mA po pinu, pri naponu od 1.5 V. Ovo potonje omogućava da se preko eksternih Darlingtonovih tranzistora napajaju uređaji kao što su štampači ili visokonaponski displeji.

Kolo 8255 se pakuje u standardna kućišta DIP40, CLCC44 i PLCC44, a raspored pinova za sva tri kućišta je prikazan na Slici 3.1.

Slika 3.1. Raspored pinova na integrisanom kolu Intel 8255

Važno je napomenuti da se integrisano kolo 8255 proizvodi u NMOS tehnologiji (tada nosi ozna-ku 8255A) i CMOS tehnologiji (oznaka 82C55A). Isto tako kolo 8255, bilo NMOS ili CMOS, je TTL kompatibilno.

3.1. Funkcionalni opis kola Opšte informacije

Integrisano kolo 8255 pripada grupi programibilnih periferijskih interfejsa (Programmable peripheral interface), skraćeno PPI. S obzirom da je funkcionalna konfiguracija kola 8255 progra-mirana sistemskim softverom, tako da nije potrebna spoljašnja logika za povezivanje periferijskih uređaja ili struktura. Na Slici 3.2 data je interna organizacija 8255, koja je dostupna programeru, dok je na Slici 3.3 prikazana funkcionalna šema kola.

Slika 3.2. Interna organizacija 8255 transparentna programeru Bafer magistrale podataka U pitanju je dvosmerni trostatički bafer za prihvatanje osmobitnih podataka. Preko njega se ostvaruje povezivanje ”unutrašnjosti“ integrisanog kola 8255 sa sistemskom magistralom podataka (mikro)procesora 8080. Bafer prenosi/prihvata podatke nakon izvršavanja ulaznih ili izlaznih instrukcija od strane procesora 8080. Inače, preko bafera se prenose kontrolne reči i statusne infor-macije.

Slika 3.3. Funkcionalna šema integrisanog kola 8255

Kontrolna logika

Ovaj blok upravlja svim unutrašnjim i/ili spoljašnjim prenosima podataka, statusnih ili kontrolnih reči. On najpre prihvata ulaze sa adresa procesora 8080 i kontrolnih magistrala, a zatim, po redo-sledu, izdaje komande obema kontrolnim grupama.

CS

Chip Select (selektovanje integrisanog kola): ”nizak nivo“ na ovom ulaznom pinu dozvoljava komunikaciju između kola 8255 i procesora. RD

Read (čitanje): ”nizak nivo“ na ovom ulaznom pinu omogućava da procesor pročita podatke iz kola 8255. Tokom izvršenja ove komande, podaci i statusne informacije se šalju na magistralu podataka.

WR

Write (upis): ”nizak nivo“ na ovom ulaznom pinu omogućava da procesor upisuje podatke i kon-trolne reči u kolo 8255.

Slika 3.4. Funkcije kola 8255 zavisno od stanja kontrolnih pinova

A0 i A1 ___ ___

Selektovanje Porta 0 i Porta 1: U kombinaciji sa pinovima RD i WR, ulazni signali A0 i A1 kontrolišu izbor jednog od tri porta za registar kontrolne reči. Oni su normalno povezani na najmanje značajne bitove adresne magistrale (A0 i A1). RESET

Resetovanje: ”visok nivo“ na ovom ulaznom pinu briše sadržaj svih unutrašnjih registara, uk-ljučujući i kontrolni registar, dok se svi Portovi (A, B i C) postavljaju u ulazni režim. Grupe blokova A i B

Sistemskim softverom se definiše funkcionalna konfiguracija svakog porta. Naime, mikroproce-sor 8080 izdaje kontrolnu reč tipa “režim”, “setuj bit”, “resetuj bit” i slično, čime se inicijalizuje funk-cionalna konfiguracija 8255. Svaki od kontrolnih blokova (Grupa A i Grupa B) prihvataju koman-de od kontrolne logike, prihvataju kontrolne reči sa unutrašnje magistrale podataka i izdaju odgo-varajuće komande njima dodeljenim portovima: kontrolna Grupa A (Port A i viši deo Porta C (C7-C4)) i kontrolna Grupa B ( Port B i niži deo Porta C (C3-C0)).

Nije dozvoljena nikakva operacija čitanja u kontrolnom registru, već je moguće izvršiti samo upisivanje. Portovi A, B i C

8255 sadrži tri 8-bitna Porta (A, B i C). Svaki od portova može da se konfiguriše sistemskim softverom za više različitih funkcionalnih namena, ali svaki od njih poseduje specifične karakteris-tike, odnosno sposobnost da dodatno poveća performanse i fleksibilnost kola 8255.

• Port A: sadrži jedan 8-bitni izlazni leč/bafer i jedan 8-bitni ulazni leč. • Port B: sadrži jedan 8-bitni ulazno/izlazni leč/bafer i jedan 8-bitni ulazni bafer. • Port C: sadrži jedan 8-bitni izlazni leč/bafer i jedan 8-bitni ulazni bafer (nema leča na ulazu).

Ovaj port može da se podeli na dva 4-bitna porta u zavisnosti od režima rada (moda) kola

8255. Svaki 4-bitni port sadrži 4-bitni leč i može da se koristi za izlaze kontrolnih signala i ulaze statusnih signala zajedno sa Portom A i Portom B.

3.2. Opis rada Izbor moda (režima rada)

Sistemskim softverom se može izabrati jedan od tri osnovna moda (režima) rada. U narednom tekstu biće reči o svakom modu rada. Mod 0

U pitanju je osnovni ulaz/izlaz mod (režim rada) i moguće je ostvariti 16 ulazno-izlaznih konfiguracija. Kada je kolo konfigurisano za Mod 0, obezbeđene su jednostavne ulazne i izlazne ope-racije za svaki od tri porta. Nije potreban handshaking protokol, a podaci se jednostavno upisuju ili čitaju sa definisanog porta.

Ukoliko se Port C koristi kao status/kontrola za Port A ili za Port B, ovi bitovi se mogu setovati ili resetovati bitskim operacijama kao da su izlazni portovi podataka.

Osnovne funkcionalne definicije Moda 0:

• Dva 8-bitna i dva 4-bitna porta • Svaki port može da bude ulazni i izlazni • Izlazi su lečovani • Ulazi nisu lečovani • U ovom režimu su moguće 16 različitih ulazno/izlaznih konfiguracija.

Mod 1

Ova funkcionalna konfiguracija se zove i prekidni ulaz/izlaz, a obezbeđuje prenos ulazno-izlaznih podataka prema i od zadatog porta – a zavisno od signala prekida ili handshaking protokola. U Modu 1, Port A i Port B koriste linije sa Porta C da generišu ili prihvate ove signale handshaking protokola.

Osnovne funkcionalne definicije Moda 1:

• Postoje dve grupe blokova (Grupa A i Grupa B) • Svaka grupa sadrži jedan 8-bitni port podataka i jedan 4-bitni kontrolni ili port podataka • 8-bitni port podatka može biti ili ulazni ili izlazni. I ulazi i izlazi su lečovani • 4-bitni port se koristi za kontrolu i status 8-bitnog porta podataka.

Mod 2

U ovom modu (režimu) rada (prekidna dvosmerna U/I magistrala) ostvaruje se komunikacija sa periferijskim uređajem ili strukturom preko jedne 8-bitne magistrale – i za predaju i za prijem podataka. Signali handshaking protokola koriste se da održe propisan protok magistrale na sličan način kao kod Moda 1. Isto tako, u ovom modu (režimu) rada su dostupne funkcije generisanja dozvole/zabrane prekida.

Osnovne funkcionalne definicije Moda 2:

• Koristi se samo u Grupi A • Jedan 8-bitni, bidirekcioni (dvosmerni) port (Port A) i 5-bitni kontrolni port (Port C) • I ulazi i izlazu su lečovani • 5-bitni kontrolni port (Port C) se koristi za kontrolu i status 8-bitnog, bidirekcionog

(dvosmernog) porta (Port A). Resetovanje

Kada se RESET ulaz postavi na jedinicu, svi portovi ce se postaviti u režim ulaza (tj. sve 24 linije

će biti u stanju visoke impedanse). Pošto se RESET ukloni, kolo 8255 može da ostane u ovom režimu bez zahteva za dodatnu inicijalizaciju.

Tokom izvršenja sistemskog programa, može se selektovati neki od ostalih režima upotre-bom jedne izlazne instrukcije. Ovo omogućava da jedno integrisano kolo 8255 opslužuje različite peri-ferne uređaje sa jednostavnom softverskom rutinom.

Režimi za Port A i Port B mogu da se odvojeno definišu, dok se Port C deli na dva dela, pošto se zahteva definicijama Portova A i B. Svi izlazni registri, uključujući i statusne flip-flopove, će se resetovati kad god se promeni mod (režim) rada. Modovi se mogu kombinovati tako da se njihova funkcionalna definicija može prilagoditi bilo kojoj U/I strukturi. Na primer, Grupa B se može programirati u Modu 0 tako da nadgleda jednostavna zatvaranja prekidača ili da prikaže rezultate izračunavanja. Grupa A se može programirati u Modu 1 da nadgleda tastaturu ili čitač trake na osnovu prekida. Format definisanja moda

Definicije moda rada možđa deluje zbunjujuće na prvi pogled – ali, u praksi nije tako. Projektanti kola 8255 uzeli su u obzir efikasan raspored na čipu, definisanje kontrolnih signala i kompletnu funkcionalnu fleksibilnost, koja podržava skoro svaki periferijski uređaj bez dodatne spoljašnje lo-gike. Na ovakav način ostvareno je optimalno iskorišćenje pinova.

Osobina setovanja/resetovanja pojedinačnih bitova

Svaki od osam bitova Porta C može se setovati/resetovati upotrebom jedne izlazne instrukcije. Ova osobina redukuje softverske zahteve u kontrolnim aplikacijama. Funkcije kontrole prekida

Kada se 8255 programira da radi u Modu 1 ili Modu 2, predviđeni su kontrolni signali koji se mogu koristiti kao ulazi preko kojih se zahteva prekid procesoru. Ovi signali, generisani sa Porta C, mogu da se uključe ili isključe setovanjem ili resetovanjem INTE flip-flopa, upotrebom funkcija bitskog setovanja/resetovanja Porta C. Dakle, preko ove funkcije programer može da dozvoli ili zabrani da pojedinačni U/I uređaji prekidaju procesor, bez uticaja na druge uređaje u prekidnoj strukturi.

INTE flip-flop definicija (BIT-SET) – INTE je setovan – omogućen prekid (BIT-RESET) – INTE je resetovan – onemogućen prekid

Slika 3.5. Komandni bajt komandnog registra

a) programiranje Portova A, B, C b) setovanje ili resetovanje bita selektovanog bit poljem

Napomena: Svi maskirni flip-flopovi se automatski resetuju tokom selektovanja moda (režima) rada i

resetovanja uređaja.

Definicije ulaznih kontrolnih signala ____ STB (strobe ulaz) : Nula na ovom ulazu upisuje podatke u ulazni leč. ____ IBF (ulazni bafer pun) : Jedinica na ovom izlazu ukazuje da su podaci upisani u ulazni leč. U suštini, ovo je potvrda. IBF se setuje kada je STB ulaz na nuli, a resetuje se tokom rastuće ivice RD ulaza. ______ INTR (zahtev za prekid) : Jedinica na ovom izlazu može da se iskoristi za prekidanje procesora kada ulazni uređaj zahteva opsluživanje. INTR se setuje kada je STB na jedinici, IBF i INTE su na logič-gičkoj jedinici.Resetuje se tokom opadajuce ivice RD. Ova procedura omogućava ulaznim uređajima da zahtevaju opsluživanje od mikroprocesora jednostavnim izbacivanjem podataka na port. INTE A : Kontrolisan bitskim setovanjem/resetovanjem PC4. INTE B : Kontrolisan bitskim setovanjem/resetovanjem PC2.

Slika 3.6. Strobovani ulaz u Modu 1 kod kola 8255 a) interna struktura b) vremenski dijagrami

Definicije izlaznih kontrolnih signala _____ ____ OBF (izlazni bafer pun) : Izlaz OBF će se postaviti na logičku nulu da ukaže kako je mikroprocesor upisao podatke na zadati port. OBF flip-flop će se setovati rastućom ivicom WR ulaza i resetovati kada je ulaz ACK na logičkoj nuli. _____ ACK (ulaz potvrde) : Logička nula na ovom ulazu informiše kolo 8255 da su podaci sa Porta A i Porta B prihvaćeni. U suštini, odgovor sa periferijskog uređaja ukazuje da je ovaj primio podatke sa izlaza mikroprocesora (CPU). ______ INTR (zahtev za prekid) : Logička jedinica na ovom izlazu može se upotrebiti da prekida mikro-procesor kada je izlazni uređaj primio podatke (prenete sa procesora). INTR se setuje kada je ACK na logičkoj jedinici. Signali OBF i INTE su na logičkoj jedinici. Resetuje se tokom opadajuće ivice na ulaznom pinu WR .

Slika 3.7. Mod 1 strobovani izlaz kod kola 8255 a) interna struktura b) vremenski dijagrami

Kombinacije Moda 1

Port A i Port B mogu se pojedinačno definisati kao ulazi ili izlazi u Modu 1, kako bi podržali različite U/I prekidne aplikacije. Definicije signala dvosmerene U/I magistrale ______ INTR (zahtev za prekid) : Jedinica na ovom izlazu se može upotrebiti da prekida procesor (CPU) i za izlazne i za ulazne operacije. Izlazne operacije: Definicije izlaznih kontrolnih signala _____ ____ OBF (izlazni bafer pun) : Izlaz OBF će se postaviti na logičku nulu kada mikroprocesor bude upisao podatke na zadati Port A.

______ ACK (potvrda) : Logička nula na ovom ulazu omogućava da trostatički izlazni bafer sa Porta A pošalje podatke. Inače, bafer bi bio u stanju visoke impedanse. _____ INTE 1 (INTE flip-flop dodeljen sa OBF). Kontrolisan bitskim setovanjem/resetovanjem PC6. Ulazne operacije: ____ STB (strobe ulaz) : Logička nula na ovom ulazu upisuje podatke u ulazni leč. IBF (ulazni bafer pun) Logička jedinica na ovom izlazu ukazuje da su podaci upisani u ulazni leč. INTE 2 (INTE flip-flop dodeljen sa IBF) Kontrolisan bitskim setovanjem/resetovanjem PC4.

Slika 3.8. Mod 2 kod kola 8255 a) interna struktura b) vremenski dijagram

3.3. Primeri praktične primene

Ovde su date neke praktične primene integrisanog kola 8255 u svim modovima (režimima) rada.

Slika 3.9. Sprega mikroprocesora i 8-bitnog D/A konvertora preko 8255

Slika 3.10. Povezivanje tastature (strobovani ulaz)

Slika 3.11. Povezivanje štampača (strobovani izlaz)

Slika 3.12. Sprega 8255 sa brzim štampačem Slika 3.13. Sprega 8255 sa displejem i tastaturom

Slika 3.14. Ostvarivanje distibutivnog multiprocesorskog sistema

Slika 3.15. Sprega sa tastaturom i terminalom Slika 3.16. D/A i A/D konverzija

Slika 3.17. Sprega 8255 sa flopi diskom Slika 3.18. Sprega 8255 sa CRT monitorom

4. PROGRAMIRANJE MIKROKONTROLERA AT89S8253 Da bi se izvršilo programiranje mikrokontrolera, neophodno je posedovati bootstrap loader, kao i odgovarajući softver. U daljem tekstu biće opisani loader-i SI-Prog i ISP Programmer, kao i softver-ski alati: IC-Prog, PonyProg, Atmel Microcontroller ISP software. 4.1. Bootstrap loader SI-Prog

Osnovno kolo

Ovde ćemo razmatrati jednostavan i jeftini (simple & low-cost) serijski bootstrap loader (Slika 4.1) za određenu grupu Atmel-ovih mikrokontrolera (AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S8515, AT89S53, AT89S8252/8253, ATMEGA serija itd.) Zapravo, moguće je programirati bilo koji Atmel-ov mikrokontroler koji poseduje SPI (Serial Peripheral Interface), a to su svi Atmel-ovi mikrokontroleri novije generacije.

Kao što se vidi na Slici 4.1, izbegnuto je korišćenje integrisanog kola serije 232 (ICL232, ST232, SP232, MAX232 itd.) za prilagođavanje naponskih nivoa 232-TTL, već su za tu svrhu upotrebljene Zener diode (D6, D7 i D8). Ovo implicira da 6-pinski kabl za vezu između serijskog porta računara i load-era ne bude duži od 2 m. (Napomena: Umesto 6-pinskog kabla moguće je koristiti standardni komercijalni pin-to-pin kabl koji koristi svih 9 pinova serijskog porta.)

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

S obzirom da su struje programiranja mikrokontrolera reda mA, signali serijskog porta TXD, DTR, DSR, RTS iskorišćeni su kao ulaz low-dropout linearnog regulatora napona LM2931-5, koje na izlazu daje stabilan napon od 5V. Preko ovog regulatora napaja se mikrokontroler prilikom upisa, čita-nja, verifikacije i brisanja (Write, Read, Verify, Erase). Dakle, ovaj bootstrap loader ne zahteva dovođenje eksternog napajanja. (Napomena: Umesto integrisanog kola LM2931-5 moguće je koristiti i neko drugo kolo iz serije low-dropout, kao na primer LM2936-5, LP2940-5, ali nikako ne treba koris-titi standardni regulator napona LM78L05.)

Diode D10 i D11 (3mm, low-power) daju signaliziciju tokom procesa upisa, čitanja i verifikacije (Write, Read, Verify) podataka u/iz mikrokontrolera.

Povezivanje mikrokontrolera Na Slici 4.2 prikazani su pinovi dva mikrokontrolera serije 89S, koje treba povezati sa osnovnim

kolom bootstrap loader-a SI-Prog. Da bi se izvršilo serijsko programiranje/čitanje navedenih mikro-kontrolera, potrebno je operisati sa samo 5 signala: Vcc (napajanje), RST (reset), SCK (pomerački takt), MOSI (serijski ulaz) i MISO (serijski izlaz). Poslednja 3 signala čine serijski interfejs mikro-kontrolera. Naravno, neophodno je da se između ulaza XT1 i XT2 priključi kvarc od 8MHz i konden-zatori vrednosti 22 pF, što je i prikazano na slici.

Slika 4.2. Način povezivanja sa serijom mikrokontrolera AT89S

(Napomena: Ovde su navedeni osnovni pojmovi vezani za serijsko programiranje mikrokontrolera. Ukoliko čitalac želi da se detaljnije upozna sa mehanizmom programiranja mikrokontrolera, treba da pristupi sajtu www.atmel.com i da pročita odgovarajuće datasheet-ove. Kao što je saopšteno, u prog-ramerskom smislu, AT89S8253 je gotovo identičan sa mikrokontrolerom AT89S53)

Signali serijskog porta računara

Pin Name Description Opis 1 DCD Data Carrier Detect Detektor nosioca podatka 2 TXD Transmit Data Slanje podataka 3 RXD Receive Data Prijem podataka 4 DTR Data Terminal Ready Spremnost podataka terminala 5 GND System Ground Masa 6 DSR Data Set Ready Spremnost podataka 7 RTS Request to Send Zahtev za slanje 8 CTS Clear to Send Brisanje u cilju iniciranja novog slanja 9 RI Ring Indicator Indikator zvona

Izgled štampane ploče

Na Slici 4.3 prikazana je štampana ploča. Predviđena je mogućnost programiranja sledećih mik-rokontrolera: AT90S1200 i AT90S2323 (kućište DIP-20), AT90S2313 i AT90S2343 (kućište DIP-8), AT90S4414, AT90S8515, AT89S53 i AT89S8252/8253 (kućišta DIP-40 i PLCC44). Pinovi ostalih mikrokontrolera su povezani sa posnovnim kolom slično kao i mikrokontroleri serije 89S, s izuzetkom što umesto signala RST koriste signal RST, kvarc od 4MHz i kondenzatore od 27 pF.

Ovde se nismo bavili ostalim mikrokontrolerima, već smo se koncentrisali samo na AT89S8253, odnosno AT89S53.

Slika 4.3. Dvoslojna štampana ploča bootstrap loader-a

4.2. Softverski alati kompatibilni sa SI-Prog

Od softverskih alata, za programiranje mikrokontrolera serije AT89S mogu da se koriste PonyProg i ICProg (kompatibilni sa bootstrap loader-ima SI-Prog, JDM Programmer). Navedeni alati imaju mogućnost čitanja, upisa i verifikacije (Read, Write, Verify) sadržaja mikrokontrolera. Naravno, tokom upisa moguće je softverski zaštititi sadržaje od neželjenog upisa i čitanja (preko Lock Bit 1, 2, 3).U naednom tekstu biće opisana i ilustrovana oba softverska alata.

Softver IC-Prog

Program IC-Prog se ne instalira na računaru, već se pokreće direktno – tačnije klikom na fajl ICPROG.EXE (Slika 4.4).

Slika 4.4. Pokretanje programa IC-Prog

Ukoliko korisnik ima verziju Windows-a «višu» od Windows-a 98, odmah po startovanju progra-ma IC-Prog na ekranu će se pojaviti prozor sa upozorenjem, kao na Slici 4.5 . Razlog je što su kod svih Windows-a sa platformom NT zaštićeni portovi. Zbog toga je neophodno da se instalira odgovarajući drajver.

Slika 4.5. Upozorenje prilikom pokretanja programa Korak 1. Instaliranje drajvera

Ulaskom u podmeni Misc, koji se nalazi u meniju Options, ostvaruje se instaliranje/uključivanje drajvera icprog.sys (Settings → Options → Misc: √ Enable 2000/NT/XP), što je ilustrovano na Slici 4.6. Na taj način omogućava se pristup serijskom portu računara.

Slika 4.6. Instaliranje/uključivanje drajvera

Slika 4.7. Podešavanje parametara programa

Korak 2. Podešavanje hardverskih parametara

Nakon što je instaliran/uključen drajver, program će se restartovati i ponudiće opciju podešavanja hardverskih parametara, koji treba da budu postavljeni kao na Slici 4.7 . IC-Prog ima sličnu konfigura-ciju kao JDM Programmer, signali su bez inverzije – dok se komunikacija obavlja preko, na primer, serijskog porta COM1. Korak 3. Izbor mikrokontrolera i učlitavanje kôda u bafer programa

Najpre treba izabrati mikrokontroler (AT)89S53 (obeleženi padajući meni u gornjem desnom ug-lu osnovnog prozora programa), a potom učitati heksadecimalni kôd klikom na opciju Open File iz me-nija File - što je ilustrovano na Slikama 4.8, 4.9 i 4.10. (Napomena: Heksadecimalni kôd se dobija kompilacijom programa koji je napisan na nekom višem programskom jeziku (C, Pascal, Basic itd.) ili na asembleru. Viši programski jezici za mikrokontrolere imaju izvesne specifičnosti u odnosu na stan-dardne programske jezike, ali ovde te specifičnosti neće biti razmatrane.)

Slika 4.8. Upisivanje/učitavanje kôda u bafer programa

Slika 4.9. Upisivanje/učitavanje fajla projekat.hex koji sadrži kôd Korak 4. Programiranje mikrokontrolera

Ulaskom u meni Command i startovanjem opcije Program All (Slika 4.10). Zapravo, proces pro-gramiranja podrazumeva da se sadržaj bafera programa (Slika 4.9) upiše u flash memoriju mikrokon-trolera. (Napomena: organizacija i kapacitet bafera korespondiraju sa 12Kb-nom flash memorijom mikrokontrolera AT89S8253, odnosno AT89S53.)

Naravno program će postaviti pitanje, tj. mogućnost da se izabere da li da otpočne proces progra-miranja ili da se od njega odustane (Slika 4.11). Ukoliko se izabere programiranje, program će obrisati prethodni sadržaj flash memorije mikrokontrolera i u nju “prepisati” sadržaj bafera programa, čiji se je-dan deo vidi na Slici 4.10.

Napredak proces programiranja, a potom i verifikacije programiranja je ilustrovan na Slici 4.12. Ukoliko je proces uspešno okončan, na ekranu će se pojaviti prozor kao na Slici 4.14 – u suprotnom, izgled prozora će biti kao na Slici 4.13.

Slika 4.10. Startovanje programiranja mikrokontrolera AT89S53

Slika 4.11. Mogućnost da se odustane od programiranja

Slika 4.12. Proces programiranja, a zatim i verifikacije

Slika 4.13. Poruka nakon neuspešnog programiranja

Slika 4.14. Poruka nakon uspešnog programiranja

Softver PonyProg S obzirom da je softverski alat PonyProg veoma sličan programu IC-Prog, ovde se nećemo baviti detaljnim opisom, a biće opisane samo razlike i to na samom kraju opisa. Ponyprog se vrlo lako instalira pokretanjem fajla ponyprog.exe, što je prikazano na Slici 4.15. Posle jednostavne procedure, program će biti instaliran i moguće je njegovo pokretanje preko Start menija Windows-a (Slika 4.16).

Slika 4.15. Instaliranje programa PonyProg

Slika 4.16. Pokretanje programa PonyProg

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

Slika 4.17. Podešavanje parametara programa

Slika 4.18. Izbor serije mikrokontrolera (89S)

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

Slika 4.20. Proces kalibracije

Slika 4.21. Mogućnost da se odustane od kalibracije

Slika 4.22. Poruka posle uspešno obavljene kalibracije

Slika 4.23. Upisivanje/učitavanje kôda u bafer programa

Slika 4.24. Upisivanje/učitavanje fajla projekat.hex

Slika 4.25. Poruka posle uspešno obavljene kalibracije

Slika 4.26. Mogućnost da se odustane od programiranja

Slika 4.27. Poruka ukoliko nije omogućen pristup mikrokontroleru preko porta

Slika 4.28. Poruka ukoliko nije programiranje nije uspešno

Slika 4.29. Poruka posle uspešnog programiranja

Na Slikama 4.18 i 4.19 ilustrovan je izbor odgovarajućeg mikrokontrolera preko padajućih menija u gornjem desnom uglu osnovnog prozora programa. Kalibracija programa (usklađivanje programa sa brzinom procesora i hard diska) ilustrovan je na Slikama 4.20, 4.21 i 4.22. Proces programiranja mikrokontrolera prikazana je počev od Slike 4.23 do Slike 4.29. Tu su ujedno prikazane poruke koje se prikazuju prilikom neuspešne konekcije (Slika 4.27), neuspešnog (Slika 4.28) i uspešnog programiranja (Slika 4.28).

4.3. Bootstrap loader ISP programmer

Na Slici 4.30 prikazano je osnovno kolo bootstrap loader-a ISP programmer preko kojeg može da se povežu paralelni port računara i bilo koji Atmel-ov mikrokontroler. Povezivanje mikrokontrolera serije 89S obavlja se kao na Slici 4.2. Za serijsko programiranje/čitanje navedenih mikrokontrolera, potrebno je operisati sa samo 5 signala: Vcc (napajanje), RST (reset), SCK (pome-

rački takt), MOSI (serijski ulaz) i MISO (serijski izlaz). Kao što je ranije istaknuto, poslednja 3 signala čine serijski interfejs mikrokontrolera. Naravno, neophodno je da se priključe kvarc, kao i kondenzatori.

Kao što se vidi na slici, kolo 74LS244 služi kao interfejs između računara i mikrokontrolera.

Slika 4.30. Osnovno kolo bootstrap loader-a ISP Programmer

Signali RS-232 interfejsa paralelnog porta računara

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

46

4.4. Program Atmel Microcontroller ISP software Ovde ćemo ukratko ilustrovati rad sa softverskim alatom Atmel Microcontroller ISP software (kompatibilan sa bootstrap loader-om ISP Programmer) i nećemo ponavljati tekst koji je saopšten prilikom opisa sofverskih alata IC-Prog i PonyProg.

Slika 4.31. Izbor mikrokontrolera se vrši u meniju Options

Slika 4.32. Izbor mikrokontrolera AT89S53, koji korespondira sa AT89S8253

47

Slika 4.33. Izgled bafera pre učitavanja kôda

Slika 4.34. Učitavanja heksadecimalnog kôda

48

Slika 4.35. Izgled bafera posle učitavanja kôda

Sledeći koraci podrazumevaju eventualno podešavanje bitova zaključavanja (Lock bits) – kojima se softverski štiti kôd, programiranje (upis) kôda (Write), verifikaciju (Verification) itd. Poslednje dve operacije se nalaze meniju Instructions. Posle toga, moguće je izabrati (selektovati) opciju Auto Program (meni Instructions) kojom će se sadržaj bafera programa “prepisati” u mikrokontroler. Izgled heksadecimalnog kôda za projekat nalazi se u narednom poglavlju ovog rada (u okviru glave Kôd u asembleru).

49

5. PROJEKAT 5.1. Kôd u asembleru U daljem tekstu je priložen asemblerski kôd koji predstavlja “uputstvo” za rad mikrokontrolera AT89S8253. Naime, mikrokontroler treba da upravlja paralelnim periferijskim interfejsom 8255, a to ostvaruje preko četiri upravljačka signala CS (Selekcija čipa), RD (Read), WR (Wite), A0 i A1. Poslednja dva signala definišu mod (režim) rada 8255. Asemblerski kôd treba da se prevede u heksadecimalni kôd preko odgovarajuće kompilatora, od-nosno kompajlera. Za tu svrhu može poslužiti program Keil. ___________________________________________________________________________________

;AT89S8253 & PIO8255 ULAZ EQU 30H IZLAZ EQU 31H ;**** DODELJIVANJE NAZIVA PINOVIMA PORTA 2 KOD MIKROKONTROLERA CS EQU P2.1 ;SELEKCIJA CIPA (CHIP SELECT) RDPIO EQU P2.0 ;CITANJE (READ) PIO WRPIO EQU P2.4 ;UPIS U (WRITE) PIO A0SEL EQU P2.3 ;SELEKCIJA (SELECT) PREKO A0 A1SEL EQU P2.2 ;SELEKCIJA (SELECT) PREKO A1 RSEG CODE START JMP MAIN ;**** INICIJALIZACIJA TIMER-A, RESETA RAM-A I SLICNO MAIN MOV IE,#00H ;ZABRANA SVIH INTERRUPT-A MOV SP,#70H ;DEFINISANJE STACK-A ;**** RESETOVANJE RAMA **** MOV R0,#08 RESR MOV A,#0 MOV @R0,A INC R0 MOV A,R0 CJNE A,#07FH,RESR ;RESETUJE SE INTERNI RAM MOV P1,#0FFH MOV P2,#0FFH CALL modeSEL ;SELEKCIJA MODA ZA PIO

50

;**** GLAVNI PROGRAM **** GP CALL readPIO MOV A,ULAZ MOV IZLAZ,A CALL writePIO JMP GP ;**** UPIS U PIO REGISTAR PA **** writePIO SETB RDPIO SETB WRPIO CLR A1SEL CLR A0SEL ;SELEKTUJE SE P1 ILI PA CLR CS ;SELEKCIJA CIPA PIO NA '0' MOV P1,IZLAZ CLR WRPIO NOP NOP SETB WRPIO SETB A1SEL CLR A0SEL ;SELEKTUJE SE P2 ILI PC PIO MOV P1,#00000001B ;LE ZA IZLAZNI LATCH NA '1' CLR WRPIO NOP NOP SETB WRPIO NOP NOP MOV P1,#00000000B ;LE ZA IZLAZNI LATCH NA '0' CLR WRPIO NOP NOP SETB WRPIO SETB CS ;DESELEKTUJE SE PIO RET ;**** CITANJE PIO REGISTRA PB **** readPIO SETB RDPIO SETB WRPIO SETB A1SEL CLR A0SEL ;SELEKTUJE P2 ILI PC PIO CLR CS ;SELEKTUJE PIO

51

MOV P1,#00000010B ;LE ZA ULAZNI LATCH NA '1' CLR WRPIO NOP NOP SETB WRPIO NOP NOP MOV P1,#00000000B ;LE ZA ULAZNI LATCH NA '0' CLR WRPIO NOP NOP SETB WRPIO SETB CS MOV P1,#0FFH ;P1 NA KONTROLERU KAO ULAZ CLR A1SEL SETB A0SEL ;SELEKTUJE P1 ILI PB CLR CS CLR RDPIO NOP NOP MOV ULAZ,P1 SETB RDPIO SETB CS RET ;**** SELEKCIJA MODA ZA PIO **** modeSEL SETB A1SEL SETB A0SEL CLR CS NOP

MOV P1,#10000010B ;MOD0 P0,2 IZLAZNI, P1 ULAZNI ;REGISTAR

CLR WRPIO NOP NOP SETB WRPIO SETB CS RET END START ___________________________________________________________________________________

52

Heksadecimalni kôd posle kompilacije asemblerskog kôda:

:1000000002000375A80075817078087400F608E88E :10001000B47FF87590FF75A0FF12008B120056E5B3 :1000200030F53112002880F4D2A0D2A4C2A2C2A31B :10003000C2A1853190C2A40000D2A4D2A2C2A375ED :100040009001C2A40000D2A40000759000C2A400D8 :1000500000D2A4D2A122D2A0D2A4D2A2C2A3C2A171 :10006000759002C2A40000D2A40000759000C2A442 :100070000000D2A4D2A17590FFC2A2D2A3C2A1C295 :10008000A00000859030D2A0D2A122D2A2D2A3C2D9 :0E009000A100759082C2A40000D2A4D2A122C9 :00000001FF ___________________________________________________________________________________

Naravno, heksadecimalni kôd nije sređen po bankama, međutim, to je zadatak softverskog alata (IC-Prog, PonyProg, Atmel Microcontroller ISP software itd.)

5.2. Električna šema Kao što se vidi na Slici 5.1, a i u kôdu u asembleru, deo pinova Porta 2 kod mikrokontrolera AT89S8253 je iskorišćen za kontrolu rada paralelnog periferijskog interfejsa 8255 (precizan naziv: PPI82C55A) i to na sledeći način: CS P2.1 ;Selekcija čipa (Chip Select) PIO P2.0 ;Čitanje (Read) PIO WRPIO P2.4 ;Upis u (Write) PIO A0SEL P2.3 ;Selekcija (Select) preko A0 A1SEL P2.2 ;Selekcija (Select) preko A1 Reset je jedinstven za mikrokontroler AT89S8253 i za paralelni periferijski interfejs 8255. Pinovi Porta 1 mikrokontrolera služe za bidirekcioni prenos podataka između mikrokontrolera i paralelnog periferijskog interfejsa. Povezivanje pinova je obavljeno respektivno (P1.0 na D0, P1.1 na D1 ... P1.7 na D7). Predviđeno je da na oba porta kod paralelnog periferijskog interfejsa budu povezana latch kola (74HC373), za prihvatanje 8-bitnih podataka. Na Slici 5.1 može da se uoči kako je Port A definisan kao izlazni, dok je Port B definisan kao ulazni port. Osmobitna reč se zadaje preko prekidača DIP-SW8. Naime, pomenuti prekidač modelira neki 8-bitni ulazni uređaj (npr. 8-bitni A/D konvertor, tasta-turu itd.) Na latch koji korespondira sa Portom A može da se poveže neki izlazni uređaj (8-bitni D/A konvertor, port 8-bitnog mikrokontrolera, memorija, 7-segmentni displej i slično). Osnovna ideja je da se preko kôda, odnosno firmware-a, koji je upisan u mikrokontroler – izvršava jednostavna aplikacija: stanje koje se zadaje na ulazu sistema (preko prekidača DIP-SW8) treba da se prenese na izlaz sistema. Dakle, PPI 82C55A radi u Modu 0. Inače, stanja na izlazima se prate preko osciloskopa.

53

VCC 40P1.0 (T2)1

P1.1 (T2 EX)2

P1.23

P1.34

P1.4 (NOT_SS)5

P1.5 (MOSI)6

P1.6 (MISO)7

P1.7 (SCK)8

RST9

P3.0 (RXD)10

P3.1 (TXD)11

P3.2 (NOT_INT0)12

P3.3 (NOT_INT1)13

P3.4 (T0)14

P3.5 (T1)15

P3.6 (NOT_WR)16

P3.7 (NOT_RD)17

XTAL218

XTAL119

(A8) P2.0 21

(A9) P2.1 22

(A10) P2.2 23

(A11) P2.3 24

(A12) P2.4 25

(A13) P2.5 26

(A14) P2.6 27

(A15) P2.7 28

NOT_PSEN 29

ALE/NOT_PROG 30

NOT_EA/VPP 31

(AD7) P0.7 32

(AD6) P0.6 33

(AD5) P0.5 34

(AD4) P0.4 35

(AD3) P0.3 36

(AD2) P0.2 37

(AD1) P0.1 38

(AD0) P0.0 39

GND20

AT89S8253

U1

AT89S8253

PA4 40PA31

PA22

PA13

PA04

RD5

CS6

GND7

A18

A09

PC710

PC611

PC512

PC413

PC014

PC115

PC216

PC317

PB018

PB119

PB3 21

PB4 22

PB5 23

PB6 24

PB7 25

VCC 26

D7 27

D6 28

D5 29

D4 30

D3 31

D2 32

D1 33

D0 34

RESET 35

WR 36

PA7 37

PA6 38

PA5 39

PB220

PPI 82C55A

U2

PPI_82C55A

OE1

LE11

D03 Q0 2

D14 Q1 5

D27 Q2 6

D38 Q3 9

D413 Q4 12

D514 Q5 15

D617 Q6 16

D718 Q7 19

VDD 20

GND10

U3

MC74HC373N

OE 1

LE 11

D0 3Q02

D1 4Q15

D2 7Q26

D3 8Q39

D4 13Q412

D5 14Q515

D6 17Q616

D7 18Q719

VDD20

GND 10

U4

MC74HC373N

12345678

161514131211109

S1

SW-DIP8

VCC

VCC

VCC

RESET

RESET

VCCPPI_8255_PORT_D0

PPI_8255_PORT_D1

PPI_8255_PORT_D2

PPI_8255_PORT_D3

PPI_8255_PORT_D4

PPI_8255_PORT_D5

PPI_8255_PORT_D6

PPI_8255_PORT_D7

PPI_8255_PORT_D0

PPI_8255_PORT_D1

PPI_8255_PORT_D2

PPI_8255_PORT_D3

PPI_8255_PORT_D4

PPI_8255_PORT_D5

PPI_8255_PORT_D6

PPI_8255_PORT_D7

D0

D1

D3

D5

D4

D6

D7

D0

D1

D2

D3

D5

D4

D6

D7

D22.2uF

C1

10K

R1

VCC

S2

Slika 5.1. Električna šema sprege AT89S8253-PPI82C55A

54

6. LABORATORIJSKA VEŽBA

Ova laboratorijska vežba je pretežno pokaznog karaktera. Predviđeno je da paralelni periferijski interfejs 8255 (PPI 82C55A) radi u Modu 0. Kao što je opisano u drugom poglavlju, integrisano kolo 8255 može da radi i u Modovima 1 i 2, ali ovde ćemo se koncentrisati na Mod 0, jer je kôd napisan sa-mo za ovaj režim rada.

Stanja na ulazima sistema se zadaju preko prekidača DIP-SW8. Firmware-om je predviđeno da se stanja sa ulaza «preslikavaju» na izlaze sistema sa Slike 5.1, a stanja na izlazima treba da se prate preko osciloskopa. Proveriti funkcionalnost sistema sa Slike 5.1 na sledeći način: 1. Priključite napajanje sistema. 2. Ukoliko nije upisan odgovarajući firmware, učinite to na način opisan u četvrtom poglavlju rada.

Dodatni opis je dat u [11]. Isključite napajanje. 3. Preko odgovarajućeg konektora povežite rastersku pločicu na kojoj se nalazi PPI 82C55A sa

štampanom pločicom na kojoj se nalazi mikrokontroler AT89S8253. Dovedite napajanje. 4. Postavite zadatu sekvencu ulaznog podatka ručno, preko prekidača DIP-SW8. 5. Korišćenjem osciloskopa, posmatrajte signale na izlaznom latch-u. Grupa 1:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom: ________________________________________________________________ Grupa 2: Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom: ________________________________________________________________ Grupa 3:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________

55

Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom: ________________________________________________________________ Grupa 4:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 5:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 6:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 7:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________

56

Grupa 8: Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 9:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 10:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 11:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 12:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

57

________________________________________________________________ Grupa 13:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 14:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 15:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________ Grupa 16:

Sekvenca zadatog 8-bitnog ulaznog podataka:

________________________________________________________________ Digitalna reč (8-bitni podatak) na izlazu dobijena posmatranjem osciloskopom:

________________________________________________________________

58

7. ZAKLJUČAK

U prvom poglavlju ovog rada (Prenos podatraka) ukratko su opisani osnovni tipovi prenosa po-dataka (serijski i paralelni), izvršeno je poređenje tipova prenosa i date su neke praktične realizacije. Naravno, akcenat je stavljen na paralelni prenos podataka.

Drugo poglavlje se bavi mikrokontrolerom AT89S8253. Najpre su ukratko navedene njegove ka-rakteristike, a zatim su prikazani njegova unutrašnja struktura, organizacija memorije, načini programi-ranja itd. Istaknuto je da je po pitanju flash memorije i zaštite (Lock bits) mikrokontroler AT89S8253 identičan sa AT89S53, tako da softver predviđen za programiranje AT89S53 odgovara mikrokontrole-ru AT89S8253.

U trećem poglavlju rada opisan je Paralelni periferijski interfejs 8255. Dat je opis ovog integrisa-nog kola, njegove funkcije, kao i praktične realizacije sa pomenutim kolom.

Četvrto poglavlje je posvećeno programiranju mikrokontrolera AT89S53, gde su prikazana dva bootstrap loader-a (SI-Prog, ISP Programmer) i tri softverska alata (programa) koji su kompatibilni sa njima kompatibilni (IC-Prog, PonyProg, Atmel Microcontroller ISP software).

Konačno, u petom poglavlju rada prikazan je primer sprezanja paralelnog periferijskog interfejsa 8255 sa mikrokontrolerom AT89S8253. Uz električnu šemu je priložen kôd u asembleru sa komentari-ma i dat je kratak opis rada.

59

8. LITERATURA

1. ARHITEKTURE I PROGRAMIRANJE RAČUNARSKIH SISTEMA ZASNOVANIH NA FAMILIJI PROCESORA 80x86, Mile K. Stojčev, Branislav D. Petrović, I izdanje, Elektronski fakultet, Niš, 1999.

2. INTEL 8255 Programmable Peripheral I nterface, 1986. 3. ALTERA A8255 Programmable Peripheral Interface, Sep. 1996. ver.1 4. Flash microcontroller – Architectural Overview, http://www.atmel.com 5. Flash microcontroller – Memory Organization, http://www.atmel.com 6. ATMEL, SPI AT Microcontrollers, Datasheets, http://www.atmel.com 7. Migration from AT89S8252/53 to AT89S8253, http://www.atmel.com 8. SI-Pprog - Serial Interface for PonyProg, http://www.lancos.com 9. IC-Prog, Version 1.05A, Bonny Gijzen, www.ic-prog.com, 2004. 10. PonyProg2000 - Serial Device Programmer, Version 2.06c Beta,

Claudio Lanconelli http://www.lancos.com, 2003. 11. Obrada prekida kod mikrokontrolera AT89S8253, Saša Đorđević,

Seminarski rad, Elektronski fakultet, Niš, 2007.