|
我做一个基于51单片机数据采集处理系统,ad转换芯片为ADS8320,但下载完程序后,还是没有启动ADS8320.麻烦高手给看一下程序有没有问题:
unsigned int ADS8325(void)
{
char i;
CS=0;
DCLK=0;
_nop_();
DCLK=1;
_nop_();
hbyte=0;
lbyte=0;
for(;DOUT;)
{DCLK=0;
_nop_();
DCLK=1;
_nop_();}
for(i=0;i<8;i++)
{DCLK=0;
_nop_();
DCLK=1;
_nop_();
hbyte<<=1;
}
for(i=0;i<8;i++)
{DCLK=0;
_nop_();
DCLK=1;
_nop_();
lbyte<<=1;
}
CS=1;
_nop_();
_nop_();
result=0;
result=hbyte;//高8位
result<<=8;
result+=lbyte;//低8位
result=0xff;
return result;
}
当 16位转换结构传输结束后,若 CS/SHDN端仍为低电平且 DCLOCK端有控制脉冲,那么在
DOUT端继续输出转换结果,但此时是由最低位(LSB)到最高位(MSB)依次输出,直到当最高位输
出出现重复使 DOUT端变成高阻态为止。即一次转换数据最多输出两次,一次从高位到低位,一次从低
位到高位。一般情况下,当 16位转换结果输出完毕后,置位或去掉 DCLOCK脉冲,可使结果仅输出一
次。
当 CS/SHDN端接高电平(下降沿)时,ADS8320在关断模式下低功
耗工作,只有当CS/SHDN端从高电平变为低电平时,芯片方可重新初始
化而进行另一次A/D转换。
|
|