Šta je mikrokontroler ?

72
Tajmer 82c54 Tajmer 82c54 Šta je mikrokontroler ? Šta je mikrokontroler ? Mikrokontroler je računar na čipu Mikrokontroler je računar na čipu . On sadrži skoro . On sadrži skoro sve osnovne gradivne blokove računarskog sistema sve osnovne gradivne blokove računarskog sistema (CPU, ROM, RAM, U/I periferije tipa AD i DA (CPU, ROM, RAM, U/I periferije tipa AD i DA konvertore, serijske komunikacione interfejse konvertore, serijske komunikacione interfejse (UART), paralelne interfejs portove (PIA), (UART), paralelne interfejs portove (PIA), tajmere/brojače, LCD drajvere, i dr) tajmere/brojače, LCD drajvere, i dr) Svi mikrokontroleri imaju usađenu memoriju na čipu Svi mikrokontroleri imaju usađenu memoriju na čipu kao i veći broj kao i veći broj ulazno-izlaznih interfejs linija ulazno-izlaznih interfejs linija Odlikuju se niskom cenom i kompaktnošću Odlikuju se niskom cenom i kompaktnošću Mikrokontroleri se danas koriste u Mikrokontroleri se danas koriste u embedded embedded sistemima za upravljanje raznim funkcijama sistemima za upravljanje raznim funkcijama Mikrokontroleri se veoma često koriste i u Mikrokontroleri se veoma često koriste i u situacijama kada treba da se veoma brzo reaguje na situacijama kada treba da se veoma brzo reaguje na spoljne signale - posebno ako se takvi sistemi spoljne signale - posebno ako se takvi sistemi koriste za rad u realnom vremenu koriste za rad u realnom vremenu Petrović Radovan, 10052

Upload: mab

Post on 19-Mar-2016

94 views

Category:

Documents


1 download

DESCRIPTION

Petrović Radovan, 10052. Šta je mikrokontroler ?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Šta je mikrokontroler ?Šta je mikrokontroler ? Mikrokontroler je računar na čipuMikrokontroler je računar na čipu. On sadrži skoro sve . On sadrži skoro sve

osnovne gradivne blokove računarskog sistema (CPU, ROM, osnovne gradivne blokove računarskog sistema (CPU, ROM, RAM, U/I periferije tipa AD i DA konvertore, serijske RAM, U/I periferije tipa AD i DA konvertore, serijske komunikacione interfejse (UART), paralelne interfejs komunikacione interfejse (UART), paralelne interfejs portove (PIA), tajmere/brojače, LCD drajvere, i dr)portove (PIA), tajmere/brojače, LCD drajvere, i dr)

Svi mikrokontroleri imaju usađenu memoriju na čipu kao i Svi mikrokontroleri imaju usađenu memoriju na čipu kao i veći broj veći broj

ulazno-izlaznih interfejs linijaulazno-izlaznih interfejs linija Odlikuju se niskom cenom i kompaktnošćuOdlikuju se niskom cenom i kompaktnošću Mikrokontroleri se danas koriste u Mikrokontroleri se danas koriste u embeddedembedded sistemima za sistemima za

upravljanje raznim funkcijamaupravljanje raznim funkcijama Mikrokontroleri se veoma često koriste i u situacijama kada Mikrokontroleri se veoma često koriste i u situacijama kada

treba da se veoma brzo reaguje na spoljne signale - treba da se veoma brzo reaguje na spoljne signale - posebno ako se takvi sistemi koriste za rad u realnom posebno ako se takvi sistemi koriste za rad u realnom vremenuvremenu

Petrović Radovan, 10052

Page 2: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Mikrokontroleri: tipovi arhitektura i blok šemaMikrokontroleri: tipovi arhitektura i blok šema

HarvardHarvard tip- karakteriše se razdvojenim memorijama za tip- karakteriše se razdvojenim memorijama za program i podatkeprogram i podatke

PrincetonPrinceton tip (tzv. von Neumann)- programska memorija i tip (tzv. von Neumann)- programska memorija i memorijamemorija za podatke dele isti adresni prostor za podatke dele isti adresni prostor

Page 3: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Opšti blok dijagram mikrokontroleraOpšti blok dijagram mikrokontrolera

RAM

bajt - adresibilni ROM

