电压表设计简介五、综合调试一、数字电压表的特点二、设计任务及任务分析三、硬件设计四、软件设计一、数字电压表的特点(1)显示清晰直观,读数准确(2)准确度高(3)分辨率高(4)测量范围宽(5)扩展能力强(6)测量速度快(7)输入阻抗高(8)集成度高,微功耗(9)抗干扰能力强二、设计任务及任务分析以单片机为核心的电压测量系统,利用A/D转换芯片实现直流电压的测量和显示任务要求模块设计芯片选择实现方法M1M2M4M32.1任务要求实现对0-20V直流电压值的测量.精度达到0.05V以上200MV、2V、20V档位的自动切换使用液晶屏幕LCD1602进行显示12342.2模块设计数据输入模块三路电压值通过模拟开关的选择一路合适的电压送A/D转换器中进行转换。采用逐次逼近式A/D转换器ADC0809,它性能稳定,转换出8位并行数据,方便检测.89S52将A/D的并行信号处理后,送到P0端中,连接LCD1602用于显示。单片机控制模拟开关进行自动换档。采用LCD1602液晶屏显示输入电压值,连接线较少,控制方便,显示简洁且可控性强。A/D转换模块数据控制及处理显示模块2.3芯片选择AT89S527805LM32474HC4051液晶显示屏,可显示数字和字符将模拟量转化为数字量稳压源,输出5V的电压值带有真差动输入的四个运算放大器主控制器,用于控制和处理数据8通道模拟多路选择器/多路分配器,带有3个数字选择端LCD1602ADC0809上电复位AT89S52ADC0809LCD1602显示附加功能电源电路2.4实现方法输入A/D转换单片机控制显示电压值输入电压值,模拟开关默认为20V档,A/D送出并行的8位数据,单片机通过运算将其转换为0-255之间的某数,此时再进行档位判断,反馈到模拟开关选择通路,同时LCD显示相应量程的电压值。三、硬件设计3.1数据输入模块原理图3.2A/D转换模块原理图ST=0;ST=1;delay(5);ST=0;delay(5);while(EOC==0);OE=1;getdata=P1;delay(5);OE=0;3.3控制模块原理图writesmh(5,b);writesmh(6,c);writesmh(7,13);//13为小数点writesmh(8,d);writesmh(4,a);3.4显示模块原理图200mv显示子程序temp=(getdata*1.0/255)*2000;a=temp/1000;b=temp/100%10;c=temp/10%10;d=temp%10;m=3;writesmh(5,b);writesmh(6,c);writesmh(7,d);writesmh(8,12);//12为空格writesmh(4,a);3.5显示模块原理图2V显示子程序temp=(getdata*1.0/255)*2000;a=temp/1000;b=temp/100%10;c=temp/10%10;d=temp%10;m=2;writesmh(5,b);writesmh(6,13);writesmh(7,c);writesmh(8,d);writesmh(4,a);3.6显示模块原理图20V显示子程序temp=(getdata*1.0/255)*2000;a=temp/1000;b=temp/100%10;c=temp/10%10;d=temp%10;m=1;四、软件设计子程序主程序初始化定义主函数•Descriptionofthecontents•Descriptionofthecontents转换子程序中断子程序显示子程序利用KEIL软件和PROTEUS软件对程序进行编写、编译、修改、仿真等,生成HEX文件后通过烧录机将程序烧入AT89S52中。N开始4.1主程序流程图初始化量程转换等待下一次数据显示电压值处理数据AD转换选择20v档Y模拟开关选择档位4.2子程序介绍显示子程序每次电压采集后,CPU将数据送到LCD显示出不同档位电压值的显示。初始化定义对A/D和单片机的各个端口定义及程序的初始化定义中断子程序利用INT1口中断产生12.5KHZ的频率输出给ADC0809的CLK端转换子程序根据转换时序定义A/D的各端口的ALE,ST,OE等,使得转换顺利进行4.3自动换挡程序1if((s1==0)&&(s2==0)&&(temp200)){_v2;m=2;}2elseif((s1==1)&&(s2==0)&&(getdata26)){_v0_2;m=3;}3elseif((s1==0)&&(s2==1)&&(getdata254)){_v2;m=2;}4elseif((s1==1)&&(s2==0)&&(getdata254)){_v20;m=1;}五、综合调试输入0-20V的电压值,记录显示值和真值对数据进行绝对误差和相对误差的计算对误差进行分析电压表的功能拓展测量误差分析结论拓展5.1电压值测量测量值真值相对误差绝对误差46.1mv49.6mv3mv6%1173mv1175mv2mv0.17%1783mv1785mv2mv0.11%2.27v2.28v0.02v0.88%4.02v4.04v0.02v0.49%6.24v6.25v0.01v0.16%8.39v8.39v0010.15v10.15v0012.28v12.28v0014.51v14.50v0.01v0.069%15.36v15.34v0.02v0.13%17.17v17.17v0019.10v19.08v0.02v0.1%5.2误差分析0-200mv通过电阻衰减转换为0-5v的电压从X0=X输入到AD,其精度为:200/255=0.7843mv20mv-2000mv通过运放转换为0-5v的电压从X1=X输入到AD,其精度为:1800/255=7.059mv2v-20v通过运放转换为0-5v的电压从X2=X输入到AD,其精度为:18/255=0.07059v200mv档2000mv档20v档各档的电压值从初值到终值的转换与74HC4051模拟开关的输出成正比5.3结论200mv档:误差消除方法:实验修正多次测量发现:0-200mv内的误差呈线性增长,可进行修正,修正方程为:y=0.93388x,y为修正值,x为测量值20v档:误差范围在精度内该范围内测的最大误差为20mv,远小于70.59mv,满足测量要求2v档:误差范围在精度内该范围内测的最大误差为2mv,远小于7.059mv,满足测量要求5.4电压表的拓展本次设计基本达到了任务书的要求,在测量精度方面通过调试也有了提高,基于本次设计还可以做以下功能拓展:2.LCD1602显示的电压值可与PC机进行通信,便于实现远程控制1.ADC0809可实现8通道数据采集,控制其A,B,C端即可实现实物图电路焊接仿真电路图感谢答辩组老师和指导老师!