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
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