Fle [ EEPROM

memorijski sistem

centralna procesorska

jedinica - CPU -

sistem za analogno -

digitalnu konverziju

sistem za analogno -

digitalnu konverziju

Unapredene karakteristike : sistem distribuiranog procesiranja impulsno širinska modulacija

Dodatne karakteristike : DA i AD konvertori sat realnog vremena LCD interfejs

sistem za serijsku

komunikaciju

sistem za proširenje. . .

port A port B port X. . .

Page 4: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Mikrokontroleri u odnosu na mikroprocesoreMikrokontroleri u odnosu na mikroprocesore

Mikroprocesor je integrisano kolo ili čip lociran na osnovnoj Mikroprocesor je integrisano kolo ili čip lociran na osnovnoj ploči koje u suštini predstavlja CPU računarskog sistemaploči koje u suštini predstavlja CPU računarskog sistema

Dok je mikroprocesor (CPU) integrisana komponenta na Dok je mikroprocesor (CPU) integrisana komponenta na jedinstvenom čipu, sam mikrokontroler,na jedinstvenom jedinstvenom čipu, sam mikrokontroler,na jedinstvenom cipu ima integrisano CPU, RAM i ROM memoriju i ostale cipu ima integrisano CPU, RAM i ROM memoriju i ostale ulazno-izlazno orijentisane gradivne blokove (paralelni i ulazno-izlazno orijentisane gradivne blokove (paralelni i serijski interfejsi, tajmeri, logika za prihvatanje prekida, A/D serijski interfejsi, tajmeri, logika za prihvatanje prekida, A/D i D/A konvertore i dr.)i D/A konvertore i dr.)

Page 5: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Detaljni blok dijagram mikroračunarskog sistemaDetaljni blok dijagram mikroračunarskog sistema

Page 6: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Blok dijagram mikroprocesora(CPU-a)Blok dijagram mikroprocesora(CPU-a)

ALU

Akumulator

Radni registri

PC SP

kola za taktovanje i sinhronizaciju

kola za prihvatanje

prekida

Page 7: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Blok dijagram mikrokontroleraBlok dijagram mikrokontrolera ALU tajmer/brojač paralelni U/I port

akumulator

registri opšte namene

interni RAM

interni ROM

interni FLASH

SP

PC

serijski U/I port

ADC

DAC

kolo za prekid

kolo za taktovanje

Page 8: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Razlike između mikroprocesora i Razlike između mikroprocesora i mikrokontroleramikrokontrolera

Mikroprocesori najcešće CISC tipa za kopiranje podataka Mikroprocesori najcešće CISC tipa za kopiranje podataka iz spoljne memorije u CPU koriste veći broj op-kôdova, iz spoljne memorije u CPU koriste veći broj op-kôdova, dok mikrokontroleri jedan ili dvadok mikrokontroleri jedan ili dva

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

Mikroprocesori su projektovani za brzi prenos podataka iz Mikroprocesori su projektovani za brzi prenos podataka iz programa sa spoljno adresiranih lokacija u čip, dok se kod programa sa spoljno adresiranih lokacija u čip, dok se kod mikrokontrolera brzi prenos bitova obavlja u okviru čipa.mikrokontrolera brzi prenos bitova obavlja u okviru čipa.

Mikrokontroler moze da funkcioniše kao računar bez Mikrokontroler moze da funkcioniše kao računar bez dodataka spoljnih gradivnih blokova (memorije i U/I dodataka spoljnih gradivnih blokova (memorije i U/I uređaja), dok operativnost mikroprocesora bez spoljne uređaja), dok operativnost mikroprocesora bez spoljne memorije i U/I podsistema nije mogućamemorije i U/I podsistema nije moguća

Page 9: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Šta su tajmeri Šta su tajmeri ??

Tajmer-kolo je periferno kolo koje je u stanju da meri Tajmer-kolo je periferno kolo koje je u stanju da meri vremenske intervale vremenske intervale

Ima mogućnost generisanja događaja u specifičnim Ima mogućnost generisanja događaja u specifičnim vremenskim trenucima. Tipične aplikacije su one koje se vremenskim trenucima. Tipične aplikacije su one koje se odnose na uključenje crvenog/žutog/zelenog svetla na odnose na uključenje crvenog/žutog/zelenog svetla na semaforu za specificirani vremenski period, recimo semaforu za specificirani vremenski period, recimo crveno svetlo traje 20 s, žuto 3 s, a crveno 15 scrveno svetlo traje 20 s, žuto 3 s, a crveno 15 s

Može da odredi vreme trajanja između dva spoljašnja Može da odredi vreme trajanja između dva spoljašnja događaja. Obično aplikacije ovakvog tipa srećemo kod događaja. Obično aplikacije ovakvog tipa srećemo kod merenja brzine kretanja vozilamerenja brzine kretanja vozila

Page 10: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Tajmer, BrojačTajmer, Brojač

Tajmer je kolo koje meri vreme putem odbrojavanja Tajmer je kolo koje meri vreme putem odbrojavanja taktnih impulsa poznate periode koji se dovode na ulazu taktnih impulsa poznate periode koji se dovode na ulazu ovog kola. Tako na primer, ako je perioda pobudnog ovog kola. Tako na primer, ako je perioda pobudnog taknog impulsa 1 μs, a izbrojano je 5000 pobudnih taktnih taknog impulsa 1 μs, a izbrojano je 5000 pobudnih taktnih impulsa, to znači da je prošlo vreme od 5 msimpulsa, to znači da je prošlo vreme od 5 ms

Brojač predstavlja generalnija verzija tajmera. Naime, Brojač predstavlja generalnija verzija tajmera. Naime, umesto da odbrojava taktne impulse generisani od strane umesto da odbrojava taktne impulse generisani od strane internog oscilatora CPU-a, brojač broji impulse koji su internog oscilatora CPU-a, brojač broji impulse koji su generisani od strane nekog drugog, obično spoljneg, generisani od strane nekog drugog, obično spoljneg, generatora signala. Tako na primer, brojač se može generatora signala. Tako na primer, brojač se može koristiti za brojanje broja vozila koja prolaze na nekoj koristiti za brojanje broja vozila koja prolaze na nekoj deonici autoputa, pri čemu je svaki prolaz detektovan od deonici autoputa, pri čemu je svaki prolaz detektovan od strane odgovarajučeg senzora. Brojač se takođe može strane odgovarajučeg senzora. Brojač se takođe može koristiti i za brojanje ljudi koji ulaze ili izlaze u/iz neke koristiti i za brojanje ljudi koji ulaze ili izlaze u/iz neke prostorije prostorije

Page 11: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Strukture Tajmer-kolaStrukture Tajmer-kola

16-bitni brojač - naviše

16

CLKIZL

16-bitni brojač - naviše

16CLK

=

kraj brojanja

kb

IZL

16-bitni brojač - naviše

16MUX2 u 1

CLK

br_ul

mode

16-bitni brojač - naviše

1616-bitni brojač

- naviše

16

16-bitni brojač - naviše

16

preskaler

CLK

CLK

mode

Reset(a) (b)

(c)

(d)

(e)

kb

(a) osnovni tajmer; (b) tajmer/brojač događaja; (c) tajmer sa krajem brojanja: (d) 16/32-bitni tajmer; (e) tajmer sa preskalerom

Napomena: CLK- ulaz taktnog signala (impulsi generisani od strane strane internog oscilatora CPU-a); kb- izlaz kraj brojanja; br_ul- brojački impulsi generisani od strane spoljneg izvora; mode- režim rada; “=“- komparator; MUX- multiplekser

Page 12: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Opis projekta sistemaOpis projekta sistema

Napajanje (+5v)Napajanje (+5v)

Page 13: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

MikrokontrolerMikrokontroler

Koristi se AT89S8263 mikrokontrolerKoristi se AT89S8263 mikrokontroler AT89S8253 je procesor visokih performansi i male potrošnje AT89S8253 je procesor visokih performansi i male potrošnje

snage. Radi se o CMOS 8-bitnom mikrokontroleru sa 12 kB snage. Radi se o CMOS 8-bitnom mikrokontroleru sa 12 kB flash memorije i 2kB EEPROM-a. Napravljen je u Atmel flash memorije i 2kB EEPROM-a. Napravljen je u Atmel korporaciji i kompatibilan je sa poznatim i popularnim korporaciji i kompatibilan je sa poznatim i popularnim procesorom 80C51. Reprogramiranje memorije je moguće procesorom 80C51. Reprogramiranje memorije je moguće pomocu SPI serijskog ulaza ili pomoću programatora pomocu SPI serijskog ulaza ili pomoću programatora memorija. AT89S8253 se koristi za operacije niskih memorija. AT89S8253 se koristi za operacije niskih frekvencija, i ima 2 softverska moda. IDLE mod zaustavlja frekvencija, i ima 2 softverska moda. IDLE mod zaustavlja CPU dok dozvoljava rad RAM-a, brojač/tajmer-a, serijskog CPU dok dozvoljava rad RAM-a, brojač/tajmer-a, serijskog porta i sistema prekida. Niski mod čuva RAM sadržaj ali i porta i sistema prekida. Niski mod čuva RAM sadržaj ali i zaustavlja oscilator isključujuci sve ostale funkcije u kolu zaustavlja oscilator isključujuci sve ostale funkcije u kolu sve dok ne naiđe sledeći spoljašnji prekid ili hardverski sve dok ne naiđe sledeći spoljašnji prekid ili hardverski reset. FLASH memoriji se može pristupiti preko SPI reset. FLASH memoriji se može pristupiti preko SPI interfejsainterfejsa

Page 14: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Blok šema mikrokontrolera AT89S8253Blok šema mikrokontrolera AT89S8253

Page 15: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Clock-Out režim Tajmera 2Clock-Out režim Tajmera 2 mikrokontroleramikrokontrolera

Klok se dobija sa pina P1.0Klok se dobija sa pina P1.0 Princip rada tajmera je takav da se pri dostizanju Princip rada tajmera je takav da se pri dostizanju

prekoračenja u brojanju, od zadate vrednosti brojanja, prekoračenja u brojanju, od zadate vrednosti brojanja, sadržaj registara RCAP2H i RCAP2L učitava u TH2 i TL2, pri sadržaj registara RCAP2H i RCAP2L učitava u TH2 i TL2, pri čemu nema generisanja prekidačemu nema generisanja prekida

Izlazna frekvencija računa se po formuliIzlazna frekvencija računa se po formuli

P2L)]RCAP2H/RCA(65536[4FoscFout

Page 16: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Periferija – Tajmer 82c54Periferija – Tajmer 82c54

Ulazna frekvencija do 10MHzUlazna frekvencija do 10MHz Tri 16-bitna brojača/tajmera Tri 16-bitna brojača/tajmera Mala potrošnja, oko 10mA pri taktu od 8MHzMala potrošnja, oko 10mA pri taktu od 8MHz TTL kompatibilnostTTL kompatibilnost 6 režima rada 6 režima rada Binarno ili BCD brojanje Binarno ili BCD brojanje

Page 17: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

PrimenaPrimena

Sat realnog vremenaSat realnog vremena Brojač događajaBrojač događaja Generator pravougaonih impulsaGenerator pravougaonih impulsa Kontroler motoraKontroler motora Binarni množač frekvencijeBinarni množač frekvencije

Page 18: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Blok šemaBlok šema

Page 19: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

OpisOpis

Bafer podataka - Bafer podataka - Trostatički, 8-bitni, bi-direkcioni bafer i Trostatički, 8-bitni, bi-direkcioni bafer i koristi se kao interfejs za povezivanje 82c54 sakoristi se kao interfejs za povezivanje 82c54 sa mikrokontrolerommikrokontrolerom

R/W LogikaR/W Logika - - Prihvata upravljačke signale, i generiše Prihvata upravljačke signale, i generiše signale za rad celokupnog kola. Rad bloka se kontroliše signale za rad celokupnog kola. Rad bloka se kontroliše pomoću signalapomoću signala CS CS

CS CS -- Ulazni signal kojim se dozvoljava rad kola Ulazni signal kojim se dozvoljava rad kola RD RD -- Ulazni signal koji treba da bude u stanju logičke nule, Ulazni signal koji treba da bude u stanju logičke nule,

pri pri čitanjučitanju WR WR -- Ulazni signal koji treba da bude u stanju logičke nule, Ulazni signal koji treba da bude u stanju logičke nule,

pri upisupri upisu A1,A0A1,A0 - - Ulazi kojim se vrši selekcija jednog od tri brojača Ulazi kojim se vrši selekcija jednog od tri brojača

za upis inicijalne vrednosti za brojanje, ili za upis inicijalne vrednosti za brojanje, ili Kontrolne rečiKontrolne reči

Page 20: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Raspored pinovaRaspored pinova

Page 21: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Električna šema sistemaElektrična šema sistema

Page 22: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Opis konekcijeOpis konekcije

Data Bus tajmera 82c54 povezan je sa Portom2 Data Bus tajmera 82c54 povezan je sa Portom2 mikrokontrolera, dok je Read/Write logika povezana sa mikrokontrolera, dok je Read/Write logika povezana sa Portom P3, u redosledu:Portom P3, u redosledu:

CS, RD, WR, A1, A0 ( kao u tabeli 6), (na P3.4 ide CS, CS, RD, WR, A1, A0 ( kao u tabeli 6), (na P3.4 ide CS, itd)itd),,

Izlaz tajmera 0 povezan je na ulaz tajmera 1 i 2. Izlaz tajmera 0 povezan je na ulaz tajmera 1 i 2. Trigerovanje gejta 1 i 2 se ostvaruje džamperom na Gejtu 1 Trigerovanje gejta 1 i 2 se ostvaruje džamperom na Gejtu 1 i 2. Gejt tajmera 0 je uvek na visokom nivoui 2. Gejt tajmera 0 je uvek na visokom nivou

Izlazi tajmera 0 i 1 i 2 su F_OUT 0, F_OUT 1 i F_OUT2Izlazi tajmera 0 i 1 i 2 su F_OUT 0, F_OUT 1 i F_OUT2

Page 23: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

SoftverSoftver

Kao software koristi se Kao software koristi se Keil µVision3 V3.5Keil µVision3 V3.5 za pisanje za pisanje kôdkôda i a i simulaciju.simulaciju. Kôd Kôd je napisan u C-uje napisan u C-u

Page 24: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Opis Opis kôdkôdaa

Najpre se ukine prekid, izvrši programiranje Tajmera 2 Najpre se ukine prekid, izvrši programiranje Tajmera 2 mikrokontrolera AT89S8253, tako što se odredi vrednost mikrokontrolera AT89S8253, tako što se odredi vrednost brojanja (za 500KHz na P1.0, je potrebno da vrednost brojanja (za 500KHz na P1.0, je potrebno da vrednost brojanja bude FFFA ili 65530, što se dobija po formuli za brojanja bude FFFA ili 65530, što se dobija po formuli za Fout). U registar T2CON se upiše 253 (C/T2 se postavi na 0), Fout). U registar T2CON se upiše 253 (C/T2 se postavi na 0), dok se u T2MOD registru T2OE postavi na 1. Sa TR2=1 dok se u T2MOD registru T2OE postavi na 1. Sa TR2=1 startuje tajmer sa generisanjem frekvencije. Programira se, startuje tajmer sa generisanjem frekvencije. Programira se, zatim, tajmer 0zatim, tajmer 0 eksternog tajmera 82c54, da generiše 500 eksternog tajmera 82c54, da generiše 500 puta manju frekvencu, i njegov izlaz se vodi na ulaz tajmera puta manju frekvencu, i njegov izlaz se vodi na ulaz tajmera 1 ili 2, koji dalje deli, sa određenom vrednošću, i radi u 1 ili 2, koji dalje deli, sa određenom vrednošću, i radi u potrebnom režimu. (U ovom slučaju (MODE3 – SQUARE potrebnom režimu. (U ovom slučaju (MODE3 – SQUARE WAVE MODE) tajmer 0 deli sa 500d (1F4 H) – LSB i MSB, WAVE MODE) tajmer 0 deli sa 500d (1F4 H) – LSB i MSB, dok tajmer 1( ili 2) deli sa 1000d (3E8 H) – LSB i MSB). Oba dok tajmer 1( ili 2) deli sa 1000d (3E8 H) – LSB i MSB). Oba tajmera eksternog tajmera broje binarnotajmera eksternog tajmera broje binarno

1000d = 3E8h; LSB=E8, MSB=3; 500d = 1F4h; 1000d = 3E8h; LSB=E8, MSB=3; 500d = 1F4h; LSB=F4, MSB=1LSB=F4, MSB=1

Page 25: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Primer kPrimer kôôda – početak da – početak

#include <AT898252.H>#include <AT898252.H> sbit Izlaz = P1^0; sbit Izlaz = P1^0;

sbit Pin = P1^2; sbit Pin = P1^2; sbit GATE1_Pin = P1^4; sbit GATE1_Pin = P1^4; sbit GATE2_Pin = P1^5; sbit GATE2_Pin = P1^5; unsigned int k;unsigned int k;unsigned int l;unsigned int l;void main(void)void main(void){{

Page 26: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Generisanje frekvencije od 500KHz na pinu P1.0 – Generisanje frekvencije od 500KHz na pinu P1.0 – nastavak knastavak kôôdada::

EA = 0; EA = 0; // GIE = 0// GIE = 0RCAP2H = 0xFF;RCAP2H = 0xFF; // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500KHz 500KHz RCAP2L = 0xFA;RCAP2L = 0xFA;T2CON &= 253;T2CON &= 253; // C/T2 treba da bude Clear// C/T2 treba da bude Clear T2MOD |= 2;T2MOD |= 2; // T2OE = 1;// T2OE = 1;TR2 = 1; TR2 = 1; // Start Tajmera// Start Tajmera

Page 27: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje Tajmera 0 u Modu3 – nastavak kProgramiranje Tajmera 0 u Modu3 – nastavak kôôdada::

// Programiranje eksternog TAJMERA - 82c54, T1// Programiranje eksternog TAJMERA - 82c54, T1 u modu 3u modu 3 for(k=0; k<=7000; k++);//kasnjenje od 20ms pre pocetka for(k=0; k<=7000; k++);//kasnjenje od 20ms pre pocetka

programiranja tajmera 0programiranja tajmera 0 // Mode 3 - generisanje pravougaonih impulsa// Mode 3 - generisanje pravougaonih impulsa // programiranje tajmera 0 - deljenje 500KHz sa 500 ( sa 1F4 )// programiranje tajmera 0 - deljenje 500KHz sa 500 ( sa 1F4 ) P3 = 0x0F; P3 = 0x0F; // nedozvoljeno stanje za tajmer 82c54 // nedozvoljeno stanje za tajmer 82c54

P2 = 0x36; P2 = 0x36; // Kontrolna rec 110110b – tabela 1,2,3,4,5// Kontrolna rec 110110b – tabela 1,2,3,4,5P3 = 0x0B; P3 = 0x0B; // upis Kontrolne reci; iz tabele 6 je 01011b=Bh// upis Kontrolne reci; iz tabele 6 je 01011b=BhP3 = 0x0F;P3 = 0x0F;P2 = 0xF4; P2 = 0xF4; // LSB vrednosti brojanja// LSB vrednosti brojanjaP3 = 0x08; // upis LSB-a u tajmer 0; iz tabele 6 je 01000b=8hP3 = 0x08; // upis LSB-a u tajmer 0; iz tabele 6 je 01000b=8hP3 = 0x0F;P3 = 0x0F;P2 = 0x01;P2 = 0x01; //MSB vrednosti brojanja //MSB vrednosti brojanjaP3 = 0x08; //upis MSB-a u tajmer 0 P3 = 0x08; //upis MSB-a u tajmer 0 P3 = 0x0F; // nedozvoljeno stanje za tajmer 82c54 P3 = 0x0F; // nedozvoljeno stanje za tajmer 82c54 for(l=0; l<=7000; l++); //kasnjenje od 20ms posle pocetka rada for(l=0; l<=7000; l++); //kasnjenje od 20ms posle pocetka rada tajmera 0tajmera 0

Page 28: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje Tajmera 1(2) u nekom od modova rada – Programiranje Tajmera 1(2) u nekom od modova rada – nastavak knastavak kôôdada

// programiranje tajmera 1 sa inicijalnom vrednoscu od 1000 (3E8)// programiranje tajmera 1 sa inicijalnom vrednoscu od 1000 (3E8)// Mode 3 - generisanje pravougaonih impulsa// Mode 3 - generisanje pravougaonih impulsaP3 = 0x0F;P3 = 0x0F;P2 = 0x76; P2 = 0x76; //kontrolna rec 1110110 – tabela 1,2,3,4,5//kontrolna rec 1110110 – tabela 1,2,3,4,5P3 = 0x0B; P3 = 0x0B; // iz tabele 6 je 01011b=Bh // iz tabele 6 je 01011b=BhP3 = 0x0F;P3 = 0x0F;P2 = 0xE8;P2 = 0xE8; //LSB vrednosti brojanja//LSB vrednosti brojanjaP3 = 0x09; //upis LSB-a u tajmer 1P3 = 0x09; //upis LSB-a u tajmer 1P3 = 0x0F;P3 = 0x0F;P2 = 0x03;P2 = 0x03; //msb vrednosti brojanja//msb vrednosti brojanjaP3 = 0x09; //upis MSB-a u tajmer 0; iz tabele 6 je 01001b=9hP3 = 0x09; //upis MSB-a u tajmer 0; iz tabele 6 je 01001b=9hP3 = 0x0F; // nedozvoljeno stanje za tajmer 82c54 P3 = 0x0F; // nedozvoljeno stanje za tajmer 82c54 while(1)while(1){{}}

}}

Page 29: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Uputstvo za programiranjeUputstvo za programiranje

Iz datog Iz datog kôdkôda se vidi da je za programiranje Tajmera 2 a se vidi da je za programiranje Tajmera 2 eksternog tajmera 82c54 potrebno samo promeniti eksternog tajmera 82c54 potrebno samo promeniti vrednost Kontrolne reči, u skladu sa tabelama 1,2,3,4,5, i vrednost Kontrolne reči, u skladu sa tabelama 1,2,3,4,5, i vrednost brojanja, dok Tabela 6 omogućava kontrolu upisa, vrednost brojanja, dok Tabela 6 omogućava kontrolu upisa, i vrednosti treba menjati u skladu sa istom, u zavisnosti od i vrednosti treba menjati u skladu sa istom, u zavisnosti od toga da li se programira tajmer ili upisuje Kontrolna rečtoga da li se programira tajmer ili upisuje Kontrolna reč

Napomena: Tajmer 0 se programira samo u Modu3 sa Napomena: Tajmer 0 se programira samo u Modu3 sa vrednovrednošću brojanja 1000d šću brojanja 1000d i uvek je aktivan, Gate (dozvola i uvek je aktivan, Gate (dozvola rada) mu je na logičkoj jedinici. Tajmeri 1 i 2 se rada) mu je na logičkoj jedinici. Tajmeri 1 i 2 se programiraju za sve režime rada upisom odgovarajućeg programiraju za sve režime rada upisom odgovarajućeg kôdkôda u mikrokontroler i trigeruju džamperom u Modu 1 i 5. a u mikrokontroler i trigeruju džamperom u Modu 1 i 5. Kodovi su dati u poglavlju 4Kodovi su dati u poglavlju 4

Page 30: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje tajmera 82c54Programiranje tajmera 82c54

Programiranje se vrši upisom Programiranje se vrši upisom kontrolne rečikontrolne reči i posle toga i posle toga

upisom inicijalne vrednosti za brojanje, koja se ne upisuje u upisom inicijalne vrednosti za brojanje, koja se ne upisuje u Control Word registar, već u sam tajmerControl Word registar, već u sam tajmer

Format upisa:Format upisa:1. Kontrolna reč1. Kontrolna reč2. LSB vrednosti brojanja2. LSB vrednosti brojanja3. MSB vrednosti upisa3. MSB vrednosti upisaIli:Ili:1. Kontrolna reč1. Kontrolna reč2. LSB vrednosti brojanja2. LSB vrednosti brojanjaIli:Ili:1. Kontrolna reč1. Kontrolna reč2. MSB vrednosti brojanja2. MSB vrednosti brojanja

Page 31: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje Tajmera 82c54 - nastavakProgramiranje Tajmera 82c54 - nastavak

Ovaj redosled treba poštovati u skladu sa Kontrolnom reči, Ovaj redosled treba poštovati u skladu sa Kontrolnom reči, tj. ako je brojač, Kontrolnom rečju, predviđen za upis LSB, tj. ako je brojač, Kontrolnom rečju, predviđen za upis LSB, pa MSB tako i treba upisati pri upisu vrednosti brojanjapa MSB tako i treba upisati pri upisu vrednosti brojanja

Ako se navede samo LSB ili MSB u Kontrolnoj reči, onda Ako se navede samo LSB ili MSB u Kontrolnoj reči, onda treba upisati samo tu jednu vrednost – najviše 8-bitnutreba upisati samo tu jednu vrednost – najviše 8-bitnu

LSB – least significiant byte – niži bajtLSB – least significiant byte – niži bajt MSB – most significiant byte – viši bajtMSB – most significiant byte – viši bajt

Page 32: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje Tajmera 82c54 - nastavakProgramiranje Tajmera 82c54 - nastavak Kontrolna reč se upisuje u Kontrolna reč se upisuje u Control WordControl Word registar na na registar na način čin

opisan sledećom tabelom:opisan sledećom tabelom:

Time se određuje brojač, mod rada, i način brojanja, pri čemu je: Time se određuje brojač, mod rada, i način brojanja, pri čemu je: CS=0 RD = 1 WR = 0CS=0 RD = 1 WR = 0 A1,A0 A1,A0=1=1 , , kao u sledećoj tabeli:kao u sledećoj tabeli:

Page 33: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Opis bitova Kontrolne rečiOpis bitova Kontrolne reči

Page 34: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Algoritam radaAlgoritam rada

Page 35: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje mikrokontroleraProgramiranje mikrokontrolera

Upis kUpis kôôda u mikrokontroler može da se vrši preko ISP kabla da u mikrokontroler može da se vrši preko ISP kabla i ISP konektora na pločici ili korišćenjem programatora. U i ISP konektora na pločici ili korišćenjem programatora. U ovom slučaju korišćen je programator ovom slučaju korišćen je programator MEC ProgramMate MEC ProgramMate UNP2 Universal ProgrammerUNP2 Universal Programmer i i software software MEC PG4UWMEC PG4UW

Page 36: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje mikrokontroleraProgramiranje mikrokontrolera – – nastavak – nastavak – osnovni osnovni prozor programa MEC PG4UWprozor programa MEC PG4UW

Page 37: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje mikrokontroleraProgramiranje mikrokontrolera – – nastavak – nastavak – selekcija selekcija AT89S8253 mikrokontroleraAT89S8253 mikrokontrolera

Page 38: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje mikrokontroleraProgramiranje mikrokontrolera – – nastavak – nastavak – odabir odabir HEX fajlaHEX fajla

Page 39: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje mikrokontroleraProgramiranje mikrokontrolera – – nastavak – nastavak – početak početak programiranjaprogramiranja

Ovde treba čekirati opciju Ovde treba čekirati opciju FLASH + EEPROMFLASH + EEPROM

Page 40: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Programiranje mikrokontrolera – nastavak – Programiranje mikrokontrolera – nastavak – upis upis kôdakôda u u

mikrokontrolermikrokontroler

Page 41: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Primeri za Tajmer 82c54Primeri za Tajmer 82c54

Dati su primeri rada Tajmera u svih 6 režima (modova), Dati su primeri rada Tajmera u svih 6 režima (modova), zajedno sa zajedno sa kôdkôdomom i talasnim oblicima izlaznog signala. Dati i talasnim oblicima izlaznog signala. Dati su ksu kôôdovi za Tajmer 1; za Tajmer 2 je sve isto samo što dovi za Tajmer 1; za Tajmer 2 je sve isto samo što treba promeniti vrednosti na Portu P3 i Portu P2, u treba promeniti vrednosti na Portu P3 i Portu P2, u kôdu, kôdu, u u skladu sa prethodnim tabelamaskladu sa prethodnim tabelama

Page 42: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

MOD0: Generisanje Prekida po završetku brojanjaMOD0: Generisanje Prekida po završetku brojanja

Nakon upisa Kontrolne reči Izlaz (OUT) je, inicijalno, u stanju Nakon upisa Kontrolne reči Izlaz (OUT) je, inicijalno, u stanju logičke nule, i tu ostaje dok brojač ne dostigne nulu. Izlaz logičke nule, i tu ostaje dok brojač ne dostigne nulu. Izlaz onda ide u stanje logičke jedinice i tu ostaje do novog upisa. onda ide u stanje logičke jedinice i tu ostaje do novog upisa. Gate=1 Gate=1 dozvoljava rad, Gate=0 zabranjuje, ali Gate nema dozvoljava rad, Gate=0 zabranjuje, ali Gate nema uticaja na Izlaz. uticaja na Izlaz. Nakon upisa Kontrolne reči i vrednosti brojanja, vrednost Nakon upisa Kontrolne reči i vrednosti brojanja, vrednost brojanja će se učitati na sledeći Klok impuls, koji ne brojanja će se učitati na sledeći Klok impuls, koji ne smanjuje tu vrednost; pa za vrednost brojanja N, Izlaz neće smanjuje tu vrednost; pa za vrednost brojanja N, Izlaz neće otići u stanje logičke jedinice pre N+1 Klok impulsa posle otići u stanje logičke jedinice pre N+1 Klok impulsa posle upisa inicijalne vrednosti brojanja.upisa inicijalne vrednosti brojanja.

Page 43: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

KôdKôd #include <AT898252.H>#include <AT898252.H>sbit Izlaz = P1^0; sbit Izlaz = P1^0; sbit Pin = P1^2; sbit Pin = P1^2; sbit GATE1_Pin = P1^4; sbit GATE1_Pin = P1^4; sbit GATE2_Pin = P1^5; sbit GATE2_Pin = P1^5; unsigned int k;unsigned int k;unsigned int l;unsigned int l;void main(void)void main(void){{

P1=1;P1=1; GATE1_Pin = 1;GATE1_Pin = 1;

GATE2_Pin = 1;GATE2_Pin = 1;// Inicijalizacija sistema// Inicijalizacija sistemaEA = 0; // GIE = 0EA = 0; // GIE = 0RCAP2H = 0xFF;RCAP2H = 0xFF; // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz RCAP2L = 0xFA;RCAP2L = 0xFA;T2CON &= 253;T2CON &= 253; // C/T2 treba da bude Clear// C/T2 treba da bude Clear T2MOD |= 2;T2MOD |= 2; // T2OE = 1;// T2OE = 1;//T2CON |= 4;//T2CON |= 4; // TR2 = Start Timer// TR2 = Start TimerTR2 = 1;TR2 = 1;

Page 44: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Nastavak kNastavak kôôdada// Programiranje eksternog TAJMERA - 82c54, T1// Programiranje eksternog TAJMERA - 82c54, T1 u modu 0u modu 0for(k=0; k<=7000; k++);for(k=0; k<=7000; k++);// Timer 0 - deljenje 500KHz sa 500 ( 1F4 )// Timer 0 - deljenje 500KHz sa 500 ( 1F4 )P3 = 0x0F;P3 = 0x0F;P2 = 0x36;P2 = 0x36; // kontrolna rec // kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0xF4; // lsb vrednosti brojanjaP2 = 0xF4; // lsb vrednosti brojanjaP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;P2 = 0x01;P2 = 0x01; //msb vrednosti brojanja//msb vrednosti brojanjaP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;for(l=0; l<=7000; l++);for(l=0; l<=7000; l++);// Timer 1// Timer 1P3 = 0x0F;P3 = 0x0F;P2 = 0x50; //kontrolna recP2 = 0x50; //kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0x04;P2 = 0x04; //lsb vrednosti brojanja//lsb vrednosti brojanjaP3 = 0x09;P3 = 0x09;P3 = 0x0F;P3 = 0x0F; while(1)while(1){{

}}}}

