1.芯片简介
ADC0832是一种 8 位分辨率、250KHZ转换频率、双通道 A/D 转换芯片。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在 0~5V 之间。芯片转换时间仅为 32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。

主要特点如下
-
8 位分辨率,双通道 A/D 转换;
-
输入输出电平与 TTL/CMOS 相兼容;
-
5V 电源供电时输入电压在 0~5V 之间;
-
功耗仅为 15mW,工作频率为 250KHZ,转换时间为 32μS;
2.ADC0832引脚定义
-
CS:片选使能,低电平芯片使能
-
CH0:模拟输入通道0,或作为IN+/-使用;
-
CH1:模拟输入通道1,或作为IN+/-使用;
-
GND:芯片参考零电位(地);
-
DI :数据信号输入,选择通道控制;
-
DO :数据信号输出,转换数据输出;
-
CLK:芯片时钟输入;
-
Vcc/REF:芯片电源;

3.ADC0832控制时序
ADC0832控制时序如图,ADC0832驱动程序是基于以下时序图来编程;

4.ADC0832驱动程序
/****************************************************************************函数功能:AD转换子程序入口参数:CH出口参数:dat****************************************************************************/unsigned char A_D(unsigned char CH){unsigned char i,test,adval;unsigned char dat = 0; //AD值adval = 0x00;test = 0x00;Clk = 0; //初始化DATI = 1;_nop_();CS = 0;_nop_();Clk = 1;_nop_();if ( CH == 0x00 ) //通道选择{Clk = 0;DATI = 1; //通道0的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 0; //通道0的第二位_nop_();Clk = 1;_nop_();}else{Clk = 0;DATI = 1; //通道1的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 1; //通道1的第二位_nop_();Clk = 1;_nop_();}Clk = 0;DATI = 1;for( i = 0;i < 8;i++ ) //读取前8位的值{_nop_();adval <<= 1;Clk = 1;_nop_();Clk = 0;if (DATO)adval |= 0x01;elseadval |= 0x00;}for (i = 0; i < 8; i++) //读取后8位的值{test >>= 1;if (DATO)test |= 0x80;elsetest |= 0x00;_nop_();Clk = 1;_nop_();Clk = 0;}if (adval == test) //比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉dat = test;nop_();CS = 1; //释放ADC0832DATO = 1;Clk = 1;return dat;}
如需资料可在该账号下载频道下载,或关注公众号-单片机实例设计,发送“ADC0832”获取。

被折叠的 条评论
为什么被折叠?



