单片机毕业设计数字电压表问题。

核心提示可能是AD转换器的精度不够,比如说位数只有8位,那么它的精度就会比10位的差一些,这样下来积累起来的误差就会很快显现出来。所以,要想让误差减小,有两个方面的问题需要考虑:1.如果被采集的电压最大值不是很大可以采用精度差一些的AD转换器;2.

可能是AD转换器的精度不够,比如说位数只有8位,那么它的精度就会比10位的差一些,这样下来积累起来的误差就会很快显现出来。所以,要想让误差减小,有两个方面的问题需要考虑:

1.如果被采集的电压最大值不是很大可以采用精度差一些的AD转换器;

2.如果被采集的电压最大值不是很大可以采用精度差一些的AD转换器;

另外还可以从软件上对这些数据进行纠正,因为事先可以对数据进行预测。

单片机C语言,关于数字电压表的初值设计问题

既然你设计有20V的量程,而你的运放电路那块是正向放大,正向放大,最小的放大倍数都是1 ,如果你输入20V电压,运放饱和了, 并且也超过了ADC的输入范围,你的ADC的参考电压是5V,则输入到ADC的电压最大就是5V。可以将运放设计成反向放大。数据由单片机处理再反向过来。还有,如果是反向放大的话,输入信号20V,则超过了运放的电源电压。差模输入电压范围一般是低于运放的电源电压的,共模输入也是一样,你可以看看运放手册就知道了。所以如果要做到20V的输入量程,要么在输入的地方做一级电阻分压,降低输入到运放的电压到<10V以下。要么就提高运放的电源电压,建议正电压>24V。但是做反向放大的注意输入阻抗,一般电压表的输入阻抗越大越好。还有做好输入端的保护,在负输入端加一个22V的稳压管比较妥当,防止过牙烧毁运放。在ADC的输入的地方加一个5.6V的稳压管,防止运放输出过大损坏ADC

只看你的运放这个电路,放大倍数是1, ?11, ?101,是否有误差出现?

你的量程切换这块,考虑2个问题,

1. 如果输入电压变化很快,你的切换将会很多,基本上输入到数码管上,你是看不清楚的,所以在软件上加一个平均滤波算法,使得显示更稳定。当然如果只是做电压表的话,硬件上加一级有源低通滤波器的话就更好,1,可以滤除高频干扰,2,可以使采集的信号变化缓慢,利于采集的稳定和显示。在加上软件滤波算法。可以进一步稳定。

2. 电子开关切换是需要时间的,如果检测到信号过小,需要切换到大量程,先不要断开当前量程开关,而是要先打开大量程开关,再来关闭小量程开关。可以防止切换的一瞬间,因运放处于开环状态,输出一个大尖峰电压到ADC。在硬件上,可以在模拟电子开关和反馈电阻之间接入一个小电容,也可以防止进入开关状态。还有,这个电容还可以起到滤除高频干扰的作用。

代码就不看了。累的很。。。。

好了,打字打的好累,哎,可惜没有分!?

4000是人为设置的,写程序的人考虑的,你问问就可以了,我觉得你设10000也没有什么大碍。

单片机12M晶体,12T模式下计时器加1的时间为1us,所以4000 * 1us 就是4ms,是先有想得到的定时周期,才有的计数器初值的,不要搞混。

 
友情链接
鄂ICP备19019357号-22