Page 45: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Talasni obliciTalasni oblici

CW = Kontrolna reč

Page 46: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

MOD1: Monostabilni multivibrator koji se hardverski ponovo MOD1: Monostabilni multivibrator koji se hardverski ponovo

okidaokida IIzlaz će, inicijalno, biti u stanju logičke jedinice. Izlaz će zlaz će, inicijalno, biti u stanju logičke jedinice. Izlaz će

preći u stanje logičke nule pod dejstvom Klok impulsa i uz preći u stanje logičke nule pod dejstvom Klok impulsa i uz trigerovanje gejta i počeće brojanje, pri čemu izlaz ostaje u trigerovanje gejta i počeće brojanje, pri čemu izlaz ostaje u stanju logičke nule dok tajmer ne dostigne nulu. Izlaz će stanju logičke nule dok tajmer ne dostigne nulu. Izlaz će onda otići u stanje logičke jedinice i tamo ostati do sledećeg onda otići u stanje logičke jedinice i tamo ostati do sledećeg Klok impulsa i trigera. Vrednost brojanja od N rezultuje u Klok impulsa i trigera. Vrednost brojanja od N rezultuje u trajanju od N Klok impulsa. Gate ne utiče na izlaz. Proces se trajanju od N Klok impulsa. Gate ne utiče na izlaz. Proces se može ponoviti, bez ponovnog upisa vrednosti brojanja u može ponoviti, bez ponovnog upisa vrednosti brojanja u brojač, novim trigerovanjem.brojač, novim trigerovanjem.

