欢迎光临~湖南智能应用科技有限公司-hniat.com
语言选择: 中文版 ∷  英文版

智能测试

一种简易数字电压表的设计与制作

摘要:本文介绍一种基于51单片机的简易数字电压表的设计制作,该设计主要由三个模块组成:a/d转换模块,数据处理模块及显示模块。a/d转换主要由芯片adc0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片at89c51来完成,其负责把adc0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示。数字电压表测量分为ov-1.999v,2.000v-19.99v,20.00v-199.9v,200.0v-1999v四个档位,并通过一个四位一体的7段数码管显示出来。

1.引言

在电量的测量中,电压、电流和频率是基本的三个被测量,而电压的测量为常见,现在学生使用的数字万用表能够测量多种电量,并且具有一定的精度,使用方便。为了让学生更好地了解数字电压表的工作原理,从而激发他们对单片机课程的学习兴趣。本文从软硬件设计、proteus仿真、制作实物、误差分析几个方面着手,阐述数字电压表的工作原理、数据的程序处理方法、数字信号软件滤波原理。

2.硬件设计

硬件电路设计由4个部分组成:a/d转换电路,at89c51单片机系统,led显示系统、测量电压输入电路。硬件电路设计框图如图1所示。其总设计框图如下:

此电路的工作原理是:+5v模拟电压信号通过变阻器vr1分压后由adc08008的in0通道进入(由于使用的in0通道,所以adda,addb,addc均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道d0-d7传送给at89c51芯片的p0口,at89c51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位led,同时它还通过其四位i/o口p2.0、p2.1、p2.2、p2.3产生位选信号控制数码管的亮灭。

简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用pROTEUS软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。

3.软件设计

根据模块的划分原则,将该程序划分初始化模块,a/d转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图2所示。

整个程序设计的在于对a/d转换的数据进行处理,包括数字滤波处理,数据小数位数的处理等。a/d转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元。

显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得led显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70hz左右时,能够产生比较好的显示效果,一般可以采用间隔10MS对led进行动态扫描,每一位led的显示时间为1MS.

4.结果及误差分析

由于单片机at89c51为8位处理器,当输入电压为5.00v时,adc0808输出数据值为255(ffh),因此单片机的数值分辨率为0.0196v(5/255)。这就决定了电压表的分辨率只能到0.0196v,从表1可看到,测试电压一般以0.01v的幅度变化。

当in0口输入电压值为13.5v时,显示结果如图3所示。测量误差为0.1v.

从表1可以看出,简易数字电压表测得的值基本上比标准电压值偏大0-0.01v,这可以通过校正adc0808的基准电压来解决或者通过软件校准的方式来降低误差。因为该电压表设计时直接用5v的供电电源作为电压,所以电压可能有偏差。当要测量大于5v的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。

从测试的数据看,其误差均控制在1v以下,而相对误差均在1%以下,能够满足大部分场合应用的需要,如采用实验数据归纳的方法,将得出的数据绘制成曲线,再使用更为合理的算法,将得到更加准确的结果。(作者:帅江华,李志宜)

关闭
用手机扫描二维码关闭
二维码