#include
#include
#include
sbit clk2543=P1^4;
sbit din2543=P1^5;
sbit dout2543=P1^6;
sbit cs2543=P1^7;
#define uint unsigned int
#define uchar unsigned char
/***************************************************
延时函数 delay
功能:延时2*N+2个机器周期
**************************************************/
void delay(unsigned char N)
{
unsigned char t;
t = N;
while ( --t != 0 ); //延时2*N个机器周期
}
/***************************************************
TLC2543驱动程序
函数名:read2543(int CON_WORD)
说明:入口参数 :CON_WORD (八位控制字节,用于选择通道和输出方式)
返回值adc_value(ADC转换值)
***************************************************/
uint read2543(uint CON_WORD)
{ uint adc_value=0;
uchar i;
clk2543=0;
delay(2); //延时6微秒
cs2543=0;
for(i=0;i<12;i++)
{ if(dout2543) adc_value|=0x01;
din2543=CON_WORD&0x80;
clk2543=1;
clk2543=0;
CON_WORD<<=1;
adc_value<<=1;
}
adc_value>>=1;
cs2543=1;
return(adc_value);
}
用户208204 2009-6-21 20:33
用户1716532 2008-11-14 17:07
用户87543 2008-8-20 15:46
请问在TLC2543数据采集程序中转换结果是12位而在转换中为什么有adc_value>>=1,那样最低位不就舍弃了吗?