Napomena: Trigerovanje se ostvaruje prebacivanjem Napomena: Trigerovanje se ostvaruje prebacivanjem džampera Gate 1, na pločici sa tajmerom 82c54, u srednji džampera Gate 1, na pločici sa tajmerom 82c54, u srednji položaj(GND) i vraćanjem na 5V.položaj(GND) i vraćanjem na 5V.

Page 47: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

KôdKôd#include <AT898252.H>#include <AT898252.H>sbit Izlaz = P1^0; sbit Izlaz = P1^0; sbit Pin = P1^2; sbit Pin = P1^2; sbit GATE1_Pin = P1^4; sbit GATE1_Pin = P1^4; sbit GATE2_Pin = P1^5; sbit GATE2_Pin = P1^5; unsigned int k;unsigned int k;unsigned int l;unsigned int l; void main(void)void main(void){{

P1=1; P1=1; // Inicijalizacija sistema// Inicijalizacija sistemaEA = 0; // GIE = 0EA = 0; // GIE = 0RCAP2H = 0xFF;RCAP2H = 0xFF; // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz RCAP2L = 0xFA;RCAP2L = 0xFA;T2CON &= 253;T2CON &= 253; // C/T2 treba da bude Clear// C/T2 treba da bude Clear T2MOD |= 2;T2MOD |= 2; // T2OE = 1;// T2OE = 1;//T2CON |= 4;//T2CON |= 4; // TR2 = Start Timer// TR2 = Start TimerTR2 = 1;TR2 = 1;

