请教ADC0838的驱动程序,帮我修改一下
uchar ADC_Conv(void)
{
uchar i;
uchar Data,Data1;
ADB_CS=1; //关闭压力
ADA_CS=1;
_nop_();
ADA_CS=0;
AD_DI=1; //起始信号
_nop_();
_nop_();
AD_CLK=1;
_nop_();
_nop_();
AD_CLK=0; //第一个下降沿
_nop_();
_nop_();
AD_CLK=1;
AD_DI=(bit)(0x02&CH0); //选通道CH1放在CLK=1后
_nop_();
AD_CLK=0; //第二个下降沿
_nop_();
_nop_();
AD_CLK=1;
AD_DI=(bit)(0x01&CH0); //选通道CH1
_nop_();
AD_CLK=0; //第三个下降沿
_nop_();
_nop_();
AD_CLK=1;
_nop_();
_nop_();
AD_CLK=0; //第四个下降沿
_nop_();
_nop_();
AD_CLK=1;
for(i=8;i>0;i--)
{
if(AD_DO)
Data1++;
AD_CLK=0;
_nop_();
Data1<<=1;
AD_CLK=1;
}
if(AD_DO) //最低位赋值
Data1++;
for(i=0;i<8;i++) //得到一个反序排列的8位数据
{
if(AD_DO)
Data++;
AD_CLK=0;
_nop_();
Data<<=1;
AD_CLK=1;
}
if(AD_DO)
Data++; //最低位赋值
AD_CLK=0;
_nop_();
_nop_();
AD_CLK=1;
_nop_();
_nop_();
AD_CLK=0;
_nop_();
_nop_();
AD_CLK=1;
_nop_();
ADA_CS=1;
_nop_();
_nop_();
return Data1;
} |