Lezen van adc0804 ....

Y

yviswanathbe

Guest
Hoi,
Ik ben interfacing ADC0804 te AT89S8252.
Mijn schakeling werkt prima, maar ik ben niet in staat de omgerekende waarde ingevuld in de pc te lezen.
Elke keer krijg ik dezelfde waarde, zelfs als ik het veranderen analoge ingang.
Kan iemand please help wat kan het probleem zijn?
Ik ben verbonden mijn code hier?
Thanks in advance .....# include <stdio.h>
# include <reg51.h>

sbit MYDATA = P2;
sbit ^ rd P3 = 7;
sbit wr = P3 ^ 6;
sbit intr = P3 ^ 3;

unsigned char waarde;
void pause (int);
void delay1ms ();
void delay ();
void zenden (unsigned char);

void main (void)
(
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xfd;
TR1 = 1;
MYDATA = 0xFF;
intr = 1;
pauze (5);
while (1)
(
delay ();
wr = 0;
delay ();
wr = 1;
while (intr == 1);
delay ();
RD = 0;
delay ();
value = MYDATA;
rd = 1;
zenden (waarde);
void zenden (unsigned char waarde)
(
TI = 0;
SBUF = value;
while (! TI);
/ / TI = 0;
/ / flag = 1;
)
void pause (int k)
(
int j;
for (j = 0; j <= k; j )
(
delay1ms ();
)
)
void delay1ms ()
(
int i;
for (i = 0; i <= 500; i ) / / 15
(
;
)
)
void delay ()
(
int k, l;
for (k = 0; k <40; k )
for (l = 0; l <80; l );
)
Bedankt,
Viswanath

 
Hi Viswanath,
Ik ben verbaasd uw code daadwerkelijk samenstelt vermeld in de vorm.Ik had verwacht dat u een paar van de sluiting zou moeten bretels ingevoegd aan het eind van uw meetplaats, net boven de het begin van uw doorgeven functie.Op deze manier zal gaan om je meetplaats voor eeuwig en het verzenden van gegevens uit de seriële poort na elke meting is voltooid.Zoals het er nu ik denk dat hij de micro zal crashen na de eerste pass en nooit een lezing na de eerste omdat het programma niet langer actief is, en dus geen verandering in je lezingen.

Probeer iets als dit codefragment

void main (void)
(
/ / Plaats hier al je code zoals hieronder, maar veranderen de bits zoals ik heb aangetoond hem hieronder

while (1)
(
delay ();
wr = 0;
delay ();
wr = 1;
while (intr == 1);
delay ();
RD = 0;
delay ();
value = MYDATA;
rd = 1;
zenden (waarde);
) / / Deze brace sluit de while-lus
) / / Deze brace zal sluiten de belangrijkste functie
/ / Plaats de rest van je taken hier, kijken ze alsof ze zal werken, maar kon OK
/ / Geoptimaliseerd worden een beetje!

Ik hoop dat dit helpt.

Groeten
Bob.

 
Hoi,
Ook moet je juist de verklaring van 'variabele MYDATA' van
'Sbit MYDATA = P2;' om een SFR variabele verklaring.Volg de conventies van uw compiler voor de verklaringen.

Groeten,
Laktronics

 

Welcome to EDABoard.com

Sponsor

Back
Top