Page 48: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Nastavak kNastavak kôdôdaa// Programiranje eksternog TAJMERA - 82c54, T1 u modu 1// Programiranje eksternog TAJMERA - 82c54, T1 u modu 1

for(k=0; k<=7000; k++);for(k=0; k<=7000; k++);//Timer 0 - deljenje sa 500//Timer 0 - deljenje sa 500P3 = 0x0F;P3 = 0x0F;P2 = 0x36; //kontrolna recP2 = 0x36; //kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0xF4; //lsbP2 = 0xF4; //lsbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;P2 = 0x01; //msbP2 = 0x01; //msbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;for(l=0; l<=7000; l++);for(l=0; l<=7000; l++);//Timer 1//Timer 1P3 = 0x0F;P3 = 0x0F;P2 = 0x52; //kontrolna recP2 = 0x52; //kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0x03; //lsbP2 = 0x03; //lsbP3 = 0x09;P3 = 0x09;P3 = 0x0F;P3 = 0x0F; while(1)while(1){{}}

}}

Page 49: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Talasni obliciTalasni oblici

Page 50: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

MOD2: Delitelj sa MOD2: Delitelj sa NN

U ovom režimu brojač radi kao delitelj sa N. Izlaz je, inicijalno, u U ovom režimu brojač radi kao delitelj sa N. Izlaz je, inicijalno, u stanju logičke jedinice. Kada se vrednost brojanja smanji na 1, stanju logičke jedinice. Kada se vrednost brojanja smanji na 1, izlaz prelazi u stanje logičke nule i tu ostaje za vreme jednog izlaz prelazi u stanje logičke nule i tu ostaje za vreme jednog impulsa Kloka. Izlaz ponovo prelazi u stanje logičke jedinice, impulsa Kloka. Izlaz ponovo prelazi u stanje logičke jedinice, brojač ponovo učita vrednost brojanja i proces se ponavlja brojač ponovo učita vrednost brojanja i proces se ponavlja periodično. Za vrednost brojanja N, sekvenca se ponavlja na periodično. Za vrednost brojanja N, sekvenca se ponavlja na svakih N Klok impulsa. svakih N Klok impulsa. Gate=1 dozvoljava brojanje, Gate=0 zabranjuje. Gate=1 dozvoljava brojanje, Gate=0 zabranjuje. Ako se Gate prebaci na logiAko se Gate prebaci na logičku nulu u toku izlaznog impulsa, čku nulu u toku izlaznog impulsa, Izlaz odmah prelazi u logičku nulu. Triger ponovo učita brojač Izlaz odmah prelazi u logičku nulu. Triger ponovo učita brojač sa inicijalnom vrednošću na sledeći Klok impuls. Izlaz prelazi u sa inicijalnom vrednošću na sledeći Klok impuls. Izlaz prelazi u logičku nulu nakon N Klok impulsa posle trigerovanja. *logičku nulu nakon N Klok impulsa posle trigerovanja. *Nakon upisa Kontrolne reči i inicijalne vrednosti brojanja, brojač Nakon upisa Kontrolne reči i inicijalne vrednosti brojanja, brojač će biti učitan na sledeći Klok impuls. Izlaz ide u stanje logičke će biti učitan na sledeći Klok impuls. Izlaz ide u stanje logičke nule i tamo je N Klok impulsa nakon upisa vrednosti brojanja.nule i tamo je N Klok impulsa nakon upisa vrednosti brojanja.

