Advertisement
Guest User

lv7

a guest
Dec 8th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.11 KB | None | 0 0
  1. Listing programa:
  2. #include <xc.h>#pragma config FOSC=HS,WDTE=OFF,PWRTE=OFF,MCLRE=ON,
  3. CP=OFF,CPD=OFF,BOREN=OFF,CLKOUTEN=OFF #pragma config IESO=OFF,
  4. FCMEN=OFF,WRT=OFF,VCAPEN=OFF,PLLEN=OFF,STVREN=OFF,LVP=OFF
  5. #define XTAL FREQ 8000000
  6. void init analog() f
  7. ADCON1bits.ADCS2=1;
  8. ADCON1bits.ADCS1=1;
  9. ADCON1bits.ADCS0=1;
  10. ADCON1bits.ADNREF=0;
  11. ADCON1bits.ADPREF1=0;
  12. ADCON1bits.ADPREF0=0;
  13. ADCON0bits.ADON=1;
  14. g
  15. double citaj analog()
  16. f
  17. CHS0=0;
  18. CHS1=0;
  19. CHS2=0;
  20. CHS3=0;
  21. CHS4=0;
  22. ADGO=1;***Pokretanje konverzije
  23. while(ADGO);***Izvrsavaj naredbu "return ADRESH" dok se vrsi ADC
  24. return ADRESH;***Vraca rezultat sa desnim poravnanjem
  25. g
  26. void main(void)
  27. f
  28. const char brojevi[10]=f0b01000000, 0b01111001, 0b00100100, 0b00110000, 0b00011001,
  29. 0b00010010, 0b00000010, 0b01111000, 0b00000000, 0b00010000g;
  30. ***Indeks clana ujedno predstavlja cifru koju on generise na displeju kada se dovede na
  31. PORTD
  32. int jedinice, desetice, vr; ***Pomocne varijable
  33. ANSELD=0x00; ***Svi pinovi PORTD su digitalni
  34. TRISD=0x00; ***Svi pinovi PORTD su izlazni
  35. TRISC=0x00; ***Svi pinovi PORTD su izlazni
  36. ANSELA=0x01; ***pin RA0 je analogni, ostali digitalni (mada ih ne koristimo)
  37. TRISA=0x01; ***pin RA0 je ulazni, ostali izlazni (mada ih ne koristimo)
  38. ADCON1bits.ADFM=0;***Desno poravnanje
  39. init analog(); ***Pozivamo funkciju koja postavlja defaultne vrijednosti
  40. while(1) ***Beskonacna petlja
  41. f
  42. vr=citaj analog(); ***Varijabli vr dodjeljujemo vrijednost koju vraca funkcija (ADRESH)
  43. jedinice=vr*5/255; ***Odredjivanje cifre iza decimalnog zareza
  44. desetice=(int)(10*(vr*5.0/255-jedinice)); ***Odredjivanje cijelog dijela broja
  45. LATD=brojevi[jedinice]; ***Upisivanje odgovarajuceg clana niza na PORTD
  46. RC2=1; ***T1 OFF-displej koji prikazuje cijeli dio broja je iskljucen
  47. delay us(5); ***Kasnjenje da bismo mogli vidjeti broj
  48. RC1=0; ***T2 ON-displej koji prikazuje dio iza dec. zareza je ukljucen
  49. delay ms(5);
  50. LATD=brojevi[desetice]; ***Upisivanje odgovarajuceg clana niza na PORTD
  51. RC1=1; ***T2 OFF-displej koji prikazuje dio iza dec. zareza je iskljucen
  52. delay us(5);
  53. RC2=0; ***T1 ON-displej koji prikazuje cijeli dio broja je ukljucen
  54. delay ms(5);
  55. g
  56. return;
  57. g
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement