Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Listing programa:
- #include <xc.h>#pragma config FOSC=HS,WDTE=OFF,PWRTE=OFF,MCLRE=ON,
- CP=OFF,CPD=OFF,BOREN=OFF,CLKOUTEN=OFF #pragma config IESO=OFF,
- FCMEN=OFF,WRT=OFF,VCAPEN=OFF,PLLEN=OFF,STVREN=OFF,LVP=OFF
- #define XTAL FREQ 8000000
- void init analog() f
- ADCON1bits.ADCS2=1;
- ADCON1bits.ADCS1=1;
- ADCON1bits.ADCS0=1;
- ADCON1bits.ADNREF=0;
- ADCON1bits.ADPREF1=0;
- ADCON1bits.ADPREF0=0;
- ADCON0bits.ADON=1;
- g
- double citaj analog()
- f
- CHS0=0;
- CHS1=0;
- CHS2=0;
- CHS3=0;
- CHS4=0;
- ADGO=1;***Pokretanje konverzije
- while(ADGO);***Izvrsavaj naredbu "return ADRESH" dok se vrsi ADC
- return ADRESH;***Vraca rezultat sa desnim poravnanjem
- g
- void main(void)
- f
- const char brojevi[10]=f0b01000000, 0b01111001, 0b00100100, 0b00110000, 0b00011001,
- 0b00010010, 0b00000010, 0b01111000, 0b00000000, 0b00010000g;
- ***Indeks clana ujedno predstavlja cifru koju on generise na displeju kada se dovede na
- PORTD
- int jedinice, desetice, vr; ***Pomocne varijable
- ANSELD=0x00; ***Svi pinovi PORTD su digitalni
- TRISD=0x00; ***Svi pinovi PORTD su izlazni
- TRISC=0x00; ***Svi pinovi PORTD su izlazni
- ANSELA=0x01; ***pin RA0 je analogni, ostali digitalni (mada ih ne koristimo)
- TRISA=0x01; ***pin RA0 je ulazni, ostali izlazni (mada ih ne koristimo)
- ADCON1bits.ADFM=0;***Desno poravnanje
- init analog(); ***Pozivamo funkciju koja postavlja defaultne vrijednosti
- while(1) ***Beskonacna petlja
- f
- vr=citaj analog(); ***Varijabli vr dodjeljujemo vrijednost koju vraca funkcija (ADRESH)
- jedinice=vr*5/255; ***Odredjivanje cifre iza decimalnog zareza
- desetice=(int)(10*(vr*5.0/255-jedinice)); ***Odredjivanje cijelog dijela broja
- LATD=brojevi[jedinice]; ***Upisivanje odgovarajuceg clana niza na PORTD
- RC2=1; ***T1 OFF-displej koji prikazuje cijeli dio broja je iskljucen
- delay us(5); ***Kasnjenje da bismo mogli vidjeti broj
- RC1=0; ***T2 ON-displej koji prikazuje dio iza dec. zareza je ukljucen
- delay ms(5);
- LATD=brojevi[desetice]; ***Upisivanje odgovarajuceg clana niza na PORTD
- RC1=1; ***T2 OFF-displej koji prikazuje dio iza dec. zareza je iskljucen
- delay us(5);
- RC2=0; ***T1 ON-displej koji prikazuje cijeli dio broja je ukljucen
- delay ms(5);
- g
- return;
- g
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement