1.功能原理
ADC0832是美国国家半导体公司生产的一种8位逐次比较型CMOS双通道A-D转换器。该器件有8引脚和14引脚两种封装,采用5V电源供电,模拟电压输入范围为0~5V,内部时钟250kHz时转换速度为32μs。其封装如图5-21所示。
图5-21 ADC0832的封装
由于ADC0832采用串行通信,占用单片机I/O资源少,一般用于简单的模拟电压检测系统中。引脚功能见表5-8。
表5-8 ADC0832引脚功能
ADC0832与单片机的连接为4条信号线,分别是CS、CLK、DO、DI。由于DO端与DI端在通信时并不是同时有效,且与单片机的接口是双向的,所以应用中可以将ADC0832的DO和DI线并在一起接单片机的I/O,如图5-22所示。
图5-22 ADC0832仿真电路
ADC0832未工作时,端应为高电平,此时芯片被禁用,CLK和DO/DI的电平可任意。进行A-D转换时,须先将使能端置为低电平,并且保持直到转换完全结束。开始转换时,由单片机向ADC0832的CLK输入时钟脉冲,DO/DI端使用输入通道功能选择的信号。在第1个时钟脉冲的下降沿DI端必须是高电平,表示启始信号。在CLK第2、3个脉冲下降沿DI端应输入两位数据,用于选择通道。当此两位数据分别为1、0时,只对CH0进行单通道转换;当两位数据为1、1时,只对CH1进行单通道转换;当2位数据为0、0时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入;当2位数据为0、1时,将CH0作为负输入端IN-,CH1作为正输入端IN+。
CLK第3个脉冲的下降沿来到之后,DI端的输入电平就失去作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下降沿开始,由DO端输出8位转换数据的最高位,随后在每一个脉冲下降沿,DO端输出一位数据,直到第11个脉冲时送出最低位数据,完成一次A-D转换。
2.ADC0832的应用(www.xing528.com)
由于ADC0832操作简单,因此ADC0832驱动只需依照该器件的工作情况设计即可。在图5-22所示的仿真电路中,调节电位器OP1可以产生0~5V的电压信号,输入ADC0832的CH0端口,ADC0832转换后的数据范围为0~255,由3位数码管显示。ADC0832的DI与DO进行与操作后接单片机的P3.2接口,接P3.0接口,CLK接P3.1接口。为了得到CH0通道转换得到的数据,程序中需要在CLK第2、3个下降沿来到时向DI发送1、0,然后才能接收ADC0832的转换数据,每次转换结束时使无效。
本例程序分主程序和子程序两部分。子程序为ADC0832驱动程序,主程序主要显示转换的数据,用来验证子程序的正确性。
(1)ADC0832驱动程序
ADC0832驱动程序包含对ADC0832的初始化函数、读取ADC0832数据函数。在读取数据的函数中,要对所用的A-D通道进行选择。ADC0832的驱动程序如下:
(2)主程序
主程序需要显示A-D转换器对模拟信号转换后的数据,因此要用到数码管动态显示程序,具体程序如下:
在子程序的基础上,改变CLK第2、3个下降沿到来时输入的DI数值,可以实现CH1通道数据转换。作为单通道模拟信号输入时,ADC0832的输入电压是0~5V,8位分辨率,电压准确度为19.53mV。如果由IN+与IN-输入时,可将电压值设定在某一个较大范围内,从而提高转换的宽度。值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压,则转换后的结果始终为00H。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。