ADC reerence spriegums

W

Wang tianwei

Guest
hi, i am izmantojot pic 16f877.un tālāk ir programma.Vai kāds man pastāstīt, kā man vajadzētu zināt, atsaucoties spriegumu, kā tie visi hex numurus.thanks a lot

Parauga programma AdvFamLab

/ / Include nepieciešami header faili šeit
# include <pic1687x.h>
# include <pic.h>

/ / Atzīt globālo mainīgo šeit
gaistošo int on_time_counter, off_time_counter;
gaistošo unsigned char gaismas = 0;
int timer_value = 0xFE;

/ / Atzīt funkciju izmanto programmas, ti,
/ / anulēts initialize_IO_ports (spēkā neesošs)
/ / anulēts initialize_ADC (spēkā neesošs)
/ / int read_ADC_channel (unsigned int)
/ / anulēts initialize_timer1 (INT)
/ / Put ķermeņa visu funkciju

anulēts initialize_IO_ports (spēkā neesošs)
(
/ / set digitālo IO ports kā vienu prasība
TRISA = 0xFF; / / porta kā priekšnodokli
TRISB = 0xFF; / / portB kā priekšnodokli
TRISC = 0x00; / / portC kā produkciju
TRISD = 0x00; / / portD kā produkciju
ADCON1 = 0x82; / / set Porte, digitālo io un porta kā analogās un VDD un VSS; ADC produkcija ir labi-pamatota.
/ / notīrīt izejas ostās, sākumā
PORTD = 0x00; / / notīrīt portD
PORTC = 0x00; / / notīrīt portC
)

anulēts initialize_ADC (spēkā neesošs)
(
/ / Enable ADC
ADON = 1;
/ / set clock avots ADC
ADCS1 = 0;
ADCS0 = 0;
)

int read_ADC_channel (unsigned int channel_number)
(
int vērtību;
SWITCH (channel_number)
(
lieta 0:
/ / set kanālu selektoru
CHS2 = 0;
CHS1 = 0;
CHS0 = 0;
Case 1:
/ / set kanālu selektoru
CHS2 = 0;
CHS1 = 0;
CHS0 = 1;
default:;
)
/ / Sākumlapa AD konversijas
ADGO = 1;
/ / wait pārvēršanas apdare
while (ADGO)
();
/ / lasīt reģistros vērtības
vērtība = (ADRESH <<8) ADRESL;
return (vērtība);
)

anulēts initialize_timer1 (spēkā neesošs)
(
/ / Pēc SFR ir jānosaka, kā norādīts Timer1 nodaļa PIC datu lapas
/ / set prescalar vērtība 1:8
T1CKPS1 = 1;
T1CKPS0 = 1;
T1OSCEN = 1; / / Timer1 lampa ir ieslēgts
/ / set iekšējo pulksteni, ti FOSC/4..eg.20MHz OSC tik clk par TMR1 ir 5MHz vai 200ns per TMR1 skaits
TMR1CS = 0;
GIE = 1; / / globālie pārtraukt ļāva
PEIE = 1; / / perifēro pārtraukt ļāva
TMR1IE = 1; / / Enable timer1 pārtraukt
)

anulēts load_timer1 (int timer_value)
(
TMR1ON = 0; / / izslēgt timer1 pirms iekraušanas vērtības
TMR1IF = 0; / / timer1 flag noskaidroti
TMR1H = (0xFFFF-timer_value)>> 8; / / load timer1 augstas reģistrs
TMR1L = (0xFFFF-timer_value) &0xFF; / / load timer1 zems reģistrs
TMR1ON = 1; / / Enable timer1
)

/ / pārtraukt pakalpojumu ikdienas
anulēts pārtraukt isr0 (spēkā neesošs)
(
if (TMR1IF == 1)
(
/ / Sākumā pārtraukt dienesta ikdienas darbu, papildināšanas taimeris
/ / load_timer1 (timer_value);
TMR1ON = 0; / / izslēgt timer1 pirms iekraušanas vērtības
TMR1IF = 0; / / timer1 flag noskaidroti
TMR1H = (0xFFFF-timer_value)>> 8; / / load timer1 augstas reģistrs
TMR1L = (0xFFFF-timer_value) &0xFF; / / load timer1 zems reģistrs
TMR1ON = 1; / / Enable timer1
if (gaismas == 0) / / if gaisma off
(
off_time_counter ; / / pieaugums off_time_counter
if (off_time_counter == 250) / / if off_time_counter ir sasnieguši nepieciešamo skaitu
(
off_time_counter = 0; / / notīrīt off_time_counter
on_time_counter = 0; / / notīrīt on_time_counter
gaismas = 1; / / set gaismu no jauna
)
)
else if (gaismas == 1) / / if gaismas bija par
(
on_time_counter ; / / pieaugums on_time_counter
if (on_time_counter == 50) / / if on_time_counter ir sasnieguši nepieciešamo skaitu
(
off_time_counter = 0; / / notīrīt off_time_counter
on_time_counter = 0; / / notīrīt on_time_counter
gaismas = 0; / / notīrīt gaismas Off
)
)
)
)

/ / main funkcijas
int main ()
(
/ / Atzīt par galveno funkciju mainīgajiem šeit
int analog_value1;
initialize_IO_ports ();
initialize_ADC ();
initialize_timer1 ();
load_timer1 (timer_value);
/ / nodot infinite loop šeit
while (1)
(
/ / lasīt digitālā ieeja un noteikt produkcija
PORTD = PORTB; / / lasīt portB un izejas to portD.
/ / output, ņemot vērā saskaņā ar mainīgo "liess"
RC0 = 1;
RC1 = 1;
RC2 = 0;
RC3 = vieglā frakcija;
RC4 = 0;
/ / lasīt analogo kanālu un veikalu vērtību mainīgais lielums;
analog_value1 = read_ADC_channel (0);
/ / pārbaude diapazonu vērtības un noteikt vai notīriet RC5 atbilstoši
if ((analog_value1> 0x004F) & & (analog_value1 <0x01FF)) RC5 = 1;
citādi
RC5 = 0;
);
return (1);
)
/ / end of AdvFamLab izlases programma

 
Po prawie dwóch latach wyt??onej pracy wydana zosta?a d?ugo oczekiwana stabilna wersja Xfce 4.8, która zast?pi wersj? 4.6.

Celem prac nad Xfce 4.8 by?o wprowadzenie do tej wersji ?rodowiska funkcji znanych z innych ?rodowisk graficznych, które pojawia?y si? na przestrzeni ostatnich kilku lat. Ponadto Xfce 4.8 nie jest ju? zale?ny od Thunar VFS i HAL z GIO, udev, ConsoleKit i PolicyKit, dzi?ki...

Read more...
 
Izskatās, ref, sprieguma diapazons ir 0.4V līdz 2.55V
ņemot vērā Vcc kā 5V un ADC izšķirtspēja ir 4.9mV.
tikko pāri pārbaudīt.

 

Welcome to EDABoard.com

Sponsor

Back
Top