Professional Documents
Culture Documents
Upravljanje D-A Konvertora Mikrokontrolerom
Upravljanje D-A Konvertora Mikrokontrolerom
Upravljanje D-A Konvertora Mikrokontrolerom
1.2 Mikroprocesori
1.3 Mikrokontroleri
1.6 Mikroracunar
Centralna procesorska jedinica (CPU) – srce sistema i moze biti realizovana kao
4, 8 ili16-bitna procesorska jedinica.
Memorija – moze biti RAM, ROM, EPROM, EEPROM i FLASH tipa ili bilo koja
njihova kombinacija. Memorija se koristiti za cuvanje programa i podataka.
Kao sto smo vec naglasili mikrokontroler PIC16F877 poseduje tipcnu RISC
arhitekturu. Arhitektura poseduje odvojene magistrale za podatke i programski
kôd. Obim podataka je 8-bitni, dok je programski kôd 14-bitni. Moguce je
protocno izvrsenje (pipelining). Sve insrukcije su istog obima (osim instrukcija
grananja) i izvsavaju se za cetiri taktna intervala. Dakle, ako koristimo oscilator
npr. od 20 MHz dobijamo da ciklus instrukcuije traje 200 ns. Sa blok dijagrama
(slika 1.5) mogu se uociti sledeci gradivni blokovi:
· Flash programska memorija – 8 kiloreci obima 14 bita
· RAM (File Registers) – 368 bajtova
· Aritmetičko-logička jedinica (ALU)
· Akumulator (Working Register)
· Hardverski magacin (Stack) organizivan u 8 nivoa
· EEPROM memorija podataka obima 256 bajtova
· Razne periferne jedinice (portovi, tajmeri, A/D konvertor, USART,...)
Sl.1.5 Blok dijagram mikrokontrolera PIC16F877
Kod vremenski kriticnih aplikacija treba ugradjivati kvarcni oscilator ili keramicki
rezonator. Vrednosti kondenzatora C1 i C2 (slika 1.8), treba da su jednake.
Tabela 1.1
LP
32 kHz 68-100pF - Kristal
200 kHz 15-33pF - Kristal
Tabela 1.2
XT
100 kHz 100-150pF - Kristal
455 kHz 47-100pF Rezonator -
2.0 MHz 15-33pF Rezonator Kristal
4.0 MHz 15-33pF Rezonator Kristal
Tabela 1.3
HS
4.0 MHz 15-33pF - Kristal
8.0 MHz 15-33pF Rezonator Kristal
10.0MHz 15-33pF Rezonator Kristal
Najcesce se koristi spoljni kristalni oscilator (XT) radne frekvencije 4MHz. Bice
prikazano kako se spaja kristalni oscilator sa mikrokontrolerom (slika 1.10) i kako
izgleda oblik signala generisan iz oscilatora u trenutku ukljucenja (slika 1.11).
Oscilatoru treba neko vreme ΔT da se stabilizira na potrebnu frekvenciju i
amplitudu
1.14 Reset
Kolo ce generisati Reset impuls kada napon bude ispod (Vz + 0.7) V
Vz – napon na Zener diodi.
Sl.1.16. Kolo za BROWN-OUT reset Varijanta 2
R1
Vdd * < 0.7 V
R2 + R1
Tabela 1.4
Power-up
Konfiguracija PWRT omogucen PWRT Budjenje iz
oscilatora onemogucen SLEEP rezima
rada
XT, HS, LP 72 ms + 1024 1024 Tosc 1024 Tosc
Tosc
RC 72 ms - -
Stanja na kojima se postavljaju interni registri CPU-a nakon Reseta zavisi od vrste
Reseta i rezima rada u kojima se nalazi procesor (Sleep i normalni).
Stanje nekih registara ostaje nedifinisano, neki zadrzavaju svoje stanje, a ostali se
postavljaju u unapred definisana stanja (vidi Tabele 1.5 i 1.6).
Legenda:
x – Nepoznato stanje
u – Nepromenjeno stanje
q – Stanje zavisi od uslova
- - Ne postoji fizicki cita se kao 0
1.16 Prekidi
Port A
Port A je 6-to bitni bidirekcioni port i sadrzi pinove od RA0 do RA5. TRISA je
direkcioni registar koji odredjuje smer pinova na portu. Ako postavimo TRIS na 1
pin je ulazni, u suprotnom pin je izlazni. Npr. ako je TRISA=0b111111 ceo port A
je ulazni, a ako je TRISA=0b000000, ceo port A je izlazni. Moguce je podeliti
port A, tako da, na primer, prva 2 bita budu ulazna,a ostala 4 izlazna
(TRISA=0b110000).
Na slikama 1.19 i 1.20 bice prikazan blok dijagram porta A:
Port B je 8-mo bitni bidirekcioni port. Svi pinovi imaju odgovarajuce bitove u
TRISB registru kojim moze da se pinovi konfigurisu kao izlazni ili kao ulazni. ‘1’
u nekom bitu u TRISB registru stavlja odgovarajuci pin u stanje visoke impedanse
i on radi kao ulazni pin. ‘0’ u TRISB registru prosledjuje sadrzaj bita iz izlaznog
(latch) registra na pin i on radi kao izlazni.
Svi pinovi u PORTB imaju pull-up otpornike. Ovi otpornici se mogu ukljuciti
jednim kontrolnim bitom. To se radi stavljanjem RBPU' bita na ‘0’. Pull-up
otpornici se automatski iskljucuju kad se pin konfigurise kao izlazni. Otpornici su
iskljuceni kod Power-on-reset-a.
Cetri pina na PORTB (RB7-RB4) imaju mogucnost generisanja interapta. Samo
pinovi definisani kao ulazni mogu prouzrokovati interapt. Vrednost na pinovima
se poredi sa starom vrednoscu uhvacenoj kod zadnjeg citanja porta B. Nad ovim
vrednostima se vrsi OR operacija da bi se generisao interapt na promenu stanaja
na PORTB. Ovaj interapt moze probuditi kontroler iz SLEEP rezim rada. Korisnik
moze u rutini za obradu prekida ponistiti prekid sledecim postupcima:
· Citanjem ili pisanjem u PORTB. Ovo ce ukloniti neslaganje na portu i
uslov za interapt.
· Resetovanjem flag bita RBIF.
Neslaganje na portu B ce nastaviti da setuje RBIF. Citanje PORTB-a ce prekinuti
neslaganje i uslov za interapt i omoguciti resetovanje bita RBIF
Kombinacija interapta na promennu stanja PORTB i pull up otpornika se moze
iskoristiti za jednostavan interfejs za tastaturu.
Da bi promena na U/I pinu bila prepoznata sirina impusa mora da bude najmanje
koliko i jedan masinski ciklus (4 * Tosc).
Na slikama 1.22 i 1.23 prikazana je struktura PORTB.
Sl.1.22 Struktura pinova od RB0 do RB3 Sl.1.23 Struktura pinova od RB4 do RB7
Na slici 1.24 su prikazane tabele sa funkcijama pojedinih pinova i registara koji
se koriste za konfigurisanje porta B.
Pin RB0 ima mogucnost da izazove prekid mikrokontrolera. Ako je ovaj interapt
omogucen (setovan bit 4 (INTE) u INTCON registru) i na RB0/INT pinu se pojavi
odgovarajuca ivica (definisana INTEDG bitom OPTION registra) nastupice
interapt. Na kraju interapt rutine potrebno je u programu resetovati INTF bit u
INTCON registru, kako bi naredni interapt bio moguc.
Port C
Port C je 8-mo bitni bidirekcioni port. Ovaj port je poseban sto na pinovima RC6 i
RC7 ima ugradjen USART modul koji sluzi za serisku komunikaciju (npr. sa
racunarom). Prilikom koriscenja modula za serisku komunikaciju potrebno je
softverski konfigurisati pinove RC6 i RC7 tako da budu u funkciji USART
modula. Na slikama 1.25 i 1.26 su prikazane blok seme PORTC, a funkcionalna
tabela registara koji se koriste za konfigurisanje samog porta data je na slici 1.27.
Sl.1.25. Struktura pinova od RC0 do RC2 Sl.1.26.Struktura pinova od RC3 i
i od RC5 do RC7 RC4
Sl.1.27 Tabela registara koji sluze za konfigurisanje PORTC
Port D
Port D je 8-mo bitni bidirekcioni port. Ovaj port se moze konfigurisati kao 8-mo bitni
paralelni mikroprocesorski port (parallel slave port-PSP), podesavanjem
konfigurisuceg bita PSPMOTE (TRISC<4>). U tom rezimu rada ulazni bafer je TTL
tipa. Na slikama 1.28 i 1.29 je prikazana blok sema PORTD i funkcionalna tabela
registara koji se koriste za konfigurisanje samog porta.
Port E
Port E je sirine 3 bita.Ima mogucnost A/D konverzije. Svaki pin porta E moze da se
konfigurise softverski kao ulazni ili izlazni. Ulazni bafer je Schmitt Trigger tipa.
Pinovi se mogu konfigurisati kao digitalni ili analogni,kao i u slucaju porta A, sto je
vec pomenuto. Na slikama 1.30 i 1.31 prikazana je strukturna blok sema PORTE i
tabelarni prikaz registara koji sluze za konfigurisanje.
Kada je rec o registrima jezgra ne treba zaboraviti par FSR (File Select Register) i
INDF (Indirect File), koji sluze za indirektno adresiranje memorije podataka. Bilo
koja instrukcija koja se obraca INDF registru ustvari indirektno pristupa onoj lokaciji
internog RAM-a cija je adresa trenutno u registru FSR.
Sl.1.36 Mapa registra PIC16F877
Interni EEPROM za podatke
1.21 Tajmeri
PWM_perid = [(PR2)+1]*4*Tosc*TMR2_preskajler
Vreme ispune (Duty Cycle Time) menja se upisom u registar CCPR1L i dva bita
registra CCP1CON (biti 5 i 4). Time je omogucena maksimalno 10-bitna rezolucija
PWM izlaza. Formula za proracun je:
PWM_Duty_Cycle = (CCPR1L:CCP1CON<5:4>)*Tosc*TMR2_preskajler
VPS
V LSB =
2n - 1
medjutim, zbog tolerancije koriscenih komponenti, promena izlaznog napona ΔV,
moze biti veca ili manja od VLSB, tako da je diferncijalna linearnost DL definisana
kao:
DV - VLSB
DL =
VLSB
i izrazava se u frakcijama od VLSB, odnosno, od LSB. Da bi izlazni napon digitalno-
analognog konvertora bio monotono rastuca funkcija kodovane brojne vrednosti,
diferencijalna linearnost mora da bude bolja od ±1/2 LSB.
Pored linearnosti, vazna karakteristika digitalno-analognog konvertora je i
stabilnost. Stabilnost je funkcija temperature i vremena. Temperaturna stabilnost se
izrazava u frakcijama LSM/ºC, ili ppm/ ºC, odnosi se na stabilnost pojacanja,
linearnosti i ofseta. Dugorocna stbilnost (long term stability) se odnosi na iste
parametre i najcesce se izrazava u ppm/god.
Dinamicke karakteristike digitalno-analognog konvertora definisu vreme za
koje, nakon promene ulazne informacije, izlazni napon dostigne zadatu vrednost. Ovo
vreme se naziva vreme postavljanja tst (settling time) i definise se, ili za maksimalnu
promenu (od 0 do Vps), ili za promenu ulazne informacije za jedan LSB. Vreme
postavljanja digitalno-analognog konvertora se racuna od trenutka zadavanja nove
digitalne vrednosti, do trenutka kada se izlazni napon stabilisao na zadatu vrednost
±1/2 LSB. Umesto vremena postavljanja, cesto se definise vreme prekidanja tsw
(switching time) digitalno-analognog konvertora. Vreme prekidanja je vreme od
trenutka zadavanja digitalnog kôda do trenutka kada Viz dostigne 50% zadate
vrednosti.
Karakteristicno za dinamicku karakteristiku prenosa digitalno-analognog
konvertora je pojava glica na izlaznom naponu prilikom promene ulaznog koda za 1
LSB. Do pojave glica dolazi zbog razlicite brzine prekidanja analognih prekidaca u
konvertoru. Ako je, na primer, prekidac bita najvece tezine brzi od ostalih prekidaca u
mrezi, nakon stanja 01...111,umesto stanja 10...000, kratkotrajno ce postojati
stanje11...111, sto generise maksimalni napon,da bi, kad se ostali prekidaci iskljuce,
napon pao na zadatu vrednost.
Do pojave negativnog glica ce doci ako je, na primer, prekidac MSB sporiji od
ostalih prekidaca. Korektno specificiranje glica bi zahtevalo definisanje maksimalnog
trajanja i maksimalne amplitude glica, medjutim, proizvodjaci najcesce definisu samo
vreme postavljanja u koje je ukljuceno i trajanje glica. Glicevi se javljaju uvek kada
vise od jednog prekidaca menja stanje. Po pravilu su glicevi izrazeniji kada se menja
bit vece tezine, a najveci se javlja kada se menja MSB.
Ako je, na primer, samo prekidac Pn-1 prikljucen na referetni napon, kroz
granu Pn-1-An-1 teci ce struja In-1=VREF/3R, kroz grane An-1-M i An-1-An-2 struja ce biti
In-1/2. ako je prikljucen samo prekidac Pn-2, struja In-2 se u cvoru An-2 deli na dve
jednake komponente intenziteta In-2/2. Komponente struje koja tece kroz granu An-2-
An-1 se u cvoru An-1 ponovo deli na dve jednake komponente intenziteta In-2/4, tako da
kroz granu An-1-M kao posledica ukljucivanja prekidaca Pn-2 protice struja In-2/4.
Slicnim razmatranjem se moze pokazati da ce ukljucivanjem narednog prekidaca Pn-3,
struja I u grani An-1-M biti In-3/8, odnosno, ukljucivanjem svakog sledeceg prekidaca
generise upola manju struju u grani An-1-M.
Ako se primeni zakon superpozicije, struja I kroz granu An-1-m ima vrednost
× (2 n -1 Qn -1 + 2 n -2 Qn -2 + × × × + 2 2 Q2 + 21 Q1 + 2 0 Q0 )
VREF 1
I= ×
6 R 2 n -1
gde Qi=1 oznacava da je i-ti prekidac prikljucen na referetni napon, Qi=0, da je
prikljucen na masu.
Ako se tacka M, umesto na masu, prikljuci na virtuelnu masu operacionog
pojacavaca, a upravljacki signali prekidaca na izlaz stacionarnog registra, dobija se
digitalno-analogni konvertor sa lestvicastom otpornom mrezom.
3.Realizacija sistema
Na slici 3.1 prikazana je blok sema sistema. Srce sistema je mikrokontroler
firme Microchip PIC16F877.
Mikrokontroler, kao centralni deo sistema ima ulogu da vrsi kontrolu ostalih blokaova
sistema (blok zakomunikaciju sa racunarom, blok za analogno-digitalnu konverziju).
Mikrokontroler je isprogramiram da generise na portu D sekvence za analogno-ditalni
konvertor, tako da na izlazu konvertora imamo tri potrebna talasna oblika. Druga
uloga mikrokontrolera je da preko RS232 interfejsa posalje informacije racunaru.
Prvi talasni oblik koji treba de se generise je prikazan na slici 3.2 Sastoji se od
256 nivoa, koji se medjusobno razlikuju za LSB. Na ovaj nacin dobija se talasni oblik
koji je vrlo slican trouglastom talasnom obliku. Vreme trajanja stabilnog nivoa na
izlazu, za odredjenu sekvencu na portu D mikrokontrolera, zavisi od stanja prekidaca
4. Ako je prekidac ukljuven vreme strajanja stabilnog nivoa je 4 mikrosekunde, a ako
je iskljuce trajanje je 2 milisekunde. Ostala tri prekidaca sluze za izbor talasnog oblika
na izlazu analogno digitalnog konvertora. Ako je ukljucen prekidac 3, a prekidaci 2 i
1 iskljuceni generise se signal 3, ili ako je ukljucen prekidac 2, a prekidaci 1 i 3
iskljuceni generise se talasni oblik broj tri. Za bilo koju drugu kombinaciju prekidaca
generisemo talasni oblik broj jedan. Ovo ce biti mnogo jasnije iz samog listinga
programa mikrokontrolera, koji ce biti prikazan i obljasnjen u nastavku.
Sl: 3.2 Dve priode talasnog oblika 1
Talasni oblik broj dva prikazan je na slici 3.3. Ovaj talasni oblik se generise
tako sto u 256 sukcesivnih vrenmenskih intervala na portu D postavljamo vrednosti
redom od 0x00 do 0xFF. Ovaj talasni oblik je vlrlo slicac testerastom talasnom obliku.
Talasni oblik broj tri prikazan je na slici 3.4. Ovaj talasni oblik je slican
talasnom obliku broj dva, stom razlikom sto je dodata pauza izmedju periode.Nacin
sinteze je slican sintezi talasnog oblika broj dva, stom razlikom sto je dodat kod koji
generise pauzu trajanja 256 vremenskih intervala od 4 ili 2 milisekunde, sto je
odredjeno stanjem prekidaca 4. Sve ovo ce biti jasnije kasnije kada budemo
kometarisali kôd mikrokontrolera.
Na slici 3.5. prikazana je sema sistema ciji glavni deo zauzima mikrokontroler
i prateci elementi, koji sluze za njgov ispravan rad. Kao sto je vec receno, ovde
koriscen Microchip-ov mikrokontroler PIC16F877, i on je opisan u pethodnim
poglavljiva, tako da ovde nece biti reci o njemu. Pored mikrokontrolera, u
neposrednoj njegovoj okolini uocavamo taster za reset (oznacen nasemi sa S2),diodu
D3, koja ima ulogu u ICSP programiranja. Otpornik R2 i kondezator C4 imaju ilogu
NF filtra, tako da slucajne VF promene ,koje bi mogle da se pojave na pinu MCLR i
nepotrebno resetovale mikrokontroler, budu eliminisane. Pored ovih elemenata nalaze
se jos i kvarcni oscilator na 10MHz sa dva prateca kondezatora od 22pF. Kako je
kvarcni oscilator Y1 sa frekfencijom od 10MHz, nas mikrokontroler ima vreme
izvrsenja masinskog ciklusa 400ns. Ovde se nalazi i konektor J2 koji sluzi za
povezivanje sistema sa programatorom.
3.2. Napajanje
3.4. Prekidaci
Kako je na izlazu bilo potrebno dobiti tri talasna oblika, koji mogu da imaju
jednu od dve razlicite frekfencije, bilo je neophodno uvesti prekidace. Prekidaci
korisceni u ovom sistemu su DIP prekidaci (DIP-4). Povezani su na port B i
isprogramirani su tako, da od njihovog stanja zavisi talasni oblik na izlazu. O nacinu
podesavanjaprekidaca bilo je reci u prethodnom delu (kada su opisani talasni oblici),
tako da se sada nece biti reci o tome.
Sl: 3.5 Sema sistema u programskom paketu PROTEL 99SE
3.5. Digitalno-analogni konvertor
Kao sto je vec u uvodu receno prvobitna uloga ovog sistama je bila bezicna
komunikacija. Predvidjeno je bilo da se komunikacija obavlja pomocu cipa RXQ1.
Medjutim, kako je doslo do izmene u trenutku kada je sistem za bezicnu
komunikaciju vec bio zavrsen, reseno je da se promeni softver mikrokontrolera i uz
minimalne hardverske izmene realizuje generator funkcije. Zog toga je na glavnoj
plocicici ostale neke komponente koje nisu potrebne generatoru funkcija. Ovde se pre
svega misli na indikatore sa LE-diodama i ostavljenom slobodnom mestu za cip
RXQ1.
U ovom delu bice prizan izgled stampanih plocica koje su koriscene za razvoj
sistema. Sve plocice su projektovane u programskom paketu „PROTEL 99SE“. Na
slici 3.7 prikazana je plocica glavnog dela sistema. Na njoj se jasno vidi mesto gde se
nalazi mikrokontroler, kao i slobodno mesto koje je bilo predvidjeno za cip RXQ1.
Na slikama 3.11 i 3.12 prikazan je fizicki izgled stampane plocice trafoa i raspored
elemenata na plocici.
4.SOFTVER
Za rad miktrokontrolera napisan je poseban softver u programskom jeziku C.
Za razvoj sistema koristili smo pozanti kompajler HI-TECH. Ovaj kompajler spada u
profesionalne alate za razvoj softvera mikrontolera. Njegova osnovna karakteristika je
ta sto generise vrlo efikasan kôd, nema ugradjene biblioteke za rad sa periferijama,
nema IDE okruzenje. Sama cinjenica da nema ugradjene biblioteke za rad sa
periferijama zahteva odlicho pozanavane samog mikrokontrolera, periferija, ali i
digitalne i impulsne elekronike. S druge strane ovo omogucava bolju kontrolau
programa, jer sve bibliote pise sam programer u toku razvijanja sistema. Pored ovog
kompajlera postoje i CCS, MicroC, MicroBasic...
Program koji upravlja radom mikrokontrolera sastoji se iz tri celine:
1. main rutine u kojoj se nalazi beskonatna petlja i u kojoj se pozivaju
potprogrami za generisanje talasnih oblika
2. interrupt rutine koja se izvrsava na svako prekoracenje TIMER-a 0, i u kojoj
se vrsi obrada tastera
3. potprograma za generisanje potrebnih talasnih obloka
Listing glavog programa sa detaljnim komentarom je dat u nastavku:
#include <pic.h>
#include "delay.c" //ucitavamo rutinu koja unosi kasnjenje
#include "rs232.c" //ucitavamo rutinu koja omogucava RS232 komunikaciju
__CONFIG(LVPDIS&HS&PWRTEN&WDTDIS&DEBUGDIS); //osnovna podesavanja
//mikrokontrolera
//deklarisemo promenjive
unsigned char vreme,h,f,d,s,o,p,r,funkcija,t;
int i,j,k,l,q;
void main(void)
{
GIE=0; //iskljucujemo sve interrupt-e
rs232_init(); //inicijalizuje RS232 interfejs
TRISC=0x00; //tris c je izlazni
PORTC=0x00; //port c je postavljen na logicku nulu
TRISA=0x00; //tris a je izlazni
PORTA=0x00; // port a je postavljen na logicku nulu
TRISE=0x00; //tris e je izlazni
PORTE=0x00; // port e je postavljen na logicku nulu
TRISB=0x1F; //tris b je i ulazni i izlazni
PORTB=0x00; // port b je postavljen na logicku nulu
TRISD=0x00; //tris d je izlazni
PORTD=0x00; // na poertd prikljucujemo DAC
OPTION=0b11000111; // iskljucujemo pull-up otpornike, dodeljujemo
//unutrasnji klok timer-u 0, i preskajler je 1/256, iterrupt na 102.2us
ADCON1=0b1100111; // svi pinovi su digitalni
T0IE=1; //omogucujemo interrupt na timer 0
funkcija=1; //automatski se generise prvi talasni oblik
t=2; //pocetna perioda je 2 milisekunda
le=1; //pin LE je stalno na logicku nulu
oe=0; //pin OE je stalno na logicku 0;
for (f=0;f<43;f++)
{
RS232_putch(maska0[f]);
}
RS232_putch(10);
RS232_putch(13);
for(d=0;d<43;d++)
{
RS232_putch(maska1[d]);
}
RS232_putch(10);
RS232_putch(13);
for(s=0;s<43;s++)
{
RS232_putch(maska2[s]);
}
RS232_putch(10);
RS232_putch(13);
for(l=0;l<43;l++)
{
RS232_putch(maska3[l]);
}
RS232_putch(10);
RS232_putch(13);
for(o=0;o<43;o++)
{
RS232_putch(maska5[o]);
}
RS232_putch(10);
RS232_putch(13);
for(p=0;p<43;p++)
{
RS232_putch(maska6[p]);
}
RS232_putch(10);
RS232_putch(13);
for(r=0;r<43;r++)
{
RS232_putch(maska7[r]);
}
RS232_putch(10);
RS232_putch(13);
// slanje stringa
void RS232_putst(register const char *str)
{
while((*str)!=0)
{
RS232_putch(*str);
if (*str==13) RS232_putch(10);
if (*str==10) RS232_putch(13);
str++;
}
}
// *-----------------------------------------
// * Konverzija decimalnih brojeva u string
// u opsegu od 0..99 za RS232 komunikaciju
// *---------------------------------------- */
void RS232_dec2str2(unsigned int x)
{
unsigned int y;
if (x<100)
{
y=x/10;RS232_putch(y+0x30);x-=(y*10);
RS232_putch(x+0x30);
}
else RS232_putst("Err");
}
void rs232_init(void)
{
// SERIAL PORT SETUP
SPBRG = DIVIDER;
BRGH = HIGH_SPEED; //data rate for sending
SYNC = 0; //asynchronous
SPEN = 1; //enable serial port pins
CREN = 1; //enable reception
SREN = 0; //no effect
TXIE = 0; //disable tx interrupts
RCIE = 0; //disable rx interrupts
TX9 = 0; //8-bit transmission
RX9 = 0; //8-bit reception
TXEN = 0; //reset transmitter
TXEN = 1; //enable the transmitter
}
#include "delay.h"
void
DelayMs(unsigned char cnt)
{
#if XTAL_FREQ <= 2MHZ
do {
DelayUs(996);
} while(--cnt);
#endif
void
DelaySec(char sec)
{
char loop;
for(loop=0;loop<=sec*4;loop++)
{
DelayMs(250);
}
}
Na slikama 5.1 i 5.2 prikazana je blok sema i struktura kola 74hc373. Ovo
kolo je D lec kolo sa trostatickim izlazom. Pinovi OE i LE sluze za kontolu leca i
trostatickog izlaza.
Slika 5.3 prikazuje tabeli istinitosti kola 74hc373, dok slika 5.4 jednosmerne
karakteristike ovog D lec kola. Od jendnosmernih karakteristika najvaznije su one
koje odredjuju izlazne naponske nivoe na izlazu leca (VOH i VOL). Izlazni naponski
nivo logicke jedinice je ujedno referetni napo koji se kristi u izrazu za napon na izlazu
analogno-digitalnog konvertora.
Slika 5.5 je proizvodjacka preporuka povezivanje kola MAX232. Na slici su
prikazani svi potrebni elementi, i nacin na koji ih treba povezti da bi kolo ispravni
radilo. Pri realizaciji naseg sistema iskoristili smo upavo ovu preporuku.
Na slici 5.6 prikazane su dimenzije i karakteristike koriscenih LE dioda. Ove
diode su vrlo zahvene za koriscene u situacija kada je potrebna jednostavna i jeftina
indikacija nekog stanja. Imaju veoma malo potrosnju struje, tako da mikrokontroler
PIC16F877 moze direkno da ih podjuje.
Slika 5.7 prikazuje fiziki izgled i karakteristike koriscenih DIP prekidaca. U
nasem sistemu korisceni su cetvoropolni DIP prekidaci.
Sl: 5.3 Tabela istinitost kola 74hc373
Slika 5.8 prikazuje fizice dimenzije linijskog stabiliora 7805. Ovaj stabilizator
je dimenzionisan za nazivnu struju od jednog ampera, sto je bilo sasvim dovoljno za
nas sistem.
Za reset mikrokontrolera koristili smo impulsne tastere. Oni su malih
dimenzija, a i cena imje pristupacna, tako da sve vise nalaze mesto u
mikrokontrolerskim sistemima. Fizicki izgled i karateristike impulsnih tastera
prikazana je na slici 5.9.
Na slici 5.10 prikaz je zizicki izgled NYLON konektra. Ovi konektori su
korisceni za povezivanje napajanja i programatora sa sistemom.
Slika 5.11 prikazuje karakteristke i fizicki izgled integrisanog grecovog
ispravljaca. U sistemu je koriscen grecov ispravljac dimenzionisan za struje do jednig
ampera.
Sl: 5.12 Sema TAIT programatora