H
hhhsssmmm
Guest
Zdravo
Im uporabo PIC12F675 z notranjim OSC teče @ 4MHz.Im uporabo MikroC sestavljač različico 8.2.
Rad bi naredil preprost ADC poskusa.Zaprto glej diagram.
Pred PIC se postavi v stik z 10k lonec je prvi priti enakomerno obrezani 5.03V MAX output iz 15v DC ponudbe, ki je stalno spremenljivko DC napajanja.V 5V napajanje za PIC je predvidena od 78L05 regulator IC.Tlemi referenčnega je enaka za celotno vezje.
Zdaj, ko je 15v DC oskrbe na 15v MAX je 10k lonec izhodno glasi na volt meter kot 5.03V.Podobno, če je 15v DC oskrbe se zniža na 10V, potem je 10k lonec output glasi na volt meter kot 3.4V.Domnevam, da so te napetosti tudi vidijo PIC ADC pin (AN1), kakor je prikazano v diagramu.
Moj program, spodaj preprosto preveri, da če ADC napetost je enaka ali nad 3.4V, nato PIC vklopi LED.Če napetost pade pod 3.4V, potem je LED ostaja off.
Žal to ne dogaja in LED ostaja na celo če DC oskrbe se zniža na 6V.Potem ustrezno napetost ven iz POT glasi 2V.Imam preizkušen spreminjanjem "ADC_Result" spremenljive vrednosti precej višje vaule (800), ampak tudi to ne pomaga in problem ostaja enak.
V mikroC sestavljač,
imam konfiguriran kot moj projekt ....
CPD_OFF
CP_OFF
BODEN_OFF
MCLRE_OFF
PWRTE_OFF
WDT_OFF
INTRC_OSC_NOCLKOUT = O
Spodaj je moj program.Lahko nekdo prosim pomagajte mi rešiti ta problem.
Hvala
Haseeb
Koda:nepotpisani int ADC_Result; / / ADC Rezultati spremenljivke gospodarstvoneveljaven glavne (neveljaven)
(OSCCAL = 0x80; / / rezanje notranjih 4MHz OSC navzdol "CENTER"GPIO = 0; / / intiallize pristanišču/ / intillize je Comparitor zatiči (GP0 za GP1) za Digital I / O zatiči
CMCON = 7;ADCON0.ADFM = 1; / / Result desno poravnano
ADCON0.VCFG = 1; / / Voltage Reference je Vref/ / Channel 01 (AN1) IZBRANI
ADCON0.CHS1 = 0;
ADCON0.CHS0 = 1;ADCON0.GO_DONE = 0; / / Stop ADC Conversion
ADCON0.ADON = 0; / / ADC Onemogočene/ / A / D Conversion Clock je FOSC / 8
ANSEL.ADCS2 = 0;
ANSEL.ADCS1 = 0;
ANSEL.ADCS0 = 1;/ / AN1 je analogna .....
vse ostalo je digitalna
ANSEL.ANS0 = 0;
ANSEL.ANS1 = 1;
ANSEL.ANS2 = 0;
ANSEL.ANS3 = 0;TRISIO.GP5 = 0; / / LED proizvodnja
TRISIO.GP1 = 1; / / Channel AN1 inputINTCON = 0; / / onemogočite vse prekinja
PIE1 = 0; / / onemogočite vse periferne prekinjaADCON0.ADON = 1; / / ADC Enabledmedtem ko (1) / / zanka za vedno
(ADCON0.GO_DONE = 1; / / Start ADC Conversionmedtem ko (ADCON0.GO_DONE == 1); / / Počakajte Preusmeritveno oblogamiADC_Result = (ADRESH * 256) ADRESL; / / spojitev visoki bajt z nizko bajtif (ADC_Result> = 696) / / če dobimo 3.4VGPIO.GP5 = 1; / / LED našeGPIO.GP5 = 0; / / LED off)) / / End of main ()
Im uporabo PIC12F675 z notranjim OSC teče @ 4MHz.Im uporabo MikroC sestavljač različico 8.2.
Rad bi naredil preprost ADC poskusa.Zaprto glej diagram.
Pred PIC se postavi v stik z 10k lonec je prvi priti enakomerno obrezani 5.03V MAX output iz 15v DC ponudbe, ki je stalno spremenljivko DC napajanja.V 5V napajanje za PIC je predvidena od 78L05 regulator IC.Tlemi referenčnega je enaka za celotno vezje.
Zdaj, ko je 15v DC oskrbe na 15v MAX je 10k lonec izhodno glasi na volt meter kot 5.03V.Podobno, če je 15v DC oskrbe se zniža na 10V, potem je 10k lonec output glasi na volt meter kot 3.4V.Domnevam, da so te napetosti tudi vidijo PIC ADC pin (AN1), kakor je prikazano v diagramu.
Moj program, spodaj preprosto preveri, da če ADC napetost je enaka ali nad 3.4V, nato PIC vklopi LED.Če napetost pade pod 3.4V, potem je LED ostaja off.
Žal to ne dogaja in LED ostaja na celo če DC oskrbe se zniža na 6V.Potem ustrezno napetost ven iz POT glasi 2V.Imam preizkušen spreminjanjem "ADC_Result" spremenljive vrednosti precej višje vaule (800), ampak tudi to ne pomaga in problem ostaja enak.
V mikroC sestavljač,
imam konfiguriran kot moj projekt ....
CPD_OFF
CP_OFF
BODEN_OFF
MCLRE_OFF
PWRTE_OFF
WDT_OFF
INTRC_OSC_NOCLKOUT = O
Spodaj je moj program.Lahko nekdo prosim pomagajte mi rešiti ta problem.
Hvala
Haseeb
Koda:nepotpisani int ADC_Result; / / ADC Rezultati spremenljivke gospodarstvoneveljaven glavne (neveljaven)
(OSCCAL = 0x80; / / rezanje notranjih 4MHz OSC navzdol "CENTER"GPIO = 0; / / intiallize pristanišču/ / intillize je Comparitor zatiči (GP0 za GP1) za Digital I / O zatiči
CMCON = 7;ADCON0.ADFM = 1; / / Result desno poravnano
ADCON0.VCFG = 1; / / Voltage Reference je Vref/ / Channel 01 (AN1) IZBRANI
ADCON0.CHS1 = 0;
ADCON0.CHS0 = 1;ADCON0.GO_DONE = 0; / / Stop ADC Conversion
ADCON0.ADON = 0; / / ADC Onemogočene/ / A / D Conversion Clock je FOSC / 8
ANSEL.ADCS2 = 0;
ANSEL.ADCS1 = 0;
ANSEL.ADCS0 = 1;/ / AN1 je analogna .....
vse ostalo je digitalna
ANSEL.ANS0 = 0;
ANSEL.ANS1 = 1;
ANSEL.ANS2 = 0;
ANSEL.ANS3 = 0;TRISIO.GP5 = 0; / / LED proizvodnja
TRISIO.GP1 = 1; / / Channel AN1 inputINTCON = 0; / / onemogočite vse prekinja
PIE1 = 0; / / onemogočite vse periferne prekinjaADCON0.ADON = 1; / / ADC Enabledmedtem ko (1) / / zanka za vedno
(ADCON0.GO_DONE = 1; / / Start ADC Conversionmedtem ko (ADCON0.GO_DONE == 1); / / Počakajte Preusmeritveno oblogamiADC_Result = (ADRESH * 256) ADRESL; / / spojitev visoki bajt z nizko bajtif (ADC_Result> = 696) / / če dobimo 3.4VGPIO.GP5 = 1; / / LED našeGPIO.GP5 = 0; / / LED off)) / / End of main ()