今天上午老师给讲了一个AD芯片 型号是tlc1549 用串行口方式采集数据。但是程序实在看不懂。。。。。。。。。。。。。。
sbit TLC1549_CS=P1^5; //片选端
sbit TLC1549_DAT=P1^4;//数据端
sbit TLC1549_CLK=P1^3;//时钟端
get_TLC1549()
{
uint tmp=0;
uchar b;
TLC1549_CS=1;
delay_us(10);//
TLC1549_CS=0;
delay_us(1);
for(b=10;b>0;b--) //读取AD转换后的十位数据
{
tmp<<=1;//tmp左移一位 //为什么要tmp左移啊 ,不应该是TLC1549_DAT吗? 一开始就定义 了tmp=0了 就没再说过他
if(TLC1549_DAT)
tmp|=1; //如果数据输出是1,或上tmp,再赋给tmp,这样就读的数据口数据//////这样就读出数据啦 tmp并没有把值赋给某个端口啊
TLC1549_CLK=1;
delay_us(1);
TLC1549_CLK=0;
}
TLC1549_CS=1;
delay_us(5);
return tmp;
}
求好人给指点一下 啊.......
sbit TLC1549_CS=P1^5; //片选端
sbit TLC1549_DAT=P1^4;//数据端
sbit TLC1549_CLK=P1^3;//时钟端
get_TLC1549()
{
uint tmp=0;
uchar b;
TLC1549_CS=1;
delay_us(10);//
TLC1549_CS=0;
delay_us(1);
for(b=10;b>0;b--) //读取AD转换后的十位数据
{
tmp<<=1;//tmp左移一位 //为什么要tmp左移啊 ,不应该是TLC1549_DAT吗? 一开始就定义 了tmp=0了 就没再说过他
if(TLC1549_DAT)
tmp|=1; //如果数据输出是1,或上tmp,再赋给tmp,这样就读的数据口数据//////这样就读出数据啦 tmp并没有把值赋给某个端口啊
TLC1549_CLK=1;
delay_us(1);
TLC1549_CLK=0;
}
TLC1549_CS=1;
delay_us(5);
return tmp;
}
求好人给指点一下 啊.......