这是一个ADC0809和51单片机的电路图,请各位大神帮忙看看这里的连接是否有错,还需要一个C语言程序

程序要实现数模转换就可以了,麻烦啦,分数不是问题!
2024-10-29 08:12:17
推荐回答(5个)
回答1:

连接没有问题。
#include
#define uchar unsigned char
#define uint unsigned int
sbit ST=P3^0; //A/D启动转换信号
sbit OE=P3^1; //数据输出允许信号
sbit EOC=P3^2; //A/D转换结束信号
void delay(uchar t)
{
uchar i,j;
for(i=0;i{
for(j=13;j>0;j--);
{ ;
}
}
}
void main()
{
uchar AD0809;
while(1) //无限循环
{
ST=0; //使采集信号为低
ST=1; //开始数据转换
ST=0; //停止数据转换
while(!EOC); //等待数据转换完毕
OE=1; //允许数据输出信号
AD0809=P0; //读取数据
OE=0; //关闭数据输出允许信号
if(AD0809>=251) //电压显示不能超过5V
AD0809=250;
P1=ad0809; //没有显示,输出给P1口替代。
}
}

回答2:

注意 输出端口要io口要反过来接 也就是0接7 1接6.。。。

回答3:

#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit st=P3^0;

sbit oe=P3^1;
uchar date;

void main()
{

while(1)
{
st=0;

st=1;
st=0;

while(!eoc);
oe=1;
delay(10);

date=P0;
oe=0;
}

}
另外这个multisim0809是不能仿真的,换成adc0808试试

回答4:

电路上没有问题,控制好时序就行,在获取AD值前要判断是否转换完成。
while(!EOC);

回答5:

参考以前回答的问题:
http://zhidao.baidu.com/question/409415572.html