C kodning hjælp i MPLAB C18

E

engr.waqas

Guest
Jeg lægger analogt input fra 0 til 5 V i PIC-18.
Nu A / D-resultat gemmes i et register "resultat" type int.
Nu jeg ønsker at konvertere de værdier gemt i "resultat" til ASCII og derefter vises på LCD.
Jeg har Vref af A / D som 5 volt og bruger i 10 bit-tilstand.
Jeg vil LCD vise fraktioneret værdier også gerne 4,5 mm
kan nogen give mig sin kodning?

 
du gå gennem datablad for af målet processor og se ligningen for den analoge til digitale samtale.resultatet i ADC resister kan konverteres til spænding og vises på LCD afhængigt af LCD de diaplay kode vil ændre

 
Kode:# include <stdio.h>char buffer [8];void konvertere (void)

(

int resultat;

dobbelt spænding;spænding = (double) (resultat * 5,0 / 1024,0);

sprintf (buffer, "% 0.1f", spænding);

)

 
Kære Btbass
Tak for dit svar men nu har jeg problem, at LCD-datalinjer er forbundet til havnen D (D0 til D7). Nu når jeg bruger følgende kode til at sende data lagres i en buffer [] Jeg får syntaksfejl.
PORTD = buffer [];
Så hvordan kan jeg sende den værdi gemt i buffer [] til PORT D.

 
buffer er et array af char.
Hvis du bare vil have en decimal, prøv

PORTD = buffer [0];
PORTD = buffer [1];
PORTD = buffer [2];
PORTD = buffer [3]; / * Kan indeholde NULL * /

eller du kan gøre det i en løkke.

 
Kære engr.waqas

Brug følgende kode til at konvertere ADC Tæl til at få den nøjagtige spændingsniveauer

Value = ReadADC (Channel Number)

værdi = (værdi * 5,00) / 1024;

u få værdien i decimal absoultue værdi.Hvis u vil i flydende variabler

Erklære værdi som float

bruge dette trin
værdi = Readadc (kanalnummer)
værdi = (værdi * 5) / 1024;
printf ( "% f", value);

U få værdien i decimaltal.
Tjek dette.Hvis u har brug for mere jeg hjælpe u

Hilsen
Prabakaran

 

Welcome to EDABoard.com

Sponsor

Back
Top