tlc1549的C语言程序问题,AD转换后控制P2口的led灯亮,例如0-5V,分别对应1-8个led灯
#include<REG52.h>
#include<intrins.h>
#define uchar unsigned char
#define unit unsigned int
#define nop _nop_()
uchar Data;
sbit cs=P1^0; //
sbit clk=P1^1; //I/O Clock
sbit dout=P1^2; //DATA OUT
unit adc(void); //A/D转换子程序
unit result;
void delay(uchar us); //delay
main()
{
for(;;)
{float u1=0;
u1=adc();
result=(500*(u1))/(1024);//10位,2的10次方
_nop_();
}
}
unit adc(void)
{
unit result=0;
uchar i;
cs=1;
nop;
cs=0;
for(i=0;i<10;i++) //读A/D数据
{clk=0;
result=(result<<1)|dout;
clk=1;
nop;
}
Data=adc;
if (Data<128)
P2=0xFC;
else if (Data>=128)
P2=0x00;
delay(2); //延时
cs=1;
return(result); //return ad data
}
void delay(uchar us) //delay time
{while(us--);
}
如何设置if语句,让不同的电压对应不同的灯,谢谢,10位的1549转换,那么2.5V是不是应该对应512,5V对应1024,可是试了试不行啊?
你说的都接了
追答那你的函数每次读取的数据是多少呢?我也写过这程序,但是没用网上的方法,自己设计函数,很好使的。