* Napomena: Ovaj slučaj se ostvaruje prebacivanjem * Napomena: Ovaj slučaj se ostvaruje prebacivanjem

džampera u srednji položaj (GND) i vraćanjem na 5V.džampera u srednji položaj (GND) i vraćanjem na 5V.

Page 51: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

KKôdôd#include <AT898252.H>#include <AT898252.H>sbit Izlaz = P1^0; sbit Izlaz = P1^0; sbit Pin = P1^2; sbit Pin = P1^2; sbit GATE1_Pin = P1^4; sbit GATE1_Pin = P1^4; sbit GATE2_Pin = P1^5; sbit GATE2_Pin = P1^5; unsigned int k;unsigned int k;unsigned int l;unsigned int l;void main(void)void main(void){{

P1=1;P1=1; GATE1_Pin = 1;GATE1_Pin = 1;

GATE2_Pin = 1;GATE2_Pin = 1;// Inicijalizacija sistema// Inicijalizacija sistemaEA = 0; // GIE = 0EA = 0; // GIE = 0RCAP2H = 0xFF;RCAP2H = 0xFF; // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz RCAP2L = 0xFA;RCAP2L = 0xFA;T2CON &= 253;T2CON &= 253; // C/T2 treba da bude Clear// C/T2 treba da bude ClearT2MOD |= 2;T2MOD |= 2; // T2OE = 1;// T2OE = 1;//T2CON |= 4;//T2CON |= 4; // TR2 = Start Timer// TR2 = Start TimerTR2 = 1;TR2 = 1;

Page 52: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Nastavak kNastavak kôdôdaa

// Programiranje eksternog TAJMERA - 82c54, T1// Programiranje eksternog TAJMERA - 82c54, T1 u modu 2u modu 2 for(k=0; k<=7000; k++);for(k=0; k<=7000; k++);

//Timer 0 - deljenje sa 500//Timer 0 - deljenje sa 500P3 = 0x0F;P3 = 0x0F;P2 = 0x36;P2 = 0x36; //kontrolna rec//kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0xF4; //lsbP2 = 0xF4; //lsbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;P2 = 0x01;P2 = 0x01; //msb//msbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;for(l=0; l<=7000; l++);for(l=0; l<=7000; l++);//Timer 1//Timer 1P3 = 0x0F;P3 = 0x0F;P2 = 0x54; //kontrolna recP2 = 0x54; //kontrolna recP3 = 0x0B;P3 = 0x0B;P3 = 0x0F;P3 = 0x0F;

P2 = 0x03;P2 = 0x03; //lsb//lsbP3 = 0x09;P3 = 0x09;P3 = 0x0F;P3 = 0x0F; while(1)while(1){{

}}}}

Page 53: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Talasni obliciTalasni oblici

Page 54: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

MOD3: Generator pravougaonih impulsaMOD3: Generator pravougaonih impulsa

Sličan Modu 2, ali je izlaz povorka pravougaonih impulsa iste Sličan Modu 2, ali je izlaz povorka pravougaonih impulsa iste širine, i to samo u slučaju parne inicijalne vrednosti brojanja N. širine, i to samo u slučaju parne inicijalne vrednosti brojanja N. Ovo je periodičan režim rada i imamo pravougaone impulse sa Ovo je periodičan režim rada i imamo pravougaone impulse sa periodom od N Klok ciklusa. periodom od N Klok ciklusa.

Gate=1 dozvoljava brojanje, Gate=0 zabranjuje.Gate=1 dozvoljava brojanje, Gate=0 zabranjuje. Ako se Gate prebaci na logiAko se Gate prebaci na logičku nulu u toku izlaznog impulsa, čku nulu u toku izlaznog impulsa,

izlaz odmah prelazi u logičku nulu. Triger ponovo učita brojač izlaz odmah prelazi u logičku nulu. Triger ponovo učita brojač sa inicijalnom vrednošću na sledeći Klok impuls. **sa inicijalnom vrednošću na sledeći Klok impuls. **Nakon upisa Kontrolne reči i inicijalne vrednosti brojanja, Nakon upisa Kontrolne reči i inicijalne vrednosti brojanja, brojač će se učitati na sledeći Klok impuls.brojač će se učitati na sledeći Klok impuls.Imamo dva slučaja: parna i neparna vrednost brojanjaImamo dva slučaja: parna i neparna vrednost brojanjaParno N:Parno N:

Izlaz je inicijalno u stanju logičke jedinice. Vrednost brojanja Izlaz je inicijalno u stanju logičke jedinice. Vrednost brojanja se učita na jedan impuls Kloka i smanji za dva na sledeći Klok se učita na jedan impuls Kloka i smanji za dva na sledeći Klok impuls. Kada se odbroji Izlaz menja vrednost i brojač se impuls. Kada se odbroji Izlaz menja vrednost i brojač se ponovo učita sa inicijalnom vrednošću brojanja. Proces se ponovo učita sa inicijalnom vrednošću brojanja. Proces se ponavlja u beskonačnosti.ponavlja u beskonačnosti.

