试试这个程序调电位器看是不是你想要的效果
#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--);
}
}
首先确认0804 CS脚为低电平,
第二建议你在 WR=1;=0;=1之间各加一点延时,1MS即可。
第三,RD不是你控制的信号,应该是你读取判断的信号,如果采用读取判断那应该增加 whil(rd == 1);即读取RD为高时不动作,一直等到为低才继续。或者采用延时读取的方式,开始转换后即 WR 由低-高后,延时足够长时间后,直接读取数据(D0-D7)。
所有的AD转换的速度是由你给予他的时钟信号速度决定的,不能单纯看PDF,要针对自己的时钟计算出转换时间。
最后没看到你程序里有控制灯的语句。
delay(100);就延时了100毫秒啊!!!
提示你:使用定时器去定时扫描(如100毫秒AD模块),主程序只做显示!!!!
当你写while(rd); 可以把前后两个的延时去掉;