打印
[资料分享]

实用于无模拟/数字转换的单片机

[复制链接]
301|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Plantt|  楼主 | 2020-1-22 22:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
实用于无模拟/数字转换的单片机

  本文介绍的模拟,数字转换方法。可以分辨出0.05mV的模拟电压。转换位数超过14位。实用于无模拟,数字转换或转换位数很低的单片机。电路见图所示。

  IC1在捕捉器未打开时,令其(12)脚输出高电平,c4通过v1把电压放至OV.IC2B作为比较器,其(6)脚为测量电压输入端。要求输入电压不低于1.5mY。当C4上的电压为0V时,IC2B的(6)脚电压高于(5)脚,(7)脚输出低电平。


  IC1在捕捉器打开时。令其(12)脚输出低电平。V1截止。此时,C4经R12充电。当C4上电压超过IC2B的(6)脚时。IC2B的(7)脚输出高电平,IC1内的捕捉器立刻捕捉到c4由OV升至超过IC2B的(6)脚时的时间T。IC2B的(6)脚电压升降时。T也跟着升降。反过来,知道时间T就等于知道IC2B的(6)脚电压,从而完成模拟,数字的转换。

  如果C4上的充电电压是直线上升,那么。T与IC2B的(6)脚电压就能成正比。然而。c4上的充电电压是按指数规律上升,所以,T与IC2B的(6)脚电压升降不能成正比。即T与输人电压里非线性关系。如在单片机内做指数运算,很难。

  不过,如果对输入电压范围只取很小的一段。如30mV左右,在此电压范围内得到的T值,就近似成正比关系;输入电压范围取得越小,T值就越接近线性。

  当然。输入电压范围取得小。得到的T值也就小。

  为了能对输入电压微弱的变化就能引起T值很大的变化。用增大C4与R12的充电常数来获得。实践中。发现过量增大c4与R12的充电常数。虽然得到的T值很大。能分辨0.05mY以下的输入电压,但是。噪声也随之增大。表现为数码管上数字的尾数不稳定。

  这种转换,是利用单片机的捕捉器。而对于无捕捉器的单片机,用具有端口电平变化中断的引脚也可以完成。

  本人将附图IC2B的(6)脚配上几只电阻。将其制作成毫伏表,显示范围为20.OmV至350.0mV,此显示与数字万用表显示吻合。来观察它的线性。结果发现与万用表最大误差为0.4mV。电路存在温漂,附图中的D3能起到一点温度补偿作用。

  本文所附的源程序也就是制作毫伏表的程序(可在WWW.mcu-sys.com网站下载)。调试如下:同时按下k1、k2,L1点亮。调整输入电压。数码管上显示的数字应该随之改变。输入20.OmV电压。数码管显示约4500。然后,输入60.OmV。将k1按一下。L2点亮,输入220.0mv.数码管显示约17000,按一下k1.L3点亮,然后,重新上电即可。

  如果显示有“E--”字样,则表示用于捕捉器的时钟源TMR1溢出。编程中,约定的数据最大为32767,所以。在调试时,显示的数字不能超过32767。





使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

637

主题

901

帖子

4

粉丝