#include "AD7886.h"
/****
AD7886端口定义
*****/
sbit AD7886_cs=P0^7;
sbit AD7886_sd=P0^6;
sbit AD7886_sclk=P0^5;
/********
延时函数
********/
void AD7886_delay(unsigned int n)
{
unsigned int i;
for(i=0;i<n;i++);
}
/********
AD7886初始化程序
延时函数为前几次使用的for循环
?未尝试其他循环方式?
********/
void init_AD7886(void)
{
AD7886_cs=1;
AD7886_sclk=1;
AD7886_sd=1;
AD7886_delay(30);
}
/*******
AD7886采集函数
返回值为最后的采集值
*******/
unsigned int AD7886(void)
{
unsigned int value_AD=0;
unsigned char i=0;
AD7886_cs=0;
for(i=0;i<16;i++)
{
value_AD=value_AD|AD7886_sd;
AD7886_sclk=1;
_nop_();
_nop_();
AD7886_sclk=0; //延时一个用于SDO口的数据改变
//_nop_();
//_nop_();
value_AD=value_AD<<1;
}
AD7886_cs=1;
value_AD=value_AD&0x0fff;
return value_AD;
}