如我所编AD转换程序中,在转换时间要长达30ms时才能有有效的数据输出。如果时间过短,则不会起到即时的效果。unsigned char 最大值为255再大就要用循环了。
下面是原码:
#include
#include
sbit wr = P3^6
sbit rd = P3^7
sbit dula = P2^6
sbit wela = P2^7
unsigned char j,k,aa
void delay(unsigned char i) //最大值255
{
for(j=ij>0j--)
for(k=125k>0k--)
}
void main()
{
unsigned char a
while(1)
{
wela = 1//选通P0的74hc573
P0 = 0//选通ADCS
wr = 0//起动adc0804,写入模拟信号
_nop_()
wr = 1
delay(10)
// for(a = 20a>0a--)
delay(255)//转换等待
rd = 0//AD读使能
}
}
你可以先分开来调,把每个部分先分别调好了,让数码管能单独显示了,然后再调ad部分,然后综合起来调,你那个数码管部分用的是573,把这一块调好了,然后多读adc0804的资料,了解清楚adc0804的资料后再写程序,注意时序不要错了欢迎分享,转载请注明来源:内存溢出
评论列表(0条)