首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

单片机内部模拟比较器的应用

单片机内部模拟比较器的应用

关键字:单片机   内部   模拟   比较器  
       一般来说,内部带A/D转换器的单片机价格都比较昂贵,而且一般只有8到10位的分辨率,这在高分辨率要求的场合显然不适用;而普通的单片机则根本没有A/D转换器。随着现代电子技术的发展,出现了一些体积小、内含模拟比较器的单片机,如ATMAL的AT89C2051、ZILOG的Z86E04、MICROCHIP的PIC16C620等,这些单片机在使用时连接比较器的端口一般只作普通I/O使用,而对其内置的模拟比较器的应用却很少。下面以AT89C2051为例,谈谈利用单片机内置模拟比较器来构成A/D转换器的新方法。
        1 硬件转换电路

        AT89C2051是MCS51单片机系列中的一种,它虽然只有20个引脚,却集成了51系列单片机的标准内核,其中包括2k程序存储器、128字节数据存储器、2个16位定时计数器、一个标准全双工UART和一个精确的模拟比较器,
而这个模拟比较器是以前产品所没有的。图1是利用AT89C2051的模拟比较器来构成双积分式A/D转换器的电路原理图。其中:内置模拟比较器的结构如图中虚线包围部分所示,比较器的正、反相输入端分别与P1.0、P1.1连接,这是两个漏极开路无上拉电阻的输出和输入端口,当向P1.0、P1.1写“1”时,M1、M2截止,相当于P1.0、P1.1对数字部分悬空,这时比较器的输入不受单片机端口输出的影响;由于P1.0、P1.1具有很强的灌电流能力,当写入“0”时,P1.0、P1.1能吸入20mA的灌电流,而且M1、M2的饱和电压很低,利用这一特点可为积分电容彻底放电。比较器输出端在单片机内部与P3.6连接,读P3.6就可得到比较器的输出结果。因此,利用AT89C2051这个内置的比较器,再加上少量的外围器件就可组成双积分式A/D转换器。图1中,I0为恒流源,其电流约为0.5~2mA,Cf是积分电容,Cf与I0的选择取决于A/D转换的位数,Vref为参考电压,一般取模拟输入电压最大值的一半,U2是一个模拟开关,其中通道0接参考电压,通道1至7接模拟输入,即该A/D转换器有7个输入通道。

   


       2 转换过程

       当恒流源对电容器积分时,积分电容上的电压与时间成线性比例关系,这样利用单片机内部的定时计数器就可分别测量参考电压及模拟输入电压的积分时间,再通过CPU的运算来得到转换的结果。单片机的端口P1.2至P1.4可用来输出模拟开关通道选择地址,定时计数器T0可设定为方式1,16位定时状态,用来测定积分时间。该转换过程可分5个步骤:

       第一步为积分电容的放电,主要是向P1.1写“0”,利用其吸入灌电流大的特点为Cf放电,同时定时计数器T0清零。

        第二步是参考电压积分,即模拟开关选择通道0,相当于Vref接至比较器的正输入端,并向P1.1写“1”,同时启动定时计数器,这样,I0开始对Cf积分;程序循环读P3.6状态,以检测比较器的输出结果,当积分电容上的积分电压稍大于(由于比较器有极高的增益,故可近似地看作等于)参考电压时,比较器的输出反转,P3.6发生由高至低的跳变。程序检测到这个跳变后,停止定时计数器,保存此时的定时计数器结果Tref,此时可由恒流源对电容积分的关系式得出:Vref=(I0 Tref)/Cf

  第三步为积分电容放电,也就是重复第一步对Cf放电和定时计数器T0清零。

       第四步为输入电压积分,此时模拟开关可选择通道1~7中的一个,相当于模拟输入电压Vx接至比较器的正输入端,重复第二步对输入电压积分,则可得到积分时间Tx,因此,Vx=(I0Tx)/Cf

  以上4步积分电容Cf上的积分电压波形如图2所示。

   


返回列表