求助:c51单片机 ADC0804转换问题!

2025-02-28 15:07:49
推荐回答(4个)
回答1:

试试这个程序调电位器看是不是你想要的效果

#include

sbit rd=P3^7;

sbit wr=P3^6;

sbit csad=P3^5;

int t;

main()

{

while(1)

{

csad=0;

rd=0;

wr=0;

wr=1;

 for(t=10000;t>0;t--);

}

}

回答2:

首先确认0804 CS脚为低电平,
第二建议你在 WR=1;=0;=1之间各加一点延时,1MS即可。
第三,RD不是你控制的信号,应该是你读取判断的信号,如果采用读取判断那应该增加 whil(rd == 1);即读取RD为高时不动作,一直等到为低才继续。或者采用延时读取的方式,开始转换后即 WR 由低-高后,延时足够长时间后,直接读取数据(D0-D7)。
所有的AD转换的速度是由你给予他的时钟信号速度决定的,不能单纯看PDF,要针对自己的时钟计算出转换时间。
最后没看到你程序里有控制灯的语句。

回答3:

delay(100);就延时了100毫秒啊!!!
提示你:使用定时器去定时扫描(如100毫秒AD模块),主程序只做显示!!!!

回答4:

当你写while(rd); 可以把前后两个的延时去掉;