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

[09-12 17:54:23]   来源:http://www.88dzw.com  单片机学习   阅读:8436

文章摘要: 第四步为输入电压积分,此时模拟开关可选择通道1~7中的一个,相当于模拟输入电压Vx接至比较器的正输入端,重复第二步对输入电压积分,则可得到积分时间Tx,因此,Vx=(I0Tx)/Cf以上4步积分电容Cf上的积分电压波形如图2所示。 第五步是通过CPU的运算来求得A/D转换的结果,由第二步结果除以第四步结果,可以得到: Vref/Vx=Tref/Tx 变换后得: Vx=(VrefTx)/Tref 上式即A/D转换的结果。 从上式可以看出:A/D转换结果Vx只与Vref、Tx、Tref有关而与I0、Cf无关。这一点非常重要。因为它意味着在转换过程

单片机内部模拟比较器的应用,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
第四步为输入电压积分,此时模拟开关可选择通道1~7中的一个,相当于模拟输入电压Vx接至比较器的正输入端,重复第二步对输入电压积分,则可得到积分时间Tx,因此,Vx=(I0Tx)/Cf
  以上4步积分电容Cf上的积分电压波形如图2所示。


第五步是通过CPU的运算来求得A/D转换的结果,由第二步结果除以第四步结果,可以得到:
Vref/Vx=Tref/Tx

变换后得:
Vx=(VrefTx)/Tref

上式即A/D转换的结果。
从上式可以看出:A/D转换结果Vx只与Vref、Tx、Tref有关而与I0、Cf无关。这一点非常重要。因为它意味着在转换过程中抑制了恒流源和积分电容温漂所造成的误差,从而保证了该A/D转换器工作的稳定性,这也正是积分式A/D转换器的优点。理论上,该A/D转换器的精度只取决于参考电压的稳定性和单片机定时计数器的精确度,而这两点都相对比较容易保证。当然,这是指在恒流源为理想恒流源的情况,实际上恒流源的特性决定了该A/D转换器的非线性误差,因此,在要求较高的场合,应选用线性好的恒流源集成电路,如LM334等,而在要求不高的情况下则可用图3所示的由分立元件组成的恒流源电路来实现A/D转换。这时积分电容可选择温度系数较小的涤纶电容等。


需要注意的是,由于单片机采用端口查询的方式来检测比较器的输出结果,MCS51系列单片机端口查询命令需要占用2个机器周期,而定时计数器则需要在每个机器周期上加1。因此,在使用时有可能在比较器的输出反转时,程序不能立刻停止定时计数器,而是要等到下一个机器周期运行到CLRTR0语句时才停止。这样,定时计数器的值总为偶数,这一问题如果不在程序中进行处理就会造成误差。解决的方法是增加I0、Cf的积分时间,即把积分时间加大一倍,再把定时计数器的读数即Tref和Tx除以2,这样就能把定时计数器多加了1的误差去掉而得到正确的结果。也就是说,如果要得到12位的分辨率,那么就需要有13位的定时计数器的读数。这种算法虽然牺牲了定时计数器的1位分辨率,加长了转换周期,但是确保了测量结果的准确性。对于有模拟比较器输出跳变中断的单片机如Z86E08等,上述过程处理起来会更简单,可用程序在比较器输出反转时来设定中断,并在中断子程序的开始时停止定时计数器,其读数减去从比较器中断到执行中断子程序之间的机器周期数即为实际积分时间。
由于AT89C2051的定时计数器为16位,所以该A/D转换器的分辨率实际上可以达到15位。调整I0和Cf的值就能改变A/D转换器的分辨率,I0和Cf的取值与分辨率和单片机时钟频率之间的关系,应满足下式:

12×2N+1/(f0 Vmax)≤Cf/IO≤12×216/(f0Vmax

式中Vmax 为最大模拟输入电压,N为分辨率位数,f0为单片机的时钟频率。根据上式,在设计时应保证足够长的积分时间以保证分辩率的要求。同时还应保证积分时间不能超过单片机的最大定时值,以免引起定时计数器的溢出。

3 软件编程

上一页  [1] [2] [3]  下一页


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《单片机内部模拟比较器的应用》相关文章

分类导航
最新更新
热门排行