| |
|
| Autor: Zoran Ristić . | |
|
|
| Brojač
impulsa upravljan PIC-om
Brojači impulsa su sveopšte prisutni u svakodnevnom životu i teško je u ovom trenutku zamisliti da će jednoga dana prestati njihova upotreba. Skoro svi muzeji vrše brojanje posetilaca, nije redak slučaj da to rade i pozorišta, a u nekim gradskim sredinama autobuski prevoznici broje svoje putnike elektronskim putem. U industriji svaka kontrola proizvodnje sadrži aspekt brojanja artikala, a time se često vrši i kontrola potrošnje robe. Na stadionima pokazatelj kvaliteta utakmice je broj posetilaca. Postoje slučajevi kada se ne broje fizički opipljive veličine, kao što je na primer brojanje impulsa u telefonskim centralama, merenje vremena i slično. Brojač impulsa se grubo može svesti na tri bloka. Prvi blok je davač impulsa. Druga celina je sam elektronski sklop koji vrši brojanje, pamti stanje i priprema rezultat za prikazivanje. Konačno, treći deo predstavlja konvertor električne veličine u stanje koje je dostupno našim čulima. Najčešće su to optički pokazivači. Razmotrićemo jednu varijantu brojača impulsa, čija jednostavnost zadivljuje.
Ulaz brojača su naponski pravougaoni impulsi čija donja ivica ne pada ispod 0V, a gornja ne prelazi 5V (TTL). Odnos trajanje/pauza ovih impulsa nije bitan, ali zbog tačnosti brojanja bitno je da pauza ili visoko stanje ne traju kraće od 50us. Povorka impulsa se dovodi u brojač, memoriju i konvertor u sedamsegmenti kod. Sve ove funkcije objedinjene su u PIC-u 16F84 (Microchip). Rastuća ivica impulsa aktivira prekid (interrupt) u mikrokontroleru. Tokom prekidne rutine interni registar jedinica 'one' se poveća za jedan i ispituje se da li je vrednost u registru jedinica dostigla vrednost 10. Ako jeste, u registar 'one' upisuje se nula, a sadržaj registra desetica 'ten' poveća se za 1. Kada vrednost broja u registru desetica dostigne 10, u registar 'ten' upisuje se nula nakon čega brojanje kreće od početka (procedura 'next'). Tokom izvršavanja glavnog programa vrednosti jedinica i desetica naizmenično se prikazuju na sedmosegmentnom displeju sa zajedničkom katodom. Ovaj proces naizmeničnog korišćenja jednog porta kontrolera se naziva multipleksiranje. U našem slučaju PORTB služi za prikaz cifre, a PORTA aktivira pokazivače. Sedmosegmentni LED pokazivači su vezani paralelno jedan za drugi osim zajedničkih katoda. Katoda pokazivača desetica (gnd1) je preko tranzistora vezana za nožicu br. 18, a katoda gnd2 preko drugog tranzistora za nožicu br. 17. U kratkim vremenskim intervalima PIC naizmenično gasi jedan pokazivač i uključuje drugi. Kada se ovo brzo radi stiče se utisak da oba pokazivača rade istovremeno. Smanjivanje brzine multipleksiranja prvo izaziva utisak da pokazivači slabije svetle, a zatim se vidi treperenje pokazivača. Takt mikrokontrolera se kontroliše kristalom i veoma je visok (1MHz). Za istu namenu može se koristiti i RC oscilator, ali treba obratiti pažnju da se takt isuviše ne uspori. Tranzistori su neophodni, jer svaki izlaz PIC-a po specifikaciji proizvođača može maksimalno da primi 25mA. Kako LED dioda može da povuče do 50 mA i s obzirom da u najgorem slučaju svetle sve diode (cifra 8), sledi da kroz zajedničku katodu može da protiče struja jačine do 350mA. Ova struja bi dovela do uništavanja izlaza PIC-a. Stoga se koriste tranzistori koji vuku malu struju sa izlaza PIC-a, a dozvoljavaju veliku struju kroz katodu pokazivača, npr. BC182 ili 2N2222. Resetovanje brojača se vrši spajanjem pina br.4 na masu čime se resetuje PIC, t.j. počinje izvršavanje programa od nulte instrukcije (org 0). Ovaj način resetovanja je moguć u slučaju da se koriste četiri LED pokazivača kada nema slobodnih nožica. Zaustavljanje brojača se vrši jednostavnim prekidanjem veze između davača impulsa i nožice br.13. Koristiti poseban ulaz PIC-a za zaustavljanje brojača je zaista bespotrebno trošenje resursa i komplikovanje programa. Osim brojeva sedmosegmentni pokazivači mogu pokazivati i neka slova: A, C, E, F, H, J, L, N, P, i U. Genijalnost domaćih (?) inžinjera me je oduševila kada sam u jednom butiku u gradu video da na pokazivaču piše EPOP!
Sugestije za deo koda označen crvenom bojom: Mikan
|
|
C o p y r i g h t 1998 mikroElektronika. All Right Reserved. Za sva pitanja obratite se redakciji |