如我所编AD转换程序中,在转换时间要长达30ms时才能有有效的数据输出。如果时间过短,则不会起到即时的效果。unsigned char 最大值为255再大就要用循环了。
下面是原码:
#include<reg52.h>
#include<intrins.h>
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=i;j>0;j--)
for(k=125;k>0;k--);
}
void main()
{
unsigned char a;
while(1)
{
wela = 1;//选通P0的74hc573
P0 = 0;//选通ADCS
wr = 0;//起动adc0804,写入模拟信号
_nop_();
wr = 1;
delay(10);
//for(a = 20;a>0;a--)
delay(255); //转换等待
rd = 0;//AD读使能
}
}
【注释】此代码在TX-1C中通过
世界如此的美好,江山如此的多娇! ---阳光正能量--->>>>>>>>>>>>>>>