在电量的测量中,电压、电流和频率是最基本的三个被测量,而电压的测量最为常见,现在学生使用的数字万用表能够测量多种电量,并且具有一定的精度,使用方便。为了让学生更好地了解数字电压表的工作原理,从而激发他们对单片机课程的学习兴趣,本文从软硬件设计、proteus仿真、制作实物、误差分析几个方面着手,阐述数字电压表的工作原理、数据的程序处理方法、数字信号软件滤波原理。
硬件电路设计由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软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。但要真正实现电路对电压的测量和显示的功能,还需要有相应的软件配合,才能达到设计要求。
根据模块的划分原则,将该程序划分初始化模块,a/d转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图2所示。
整个程序设计的核心在于对a/d转换的数据进行处理,包括数字滤波处理,数据小数位数的处理等。a/d转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元。
显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得led显示的比较均匀,又有足够的亮度,需要设置适当的扫描频 率,当扫描频率在70hz左右时,能够产生比较好的显示效果,一般可以采用间隔10MS对led进行动态扫描一次,每一位led的显示时间为1MS。
由于单片机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%以下,能够满足大部分场合应用的需要,如采用实验数据归纳的方法,将得出的数据绘制成曲线,再使用更为合理的算法,将得到更加准确的结果。
利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。
a)把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。
b)把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。
c)把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。
d)把“单片机系统”区域中的P3.1与“模数转换模块”区域中的OE端子用导线相连接。
e)把“单片机系统”区域中的P3.2与“模数转换模块”区域中的EOC端子用导线相连接。
f)把“单片机系统”区域中的P3.3与“模数转换模块”区域中的CLK端子用导线相连接。
g)把“模数转换模块”区域中的A2A1A0端子用导线连接到“电源模块”区域中的GND端子上。
h)把“模数转换模块”区域中的IN0端子用导线连接到“三路可调电压模块”区域中的VR1端子上。
i)把“单片机系统”区域中的P0.0-P0.7用8芯排线连接到“模数转换模块”区域中的D0D1D2D3D4D5D6D7端子上。
这是由ICL7129单片CMOSIC构成的四位半数显电压表,配有矩阵多路扫描(100Hz)LCD(液晶显示)数显器,特别适用于制作高分辨率袖珍式万用表。具有自动调零功能而不需要外接调零电容,仅需要9V电源(电池),耗电流仅1mA,变换速度为2次/秒,直接输入模拟电压的量程为正负200mV,分辨率最高为10uV,具有电源电压低于7.2V时的识别报警及显示功能。可利用OR/UR端实现自动量程转换功能,共模抑制比为11dB。
由HI7159A和单片机8031等元件构成的智能化数字电压表电路如图所示。该电路内部采用逐次累加式积分、数字调零、低噪声BIMOS等先进技术。在51/2位工作模式下最大计数值为199999,准确度为±0.005%。
利用单片机AT89C51与ADC0808设计一个数字电压表,将模拟信号0~5V之间的电压值转换成数字量信号,以两位数码管显示,并通过虚拟电压表观察ADC0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。
数字电压表电路组成框图如图1所示。
本设计中需要用到的电路有电源电路、模/数转换电路、单片机控制电路、显示电路等。设计中需要用到的芯片有AT89C51单片机、ADC-0808、74LS74、LED数码管等。
待测电压输入信号在ADC0808芯片承受的最大工作电压范围内,经过模/数转换电路实现A/D转换,通过单片机控制电路进行程序数据处理,然后通过七段译码/驱动显示电路实现数码管显示输入电压。
硬件电路原理图如图2所示。
利用单片机AT89C51与ADC0808设计一个数字电压表,将模拟信号0~5V之间的直流电压值转换成数字量信号0~FF,以两位数码管显示。Proteus软件启动仿真,当前输入电压为2.5V,转换成数字值为7FH,用鼠标指针调节电位器RV1,可改变输入模/数转换器ADC0808的电压,并通过虚拟电压表观察ADC0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。
在Proteus软件中设置AT89C51单片机的晶振频率为12MHz。本电路EA接高电平,没有扩展片外ROM。
A/D转换器采用集成电路ADC0808。ADC0808具有8路模拟量输入信号IN0~IN7(1~5脚、26~28脚),地址线C、B、A(23~25脚)决定哪一路模拟输入信号进行A/D转换,本电路将地址线C、B、A均接地,即选择0号通道输入模拟量电压信号。22脚ALE为地址锁存允许控制信号,当输入为高电平时,对地址信号进行锁存。6脚START为启动控制信号,当输入为高电平时,A/D转换开始。本电路将ALE脚与START脚接到一起,共同由单片机的P2.0脚和WR脚通过或非门控制。7脚EOC为A/D转换结束信号,当A/D转换结束时,7脚输出一个正脉冲,此信号可作为A/D转换是否结束的检测信号或向CPU申请中断的信号,本电路通过一个非门连接到单片机的P3.2脚。9脚OE为A/D转换数据输出允许控制信号,当OE脚为高电平时,允许读取A/D转换的数字量。该OE脚由单片机的P2.0脚和RD脚通过或非门控制。10脚CLOCK为ADC0808的实时时钟输入端,利用单片机30引脚ALE的六分频晶振频率得到时钟信号。数字量输出端8个接到单片机的P0口。
利用单片机系统与模数转换芯片、显示模块、报警电路等的结合构建数字电压表。由于单片机的发展已经成熟,利用单片机系统的软硬件结合,可以组装出许多的应用电路来。此方案的原理是模数(A/D)转换芯片的基准电压端,被测量电压输入端分别输入基准电压和被测电压。模数(A/D)转换芯片将被测量电压输入端所采集到的模拟电压信号转换成相应的数字信号,然后通过对单片机系统进行软件编程,使单片机系统能按规定的时序来采集这些数字信号,通过一定的算法计算出被测量电压的值。最后单片机系统将计算好的被测电压值按一定的时序送入显示电路模块加以显示,如果电压值大于设定值就报警。电路原理框图如图1所示。
图1 系统原理框图
ADC0808与单片机的接口
ADC0808与AT89C51单片机的连接如图2所示,从图中可以看到,把ALE信号与START信号接在一起了,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿启动转换。模拟通道选择信号A、B、C分别接P3.4、P3.5、P3.6,此外,通道地址选择以P3.1作写选通信号。
数码管与单片机接口如图3所示,从图中可以看出,单片机的P1口接数码管的七段发光管,P2.0—P2.3段选码。
当测定值超出预设值5V时,发出报警声音并亮红灯,提示超出量程。报警系统使用SPEAKER发出蜂鸣声来仿真。报警系统与单片机接口电路如图4所示。
CD4051是8通道数字控制模拟电子开关,有3个二进控制输入端A、B、C和INH输入,具有低导通阻抗和很低的截止漏电流。幅值为4.5~20V的数字信号可控制峰值至20V的模拟信号。当INH输入端=“1”时,所有的通道截止。三位二进制信号选通8通道中的一通道,可连接该输入端至输出。
量程自动转换电路图如图1所示。
数字电压表采用MSP430F427为主处理器,除包括单片机最小系统的主控制芯片、3.3V电源电路、16MHz时钟电路(内部带有看门狗)、外部复位电路外,主要选用其信号采集、LCD显示、按键电路、JTAG接口电路、输出控制接口电路等模块组成。系统硬件电路如图2所示。
硬件电路设计主要包括:89C51单片机系统,A/D转换电路,显示电路。测量最大电压为5V,显示最大值为5V。图1是数字电压表硬件电路原理图。
本设计硬件电路大体可分为单片机最小系统电路、稳压电路、A/D转换电路及数码显示电路,其原理图如图1所示,由于单片机具有体积小、重量轻、价格便宜、控制灵活等特点,所以本系统采用AT89C52单片机作为控制核心器件,ADC0809作为模拟信号转换为数字信号用。
联系客服