H
hhhsssmmm
Guest
Hallo
Im using PIC12F675 met interne OSC draaien @ 4MHz.Im using MikroC compiler versie 8.2.
Ik wil niet een eenvoudige ADC experiment.Zie het bijgevoegde schema.
Voordat de PIC wordt geplaatst in het circuit, de 10K pot is in de eerste getrimd te krijgen 5.03V MAX constante output van de supply DC 15V, die een constante variabele DC voeding.De 5V leveren voor de PIC is voorzien van 78L05 regulator IC.De grond verwijzing is hetzelfde voor het gehele circuit.
Toen nu de supply DC 15V is 15V MAX, de 10K pot uitgang leest volt meter als 5.03V.Ook indien de levering 15V DC is verlaagd tot 10V, dan is de 10k pot uitgang leest op de volt meter als 3.4V.Ik neem aan dat deze spanningen ook worden gezien door de PIC ADC-pin (AN1), zoals weergegeven in het diagram.
Mijn programma hieronder gewoon controles om te zien dat als de ADC spanning is gelijk of hoger 3.4V, dan is de PIC afhangt van de LED.Als de spanning daalt onder 3.4V, dan is de LED blijft uit.
Helaas is dit niet gebeurt en de LED blijft zelfs als de DC-levering wordt verlaagd tot 6V.Daarna wordt de bijbehorende spanning uit de POT leest 2V.Ik heb geprobeerd het variëren van de "ADC_Result" variabele waarde aan een veel hogere vaule (800), maar zelfs dat niet helpt en hetzelfde probleem blijft.
In mikroC compiler, heb ik geconfigureerd mijn project als ....
CPD_OFF
CP_OFF
BODEN_OFF
MCLRE_OFF
PWRTE_OFF
WDT_OFF
INTRC_OSC_NOCLKOUT = ON
Hieronder is mijn programma.Please kan iemand mij helpen om dit probleem op te lossen.
Bedankt
Haseeb
Code:unsigned int ADC_Result; / / ADC resultaat bedrijf variabelevoid main (void)
(OSCCAL = 0x80; / / trimmen interne 4MHz OSC tot 'center'GPIO = 0; / / intiallize de haven/ / intillize de Comparitor pennen (GP0 tot GP1) naar digitale I / O pinnen
CMCON = 7;ADCON0.ADFM = 1; / / Resultaat Recht gerechtvaardigd
ADCON0.VCFG = 1; / / Voltage Reference is VREF/ / Channel 01 (AN1) geselecteerd
ADCON0.CHS1 = 0;
ADCON0.CHS0 = 1;ADCON0.GO_DONE = 0; / / Stop ADC Conversion
ADCON0.ADON = 0; / / ADC Gehandicapten/ / A / D Conversion Clock is FOSC / 8
ANSEL.ADCS2 = 0;
ANSEL.ADCS1 = 0;
ANSEL.ADCS0 = 1;/ / Analog AN1 is .....
rest is alle Digitale
ANSEL.ANS0 = 0;
ANSEL.ANS1 = 1;
ANSEL.ANS2 = 0;
ANSEL.ANS3 = 0;TRISIO.GP5 = 0; / / LED-uitgang
TRISIO.GP1 = 1; / / Channel AN1 inputINTCON = 0; / / disable all interrupts
PIE1 = 0; / / disable alle perifere interruptsADCON0.ADON = 1; / / ADC ingeschakeldwhile (1) / / loop forever
(ADCON0.GO_DONE = 1; / / Start ADC Conversionwhile (ADCON0.GO_DONE == 1); / / Wacht tot Conversie voltooidADC_Result = (ADRESH * 256) ADRESL; / / Samenvoegen Hoge byte met een lage byteif (ADC_Result> = 696) / / als we 3.4V krijgenGPIO.GP5 = 1; / / op LEDandersGPIO.GP5 = 0; / / LED uit)) / / Einde van main ()
Im using PIC12F675 met interne OSC draaien @ 4MHz.Im using MikroC compiler versie 8.2.
Ik wil niet een eenvoudige ADC experiment.Zie het bijgevoegde schema.
Voordat de PIC wordt geplaatst in het circuit, de 10K pot is in de eerste getrimd te krijgen 5.03V MAX constante output van de supply DC 15V, die een constante variabele DC voeding.De 5V leveren voor de PIC is voorzien van 78L05 regulator IC.De grond verwijzing is hetzelfde voor het gehele circuit.
Toen nu de supply DC 15V is 15V MAX, de 10K pot uitgang leest volt meter als 5.03V.Ook indien de levering 15V DC is verlaagd tot 10V, dan is de 10k pot uitgang leest op de volt meter als 3.4V.Ik neem aan dat deze spanningen ook worden gezien door de PIC ADC-pin (AN1), zoals weergegeven in het diagram.
Mijn programma hieronder gewoon controles om te zien dat als de ADC spanning is gelijk of hoger 3.4V, dan is de PIC afhangt van de LED.Als de spanning daalt onder 3.4V, dan is de LED blijft uit.
Helaas is dit niet gebeurt en de LED blijft zelfs als de DC-levering wordt verlaagd tot 6V.Daarna wordt de bijbehorende spanning uit de POT leest 2V.Ik heb geprobeerd het variëren van de "ADC_Result" variabele waarde aan een veel hogere vaule (800), maar zelfs dat niet helpt en hetzelfde probleem blijft.
In mikroC compiler, heb ik geconfigureerd mijn project als ....
CPD_OFF
CP_OFF
BODEN_OFF
MCLRE_OFF
PWRTE_OFF
WDT_OFF
INTRC_OSC_NOCLKOUT = ON
Hieronder is mijn programma.Please kan iemand mij helpen om dit probleem op te lossen.
Bedankt
Haseeb
Code:unsigned int ADC_Result; / / ADC resultaat bedrijf variabelevoid main (void)
(OSCCAL = 0x80; / / trimmen interne 4MHz OSC tot 'center'GPIO = 0; / / intiallize de haven/ / intillize de Comparitor pennen (GP0 tot GP1) naar digitale I / O pinnen
CMCON = 7;ADCON0.ADFM = 1; / / Resultaat Recht gerechtvaardigd
ADCON0.VCFG = 1; / / Voltage Reference is VREF/ / Channel 01 (AN1) geselecteerd
ADCON0.CHS1 = 0;
ADCON0.CHS0 = 1;ADCON0.GO_DONE = 0; / / Stop ADC Conversion
ADCON0.ADON = 0; / / ADC Gehandicapten/ / A / D Conversion Clock is FOSC / 8
ANSEL.ADCS2 = 0;
ANSEL.ADCS1 = 0;
ANSEL.ADCS0 = 1;/ / Analog AN1 is .....
rest is alle Digitale
ANSEL.ANS0 = 0;
ANSEL.ANS1 = 1;
ANSEL.ANS2 = 0;
ANSEL.ANS3 = 0;TRISIO.GP5 = 0; / / LED-uitgang
TRISIO.GP1 = 1; / / Channel AN1 inputINTCON = 0; / / disable all interrupts
PIE1 = 0; / / disable alle perifere interruptsADCON0.ADON = 1; / / ADC ingeschakeldwhile (1) / / loop forever
(ADCON0.GO_DONE = 1; / / Start ADC Conversionwhile (ADCON0.GO_DONE == 1); / / Wacht tot Conversie voltooidADC_Result = (ADRESH * 256) ADRESL; / / Samenvoegen Hoge byte met een lage byteif (ADC_Result> = 696) / / als we 3.4V krijgenGPIO.GP5 = 1; / / op LEDandersGPIO.GP5 = 0; / / LED uit)) / / Einde van main ()