uint AD_TLC1543(uchar chn)
{
uint ADdata;
uchar i, temp;
ADdata=0;//初始化数据
AD_EOC=1;
AD_CS=1;
Delay(1);
AD_CS=0;//CS下降沿
Delay(1);
chn=chn<<4;
for(i=0;i<4;i++) //输入需要转换的通道的编码
{
temp=chn;
AD_CLK=0;
Delay(1);
if(temp&0x80)
{AD_ADDR=1;}
else
{AD_ADDR=0;}
AD_CLK=1;
Delay(1);
chn=chn<<1;
}
for(i=0;i<6;i++) //输入转换时钟
{
AD_CLK=0;
Delay(1);
AD_CLK=1;
Delay(1);
}
AD_CS=1;//CS拉高
while(!AD_EOC);//等待转换结束
ADdata=0;//初始化数据
AD_CS=0;
Delay(1);
for(i=0;i<10;i++) //读取10位bit值
{
AD_CLK=0;
Delay(1);
ADdata<<=1;
if(AD_SDO)
{ADdata|=0x0001;}
AD_CLK=1;
Delay(1);
}
return ADdata; //返回转换结果
} |