Page 55: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

MOD3: Generator pravougaonih impulsaMOD3: Generator pravougaonih impulsa - nastavak - nastavak

Neparno N:Neparno N: Izlaz je, inicijalno, u stanju logičke jedinice. Inicijalna Izlaz je, inicijalno, u stanju logičke jedinice. Inicijalna

vrednost minus jedan (paran broj) se učita na Klok impuls i vrednost minus jedan (paran broj) se učita na Klok impuls i smanji za dva na sledeći Klok impuls. Posle vremena od smanji za dva na sledeći Klok impuls. Posle vremena od jednog Klok impulsa nakon odbrojavanja tajmera, izlaz jednog Klok impulsa nakon odbrojavanja tajmera, izlaz prelazi u stanje logičke nule i brojač se ponovo učita sa prelazi u stanje logičke nule i brojač se ponovo učita sa inicijalnom vrednošću minus jedan. Zatim se novim Klok inicijalnom vrednošću minus jedan. Zatim se novim Klok impulsom vrednost brojanja umanji za dva. Kada se izvrši impulsom vrednost brojanja umanji za dva. Kada se izvrši brojanje, Izlaz ponovo prelazi u logičku jedinicu i brojač je brojanje, Izlaz ponovo prelazi u logičku jedinicu i brojač je ponovo učitan sa vrednošću brojanja minus jedan. Proces ponovo učitan sa vrednošću brojanja minus jedan. Proces se ponavlja u beskonačnosti. Izlaz će biti u stanju logičke se ponavlja u beskonačnosti. Izlaz će biti u stanju logičke jedinice (N+1)/2, i u stanju logičke nule (N-1)/2, od zadate jedinice (N+1)/2, i u stanju logičke nule (N-1)/2, od zadate vrednosti brojanja.vrednosti brojanja.

**** Napomena: Ovaj slucaj se ostvaruje prebacivanjem Napomena: Ovaj slucaj se ostvaruje prebacivanjem džampera u srednji položaj (GND) i vraćanjem na 5V.džampera u srednji položaj (GND) i vraćanjem na 5V.

Page 56: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

KKôdôd

#include <AT898252.H>#include <AT898252.H>sbit Izlaz = P1^0; sbit Izlaz = P1^0; sbit Pin = P1^2; sbit Pin = P1^2; sbit GATE1_Pin = P1^4; sbit GATE1_Pin = P1^4; sbit GATE2_Pin = P1^5; sbit GATE2_Pin = P1^5; unsigned int k;unsigned int k;unsigned int l;unsigned int l;void main(void)void main(void){{

P1=1;P1=1; GATE1_Pin = 1;GATE1_Pin = 1;

GATE2_Pin = 1;GATE2_Pin = 1; // Inicijalizacija sistema// Inicijalizacija sistemaEA = 0; // GIE = 0EA = 0; // GIE = 0RCAP2H = 0xFF;RCAP2H = 0xFF; // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz RCAP2L = 0xFA;RCAP2L = 0xFA;T2CON &= 253;T2CON &= 253; // C/T2 treba da bude Clear// C/T2 treba da bude Clear T2MOD |= 2;T2MOD |= 2; // T2OE = 1;// T2OE = 1;//T2CON |= 4;//T2CON |= 4; // TR2 = Start Timer// TR2 = Start TimerTR2 = 1; TR2 = 1;

Page 57: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Nastavak kNastavak kôdôdaa// Programiranje eksternog TAJMERA - 82c54, T0 i T1// Programiranje eksternog TAJMERA - 82c54, T0 i T1 u modu 3 u modu 3

for(k=0; k<=7000; k++);for(k=0; k<=7000; k++);//Timer 0 - deljenje sa 500//Timer 0 - deljenje sa 500P3 = 0x0F;P3 = 0x0F;P2 = 0x36;P2 = 0x36; //kontrolna rec //kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0xF4;P2 = 0xF4; //lsb //lsbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;P2 = 0x01;P2 = 0x01; //msb//msbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;

for(l=0; l<=7000; l++);for(l=0; l<=7000; l++);//Timer 1//Timer 1 - deljenje frekvencije od 1KHz sa 4- deljenje frekvencije od 1KHz sa 4P3 = 0x0F;P3 = 0x0F;P2 = 0x56;P2 = 0x56; //kontrolna rec//kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0x04; //lsbP2 = 0x04; //lsbP3 = 0x09;P3 = 0x09;P3 = 0x0F;P3 = 0x0F; while(1)while(1){{ }}

}}

Page 58: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Talasni obliciTalasni oblici

Page 59: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

MOD4: Softversko-trigerovani režim radaMOD4: Softversko-trigerovani režim rada

Izlaz će, inicijalno, biti u stanju logičke jedinice. Kada brojač Izlaz će, inicijalno, biti u stanju logičke jedinice. Kada brojač odbroji, Izlaz će otići u stanje logičke nule za vreme od odbroji, Izlaz će otići u stanje logičke nule za vreme od jednog Klok impulsa i zatim će ponovo otići u jedinicu. jednog Klok impulsa i zatim će ponovo otići u jedinicu. Brojanje počinje upisom vrednosti brojanja. Brojanje počinje upisom vrednosti brojanja. Gate=1 dozvoljava brojanje, Gate=0 zabranjuje i ne utiče Gate=1 dozvoljava brojanje, Gate=0 zabranjuje i ne utiče na Izlaz.na Izlaz.Nakon upisa Kontrolne reči i vrednosti za brojanje, brojač se Nakon upisa Kontrolne reči i vrednosti za brojanje, brojač se učitava na sledeći Klok impuls, koji ne smanjuje vrednost učitava na sledeći Klok impuls, koji ne smanjuje vrednost brojanja, i za vrednost brojanja N Izlaz ne ide u stanje brojanja, i za vrednost brojanja N Izlaz ne ide u stanje logičke jedinice sve dok ne prođe N+1 impulsa Kloka, od logičke jedinice sve dok ne prođe N+1 impulsa Kloka, od trenutka upisa vrednosti brojanjatrenutka upisa vrednosti brojanja

Page 60: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

KKôdôd #include <AT898252.H>#include <AT898252.H>sbit Izlaz = P1^0; sbit Izlaz = P1^0; sbit Pin = P1^2; sbit Pin = P1^2; sbit GATE1_Pin = P1^4; sbit GATE1_Pin = P1^4; sbit GATE2_Pin = P1^5; sbit GATE2_Pin = P1^5; unsigned int k;unsigned int k;unsigned int l;unsigned int l;void main(void)void main(void){{

P1=1;P1=1; GATE1_Pin = 1;GATE1_Pin = 1;

GATE2_Pin = 1;GATE2_Pin = 1;// Inicijalizacija sistema// Inicijalizacija sistemaEA = 0; // GIE = 0EA = 0; // GIE = 0RCAP2H = 0xFF;RCAP2H = 0xFF; // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500KHz // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500KHzRCAP2L = 0xFA;RCAP2L = 0xFA;T2CON &= 253;T2CON &= 253; // C/T2 treba da bude Clear// C/T2 treba da bude Clear T2MOD |= 2;T2MOD |= 2; // T2OE = 1;// T2OE = 1;//T2CON |= 4;//T2CON |= 4; // TR2 = Start Timer// TR2 = Start TimerTR2 = 1;TR2 = 1;

Page 61: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Nastavak kNastavak kôdôdaa// Programiranje eksternog TAJMERA - 82c54, T1 // Programiranje eksternog TAJMERA - 82c54, T1 u modu 4u modu 4

