ADS1230的驱动程序,自己编写测试,基于51单片机,包括ad的初始化和ad的读取
下载:
ad1230驱动.docx
(11.55 KB, 下载次数: 83)
初始化ADS1230
void ad_init()
{
//ad_pdwn=1;
//delayus(5);
ad_pdwn=0;
delayus(5);
ad_pdwn=1;
delayus(5);
ad_sclk=0;
}
/*void ad_init()
{
uchar i;
ad_sclk=0;
ad_pdwn=0;
_nop_();_nop_();
ad_pdwn=1;
_nop_();_nop_();
while(ad_dout);
_nop_();_nop_();
for (i=0;i<26;i++)
{
ad_sclk=1;
_nop_();_nop_();
ad_sclk=0;
_nop_();_nop_();
}
}*/
读取AD转换后的值
ulong get_ad()
{
ulong zhi=0;
uchar i;
ulong result=0;
while(ad_dout);
_nop_();
_nop_();
_nop_();
_nop_();
for(i=0;i<20;i++) //在时钟的上升沿和下降沿都可以输出转换的数据 {
{ zhi<<=1;
ad_sclk=1;
_nop_();
ad_sclk=0;
if(ad_dout==1)
zhi+=1;
_nop_();
}
ad_sclk=1;//注意必须要加一个额外的时钟周期去强制拉高ad_dout
_nop_();
ad_sclk=0;
_nop_();
result=zhi;
/*if(result>524287)//result是负数
result=1048576-result;
//result=(float)result*0.0308166;
//result=(ulong)result;*/
return result;
}
|