数字万用表的设计.docx
《数字万用表的设计.docx》由会员分享,可在线阅读,更多相关《数字万用表的设计.docx(25页珍藏版)》请在冰豆网上搜索。
数字万用表的设计
数字万用表的设计
单片机数字万用表的设计
一、引言
数字万用表是一种多用途电子测量仪器。
它采用数字化测量技术,把实际测量的模拟量,转化为离散的数字量进行输出显示,主要用于物理、电气、电子等测量领域,一般包含电流表(安培计)、电压表(伏特计)、电阻表(欧姆计)等功能,也称为万用计、多用计、多用电表或万用电表。
万用表是电子和电气技术领域必备的测量仪器,用于测量电子电路中的各种物理量(电压、电流、电阻等),常作为基本故障诊断的便携式装置,也有放置在工厂或实验室工作台上作为桌上型装置。
有的万用电表分辨率能达到七、八位数,常用在实验室,作为电压或电阻的基准,或用来调校多功能标准器的性能。
相比传统的指针式万用表,数字万用表具有以下的主要优点:
(1)数字显示直观准确,无视觉误差,读数准确;
(2)测量精度和分辨率都很高;
(3)输入阻抗高,减少对被测电路的工作影响;
(4)电路集成度高,便于组装和维修;
(5)测量功能齐全,测量速率快;
(6)保护功能齐全,有过压、过流保护电路;
(7)功耗低,抗干扰能力强;
(8)便于携带,使用方便。
本次设计的任务是制作一个数字万用表,可实现如下的功能及要求:
(1)可以测量直流电压、直流电流和电阻;
(2)能将测量得到的数值直观、准确地显示出来,并标明相应的单位;
(3)具有超量程时的报警提示。
二、系统硬件分析与设计
数字万用表的基本功能是,能够测量直流电压、电流以及电阻的阻值,数字万用表的基本组成由图1所示,其中,模数转换是数字万用表的核心:
图1.数字万用表的基本原理图
如图2所示,本设计将由以下几大部分组成。
包括:
复位电路、震荡电路、A/D转换和控制、测量值输出、超量程报警和档位选择。
其中,复位电路用于单片机上电复位使系统清零;震荡电路为单片机提供精确的时钟频率,使电路工作更加稳定;A/D转换和控制部分负责模数转换及输入输出信号的控制;测量值输出则负责显示待测物理量大小的数值;超量程报警用于超出量程范围时的报警提示,提醒使用者更换量程。
图2.硬件系统总体设计框图
1、STC的89C52单片机的特点及功能介绍
(1)89C52单片机的主要特点及功能特性
89C52是一款低电压,高性能的8位CMOS型单片机,片内有8k字节以
Flash闪存为介质的,能擦写的只读程序存储器及256字节的随机存取数据存储
器。
89C52型单片机仍属于51单片机家族群,都支持一个共同的指令集
(MSC-51),但各自拥有不同的存储器容量及端口设置等内置资源,使其更符合成本效益的需要,满足特定的场合的生产需求。
该单片机在嵌入式控制应用系统中有着广泛的应用。
89C52具有以下几个主要特点:
a.体积小但集成度高、可靠性较高:
该单片机把各个功模块集成在一块芯片上,内部采用总线结构,将各种信号的通道封装在同一个芯片中,减少了与其他芯片之间的连线,大大提高了可靠性与线路的抗干扰能力。
b•控制能力较强:
一般单片机的指令系统中均有极为丰富的转移指令、存储器读写指令、I/O
口的逻辑操作以及位处理功能,满足工业控制的各种要求。
c.易于扩展:
单片机片内已经具有计算机正常运行时所必需的部件,但仍然预留了很多片外扩展用的引脚(各种总线,并行/串行的输入/输出),易于组成更庞大计算机系统完成更复杂的任务。
d.内部功能较强:
单片机有着各种的内部资源,功能强大。
e.低功耗、低电压,便于生产便携式产品。
下面介绍89C52单片机的主要功能特性:
a.兼容标准的MCS-51的指令系统;
b.内置8k字节可擦写的闪存ROM(Read-OnlyMemory);
c.4组共32个双向I/O口;
d.256X8位大小的内部RAM;
e.3个16位可编程定时/计数器中断;
f.支持3.5-12/24/33MHZ多种时钟频率;
g.1个全双工可编程的UART(UniversalAsynchronous
Receiver/Transmitte)串行口;
h.6个中断源,4级优先级中断结构;
i.2个W/R(Write/Read)读写中断口,3级加密位;
j.低功耗空闲和掉电节省模式,带有软件设置睡眠及相应的唤醒功能;
k.有PDIP及PLCC两种封装形式。
(2)89C52单片机的引脚功能
图3.89C52单片机微架构图
帥
oCfT2EX)Pi.1C
Pl总匚
PiJE
Pl4-C■MOSIrPlSC■:
MISt>PiB匸(3GKJP1.7CRSTC冋⑪际匚(TXNP5.1EilMTC'*P*也匚i.irrm唤匚iTOJPS4.匚iTijpssn怖际L:
(RRPstCKTAL2CXT*L1I
QMOIZ
nvcc
□PO.OfADO)
□FOJ苗列
□PO£
□FOJtADO)
□?
0.4(W4j
□PGS(ADS)
□F0*[W6)
□F&.7(AD冲
□E^VPP
□AL&PR^
□PSER
□P2.7(A14
JP2fi(*1斗
□P2ft(*13.
:
F24(A1£)
7Pa1(An?
7P2,1(AS)
3PaJOj*s)
XTAL2:
振荡器反相放大器的输出端。
VCC:
接电源+5V。
GND:
接地端。
表2.P3口的第二功能
引脚号
功能特性
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时器0外部输入)
P3.5
P3.6
P3.7
T1(定时器1外部输入)
WR(外部数据存储器写有效)
RD(外部数据存储器读有效)
2、模数转化电路
实际的物理量都是幅值大小连续变化的模拟量,或称为模拟信号。
旧式的指针万用表可以直接对模拟电压、电流进行测量并显示。
对于数字万用表,则需要把模拟量(多是电压量)转换为数字信号的形式,通过相关的处理(包括存储、传输、计算等)再进行显示。
数字信号是量化的模拟信号,若将最小的量化单位记为△,那么数字信号的大小一定为△的整数倍。
该倍数可以用二进制数码表示,但为了便于直观地读数,通常把数码进行译码后,由数码管或液晶屏幕显示。
当模拟信号经过量化之后,还需要进行编码处理,是用二进制码组表示固定电平的量化值。
目前普遍使用的是非线性的8位二进制编码,可以将输入的
幅度范围分成256个量化级。
由此可知,数字万用表测量的核心步骤是模数转换以及译码显示,其中模数转换又可以分为量化及编码两大步骤。
(1)PCF8591芯片的主要功能特征
PCF8591是一个单片集成、单独供电、低功耗及8位CMOS工艺制造的AD-DA器件。
PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。
PCF8591的3个地址引脚A0、A1和A2可用于硬件地址编程。
在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。
图5.PCF8591的内部原理图
PCF8591芯片的引脚功能
aimo[T
U
16
AIN1叵
AOUT
AIN23
14
VREF
A1N34
PCF3591P
巨
AGND
AC5
\l2
EXT
A1G
SCI
Vss[T
SDA
图6.PCF8591的引脚图
图6所示为PCF8591的引脚图。
AINO〜AIN3:
模拟信号输入端;
A0〜A2:
引脚地址端;
VDD、VSS:
电源端(2.5-6V);
SDA、SCL:
I2C总线的数据线、时钟线;
OSC:
外部时钟输入端,内部时钟输出端;
EXT:
内部、外部时钟选择线,采用内部时钟时EXT接地;
AGND:
模拟信号地;
AOUT:
数模转换输出端;
VREF:
基准电源端。
图7.模数转换部分原理图
图7所示为模数转换部分。
PCF8591芯片作为ADC芯片,使用I2C总线与单片机通讯,SCL是串行时钟,SDA是串行数据线,输出转换后的数字量。
待测模拟量从AINO进入,其余模拟输入口因本设计不需使用而接地。
AGND端
是模拟地,接上0Q电阻,而VDD接上接地电容,有效分割模拟地和数字地,减少高频数字信号的干扰。
(2)多量程数字电压表设计
图8.分压电路的原理
如图8所示,在基准数字电压表头前加上一级电压信号衰减电路(分压电
路),可以扩展直流电压测量的量程。
图中,V。
为输出电压,基准电压表的量程
为2V,四个分压电阻串联值为10MQ,则第4个开关接入时输入电压Vi可以达到2000V,同理可得其他档位量程分别为2V、20V、200V、200V。
但基于测试安全性,第4档测试电压不应高于500V。
图9.电压衰减电路原理图
如图9所示,R1和R2是分压电阻,其阻值均为按档位需要计算后所得,可以将20V的直流电压衰减为2V输出,配合20V的直流电压挡。
(3)多量程数字电流表设计
图10.分流电路的原理
如图10电路所示,万用表测量电流的原理是,用合适的取样电阻,将待测的电流量根据欧姆定律转换为电压量,才能进行测量。
若取样电阻阻值为R,根据欧姆定律,可以获得被测电流Ii的值。
在基准数字电流表头前在加上电流信号衰减电路(分流电路),即可实现直流电流测量量程的扩展。
如上图所示,四个电阻串联值是1kQ,若选取第1挡,并使输出电压不超过2V,即可计算出Ii必须小于等于2mA。
同理可计算出其他
图11.电流衰减电路原理图
如图11所示,R15和R16是分流电阻,其阻值均为按档位需要计算后所得,可以将2A的直流电流衰减为200mA,并将电流变换成电压以供模数转换器测量,配合2A的直流电流档使用。
(4)电阻测量设计
丄
图12.电阻-电压变换电路的原理
数字万用表通常采用电阻-电压变换电路来测量电阻(欧姆档)。
如图7所示电路,VDzi是2.7V稳压管,是一种用特殊工艺制造的硅半导体二极管(康华光,2006)。
VTi、VT2、VDZ1组成恒流源,保持V的值恒定不变。
V的值等于Vi电压减去Vdzi上的电压,约为2.3V。
VT3的基极电压亦保持不变,若VT3基极和发射极之间的电压为0.5V,则可知V2的值恒为2.8V左右,并可得出VT3集电极电流的IC3也是恒定的。
其中,接在VT3的发射极上的一组电阻是基准电阻,按档位不同分别是:
2.2kQ、22kQ、220kQ、2MQ。
通过选择不同的档位开关,可以得到恒定的、不同倍率的电流IC3,它的电流分别是1mA、0.1mA、0.01mA、0.001mA。
Rx是待测电阻,接在VT3的集电极上,当恒定电流IC3流经时,产生电压Vx,测量Vx则可推算出待测电阻的阻值。
Rw用于调整恒流源IC3的大小,VD3作为保护管,当电阻档所加的电压过高时,VD3对VT3有保护作用。
图13.电阻-电压变换电路原理图
图13所示电路为电阻测量电路。
其中,电阻R13和R14构成一组基准电阻。
电路工作时,PNP管Q3的集电极电流IC3是恒定的,R18和R19负责调节IC3的大小。
通过接入不同的电阻(R20或R21),可获得不同的倍率的集电极电流IC3,电流通过待测电阻Rx形成电压Vx。
通过测量Vx即可获得待测电阻的阻值。
经过计算,可知R20分支可测量的最大电阻值为2kQ,R21分支为20kQ。
而P4端则是作为待测电阻的接口。
3、电源模块
图14.电源部分原理图
如图14所示,POWER端接外部直流电源,另外可以利用USB(UniversalSerialBus)端口直接提供5V电压。
7805是三端稳压集成芯片,起稳压输出的作用,通过外围电路的组合,可以稳定输出5V直流电压。
图中的LED灯可以
作为电源电路开始工作的提示器。
4、报警模块
图15.报警提示部分原理图
图15所示为蜂鸣器驱动电路。
当出现测量值超出预定量程时,蜂鸣器会发出“嘀”声报警。
其实质是通过编程使单片机的引脚输出低电平,使Q1导通,
蜂鸣器发声。
5、单片机最小系统
图16.单片机最小系统
如图16所示,本次设计采用STC公司的89C52型单片机作为控制芯片,并采用RC上电复位电路用于单片机复位,配合频率为11.0592MHz的外部震荡电路,作为外部时钟信号,提供单片机片内各种操作的时间基准(张景璐等,2010)。
P1.0-P1.3作为按键的输入线,P1.4及P1.5分别作为ADC芯片I2C总线的时钟线和数据线。
P0口作为1602液晶的数据总线,P2.0和P2.1作为1602液晶的控制线,另外P3.7用作控制蜂鸣器。
6、显示输出模块
图17.显示输出部分原理图
如图17所示,采用1602液晶作为输出显示器,读数更加准确和直观,能显示比数码管更丰富的信息。
其中RS和RE为液晶的控制线,DB0-DB7为液晶的数据线,均与单片机的相应I/O口相连。
Vo端接上一个10k的电位器再接地,通过调节电位器,可以调节液晶字符显示的明暗度,防止“鬼影”现象的出现。
7、开关及量程选择模块
1LI
I;[I
图18.开关及量程选择部分原理图
如图18所示,拨码开关S1的左侧三个端口分别接上分压器、分流器、电阻测量电路,使用时拨动不同开关,连通对应的电路,测量不同的物理量。
而下面的4个按键,负责通知单片机当前所选的待测物理量及档位,改变液晶显示器数值的输出方式。
&电路工作描述
将相应的控制程序写入单片机是使电路各部分能协调工作,完成既定任务
的前提。
通过按钮选取要测量的物理值(电压、电流或电阻),然后通过选取合
适的量程进行测量,以获得更准确的测量数据。
单片机通过I2C总线控制
PCF8591芯片,完成A/D转换,并通过该总线读取其输出的数据。
单片机根据所选档位和量程对数据进行处理后,送至1602液晶处进行输出。
若发生待测信号超出量程的情况,蜂鸣器会立即报警,提示使用者切换更高的量程进行测量。
另外,通过单片机的复位按钮,可以对系统进行清零。
三、系统软件设计
本系统软件设计的思路是:
使用C语言,将各部分的驱动程序(1602液晶、模数转换器、按键、蜂鸣器等)分别编写在不同子文件中,减少主文件的复杂度,增加可读性。
然后,在主函数中,先初始化液晶显示器,然后进入大循环。
在大循环中,读取模数转换芯片转换后数据,并根据按键的输入情况,确定物理量和量程,如果发生超出量程的情况,调用蜂鸣器进行报警,否则对获取的数据进行一定处理,最后发送至液晶显示器进行输出。
主要程序模块流程图如下所示
图20.电压测量流程图
开始
电流量程选择
选择200mA档位
选择2A档位
►结束
kj
图21.电流测量流程图
图22.电阻测量流程图
四、仿真测试
1、功能仿真
(1)电压表仿真
如图23所示,当输入的模拟直流电压为1.6V时(2V电压档),系统测量后,液晶显示输出电压值为1.6V。
LCD1
LC01SE
图23.2V电压表仿真图
如图24所示,当输入的模拟直流电压为16V时(20V电压档),系统测量后,液晶显示输出电压值为16V。
图24.20V电压表仿真图
(2)电流表仿真
如图25所示,当输入的模拟直流电压为180mA时(200mA电流档),系统测量后,液晶显示输出为180mA。
LCD1
图25.200mA电流表仿真图
如图26所示,当输入的模拟直流电压为1.8A时(2A电流档),系统测量后,液晶显示输出为1.8A。
LCD1
LCD电
图26.2A电流表仿真图
(3)欧姆表仿真
如图27所示,当接入的电阻阻值为1.5k@时(2kQ欧姆档),系统测量后,液晶显示输出阻值为1.39kQo
LCD1
1,35k
>kHi«U*O-a=aA-nas
ft4
他■
店
+i
舟
丄
图27.2kQ电阻表仿真图
如图28所示,当接入的电阻阻值为15kQ时(20kQ欧姆档),系统测量后,液晶显示输出阻值为13.9kQ。
LGD1
13.B?
k
图28.20kQ电阻表仿真图
2、实际电路
本次设计电路走线较多且比较复杂,双面板比单片面板更适合用在复杂的电路上。
如图29所示,上层为红色走线,底层为蓝色走线。
1
图29.PCB布线图
图30.PCB制版成品
图31.成品外观
3、测试结果
表3.电压测量数据
稳压源输出值(V)
测量值(V)
误差(%)
0.15
0.15
0
0.55
0.51
-7.3
1.00
0.97
-3
1.50
1.50
0.0
1.70
1.70
0.0
1.90
1.86
-2.1
3.30
3.52
+6.7
5.00
4.98
-0.4
7.55
7.60
+0.7
9.50
9.68
+1.9
12.50
12.37
-1.0
15.0
14.75
-1.7
表4.
电流测量数据
稳压源输出值(mA)
测量值(mA)
误差(%)
55
56
+1.8
70
72
+2.9
80
81
+1.3
120
119
-0.8
180
193
+3.9
表5.电阻测量数据
标称值(kQ)
测量值(kQ)
误差(%)
1
0.92
-8.0
2
1.95
-2.5
2.7
2.54
-5.9
3.3
3.1
-6.1
4.7
4.56
-3.0
10
9.18
-8.2
13.3
12.9
-3.0
五、总结
经过了一个多月的尝试和努力,终于完成了本次数字万用表的设计。
数字万用表一直是电子设计领域最重要且最基本的测量仪器之一,在电子设计的排错和调试等方面起着非常重要的作用。
本次的设计的数字万用表,能体现数字万用表的基本原理,实现了万用表最基本的几个功能,能测量20V以下的直流
电压,200mA以下的直流电流及20kQ以下的电阻值。
经过初步测试,直流电压测量值的误差均在8%以下,在个别的区段,如1.5V到2V之间,误差较小,甚至可以完全准确地测出稳压源的输出电压。
直流电流测量值的误差在0到
200mA区段总体上较低,均不超过4%。
但是,一小部分电路设计在方面出现了问题,仿真的理论结果与实际电路工作时的效果相差较大,测量200mA以上
的电流时,会出现电源短路的问题,无法安全地进行测量。
在电阻值的测量方面,误差稍大,最大的有8.2%的误差,但仍在可接受范围之内。
经过分析,导致测量值存在误差的原因是多样的,可能是电路中的衰减电阻阻值不够准确,也有可能是没有屏蔽好高频数字信号的干扰,造成了一定的误差。
另外,在电阻-电压变换电路中,使用了定值的电阻而非电位器,不能调整三极管的集电极电流,未能使电路工作在最佳的状态,是造成电阻测量误差稍大的重要原因之一。
六、附录
图32.整体电路原理图
——|X
——I_X1ZI—!
■