for(k=0; k<=7000; k++);for(k=0; k<=7000; k++);//Timer 0 - deljenje sa 500//Timer 0 - deljenje sa 500P3 = 0x0F;P3 = 0x0F;P2 = 0x36;P2 = 0x36; //kontrolna rec//kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0xF4;P2 = 0xF4; //lsb //lsbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;P2 = 0x01;P2 = 0x01; //msb //msbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;for(l=0; l<=7000; l++);for(l=0; l<=7000; l++);//Timer 1//Timer 1P3 = 0x0F;P3 = 0x0F;P2 = 0x58;P2 = 0x58; //kontrolna rec//kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0x03;P2 = 0x03; //lsb//lsbP3 = 0x09;P3 = 0x09;P3 = 0x0F;P3 = 0x0F; while(1)while(1){{

}}}}

Page 62: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Talasni obliciTalasni oblici

Page 63: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

MOD5: Hardversko-trigerovani reMOD5: Hardversko-trigerovani režim radažim rada Izlaz će biti, inicijalno, u stanju logičke jedinice. Brojanje Izlaz će biti, inicijalno, u stanju logičke jedinice. Brojanje

počinje rastućom ivicom gejta. Kada se izvrši brojanje, Izlaz počinje rastućom ivicom gejta. Kada se izvrši brojanje, Izlaz će preči u stanje logičke nule i ostati u tom stanju jedan će preči u stanje logičke nule i ostati u tom stanju jedan klok impuls, nakon čega se vraća u stanje logičke jedinice.klok impuls, nakon čega se vraća u stanje logičke jedinice.

Nakon upisa Kontrolne reči i inicijalne vrednosti brojanja, Nakon upisa Kontrolne reči i inicijalne vrednosti brojanja, brojač će biti učitan nakon Klok impulsa, kome prethodi brojač će biti učitan nakon Klok impulsa, kome prethodi trigerovanje gejta. Ovaj Klok impuls ne smanjuje vrednost trigerovanje gejta. Ovaj Klok impuls ne smanjuje vrednost brojanja, pa za inicijalnu vrednost brojanja N, Izlaz ne ide u brojanja, pa za inicijalnu vrednost brojanja N, Izlaz ne ide u stanje logičke nule sve dok ne prođe N+1 Klok impulsa stanje logičke nule sve dok ne prođe N+1 Klok impulsa posle trigerovanja. Sekvenca brojanja je retrigerabilna. Gejt posle trigerovanja. Sekvenca brojanja je retrigerabilna. Gejt ne utiče na izlaz.ne utiče na izlaz.

Trigerovanje se ostvaruje prebacivanjem džampera u Trigerovanje se ostvaruje prebacivanjem džampera u srednji položaj (GND) i vraćanjem na 5Vsrednji položaj (GND) i vraćanjem na 5V

Page 64: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

KKôdôd#include <AT898252.H>#include <AT898252.H>sbit Izlaz = P1^0; sbit Izlaz = P1^0; sbit Pin = P1^2; sbit Pin = P1^2; sbit GATE1_Pin = P1^4; sbit GATE1_Pin = P1^4; sbit GATE2_Pin = P1^5; sbit GATE2_Pin = P1^5; unsigned int k;unsigned int k;unsigned int l;unsigned int l;void main(void)void main(void){{

P1=1;P1=1;// Inicijalizacija sistema// Inicijalizacija sistemaEA = 0; // GIE = 0EA = 0; // GIE = 0RCAP2H = 0xFF;RCAP2H = 0xFF; // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 // 0xFFFA za 12Mhz XTAL; na PIN-u 1.0 500Khz 500Khz RCAP2L = 0xFA;RCAP2L = 0xFA;T2CON &= 253;T2CON &= 253;// C/T2 treba da bude Clear// C/T2 treba da bude Clear T2MOD |= 2;T2MOD |= 2; // T2OE = 1;// T2OE = 1;//T2CON |= 4;//T2CON |= 4; // TR2 = Start Timer// TR2 = Start TimerTR2 = 1;TR2 = 1;

Page 65: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Nastavak kNastavak kôdôdaa// Programiranje eksternog TAJMERA - 82c54, T1 u modu 5// Programiranje eksternog TAJMERA - 82c54, T1 u modu 5

for(k=0; k<=7000; k++);for(k=0; k<=7000; k++); //Timer 0 - deljenje sa 500//Timer 0 - deljenje sa 500 P3 = 0x0F;P3 = 0x0F;

P2 = 0x36;P2 = 0x36; //kontrolna rec//kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0xF4; //lsbP2 = 0xF4; //lsbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;P2 = 0x01; //msbP2 = 0x01; //msbP3 = 0x08;P3 = 0x08;P3 = 0x0F;P3 = 0x0F;for(l=0; l<=7000; l++);for(l=0; l<=7000; l++);//Timer 1//Timer 1P3 = 0x0F;P3 = 0x0F;P2 = 0x5A;P2 = 0x5A; //kontrolna rec //kontrolna recP3 = 0x0B;P3 = 0x0B;

P3 = 0x0F;P3 = 0x0F;P2 = 0x03;P2 = 0x03; //lsb //lsbP3 = 0x09;P3 = 0x09;P3 = 0x0F;P3 = 0x0F; while(1)while(1){{}}

}}

Page 66: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Talasni obliciTalasni oblici

Page 67: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Zadatak za studenteZadatak za studente

Proveriti ispravnost rada Tajmera 82c54 u svim MOD-ovima Proveriti ispravnost rada Tajmera 82c54 u svim MOD-ovima radarada

Page 68: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Mod 0Mod 0

Pokrenuti sa CD-a iz direktorijuma, Kod/Timer-82c54/Mod Pokrenuti sa CD-a iz direktorijuma, Kod/Timer-82c54/Mod 0/Timer 1 fajl 0/Timer 1 fajl Timer1_Mod 0.Uv2Timer1_Mod 0.Uv2, , ((µµVision Project FileVision Project File))

Page 69: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Testiranje Tajmera u Modu 0Testiranje Tajmera u Modu 0

Upisati, umesto postojeće, novu vrednost za brojanje, koja Upisati, umesto postojeće, novu vrednost za brojanje, koja je zadata u vežbije zadata u vežbi

Potrebno je, u redu 53Potrebno je, u redu 53,, umesto vrednosti 4 na portu P2 umesto vrednosti 4 na portu P2 (P2 (P2 == 0x040x04;; //LSB vrednosti brojanja) upisati novu vrednost, i sa //LSB vrednosti brojanja) upisati novu vrednost, i sa Project/Rebuild Project/Rebuild aall ll ttarget arget ffilesiles iizvršiti kompajliranje, nakon zvršiti kompajliranje, nakon čega se kreira HEX fajl čega se kreira HEX fajl Timer1_Mod 0.Timer1_Mod 0.hex, hex, kojim će se kojim će se mikrokontroler isprogramiratimikrokontroler isprogramirati

Page 70: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Testiranje Tajmera u Modu 0 - nastavakTestiranje Tajmera u Modu 0 - nastavak Osnovni prozor Keil-a, gde se vrši, potrebna, promena Osnovni prozor Keil-a, gde se vrši, potrebna, promena

vrednosti brojanja tajmeravrednosti brojanja tajmera

Page 71: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Testiranje Tajmera u Modu 0 - nastavakTestiranje Tajmera u Modu 0 - nastavak

Posmatrati pomoPosmatrati pomoću osciloskopa talasne oblike na Fću osciloskopa talasne oblike na F_OUT0 i _OUT0 i F_OUT1, F_OUT1, na pločici sa tana pločici sa tajjmerom 82c54 merom 82c54 i uoi uočiti odnos čiti odnos frekvencijafrekvencija

Skicirati te talasne oblikeSkicirati te talasne oblike

Page 72: Šta je mikrokontroler ?

Tajmer 82c54Tajmer 82c54

Testiranje Tajmera 82c54 u ostalim modovima radaTestiranje Tajmera 82c54 u ostalim modovima rada

Ostali MOD-ovi tajmera 1, i 2 se proveravaju na isti način Treba otvoriti potreban direktorijum i učitati fajl čije ime

odgovara tajmeru i MOD-u u kome se taj tajmer testira