ADC0832的C语言驱动程序

#include "global.h"

sbit ADC0832_CLK = P2^5; /*定义ADC控制端口*/
sbit ADC0832_DIO = P2^4;
sbit ADC0832_CS = P2^6;



/************************** ADC0832 **************************/

uchar ADC0832_Read(uchar ch)
{
/*读取ADC的 CH 通道电压值,ADC作为2路单独电压输入*/
uchar i;
uchar ADC_buff=0;
ADC0832_CS = 1;
ADC0832_DIO = 1; //启动位
ADC0832_CLK = 0;
ADC0832_CS = 0;
_nop_();
ADC0832_CLK = 1;
_nop_();
ADC0832_CLK = 0;
ADC0832_DIO = 1; //送 SGL/DIF 位
_nop_();
ADC0832_CLK = 1;
_nop_();
ADC0832_CLK = 0;
if(ch==0) ADC0832_DIO = 0; //送 模拟量道值
else ADC0832_DIO = 1;
ADC0832_CLK = 1;
_nop_();
ADC0832_CLK = 0;
_nop_();
ADC0832_DIO = 1; //释放DIO端口,转由ADC控制
for(i=0;i<8;i++){
_nop_();
ADC0832_CLK = 0;
_nop_();
ADC0832_CLK = 1;
_nop_();
if(ADC0832_DIO==1) ADC_buff=ADC_buff+1; //读取8位数据
ADC_buff=ADC_buff<<1;
}
_nop_();
_nop_();
ADC0832_CS = 1;
ADC0832_CLK = 1;
return ADC_buff; //返回转换值
}


/************************** END **************************/

相关文档
最新文档