Y
yviswanathbe
Guest
Hej,
Jeg sammenknytning ADC0804 til AT89S8252.
Min kredsløb fungerer fint, men jeg kan ikke læse den konverterede værdi på pc'en.
Hver gang jeg får den samme værdi, selv når jeg bliver en analog indgang.
Kan nogen venligst hjælpe, hvad der kan være problemet?
Jeg vedhæfter min kode her?
På forhånd tak .....# include <stdio.h>
# include <reg51.h>
sbit mineData = P2;
sbit rd = P3 ^ 7;
sbit WR = P3 ^ 6;
sbit intr = P3 ^ 3;
unsigned char værdi;
void pause (int);
void delay1ms ();
void delay ();
void sender (unsigned char);
void main (void)
(
SCON = 0x50;
TMOD = 0x20;
Th1 = 0XFD;
TR1 = 1;
MineData = 0xff;
Intr = 1;
pause (5);
while (1)
(
forsinkelse ();
WR = 0;
forsinkelse ();
WR = 1;
while (intr == 1);
forsinkelse ();
rd = 0;
forsinkelse ();
værdi = mineData;
rd = 1;
sende (værdi);
void sender (unsigned char value)
(
TI = 0;
SBUF = værdi;
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 );
)
Tak,
Viswanath
Jeg sammenknytning ADC0804 til AT89S8252.
Min kredsløb fungerer fint, men jeg kan ikke læse den konverterede værdi på pc'en.
Hver gang jeg får den samme værdi, selv når jeg bliver en analog indgang.
Kan nogen venligst hjælpe, hvad der kan være problemet?
Jeg vedhæfter min kode her?
På forhånd tak .....# include <stdio.h>
# include <reg51.h>
sbit mineData = P2;
sbit rd = P3 ^ 7;
sbit WR = P3 ^ 6;
sbit intr = P3 ^ 3;
unsigned char værdi;
void pause (int);
void delay1ms ();
void delay ();
void sender (unsigned char);
void main (void)
(
SCON = 0x50;
TMOD = 0x20;
Th1 = 0XFD;
TR1 = 1;
MineData = 0xff;
Intr = 1;
pause (5);
while (1)
(
forsinkelse ();
WR = 0;
forsinkelse ();
WR = 1;
while (intr == 1);
forsinkelse ();
rd = 0;
forsinkelse ();
værdi = mineData;
rd = 1;
sende (værdi);
void sender (unsigned char value)
(
TI = 0;
SBUF = værdi;
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 );
)
Tak,
Viswanath