基于51单片机的数字万用表设计说明Word格式.docx
- 文档编号:16772213
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:21
- 大小:625.11KB
基于51单片机的数字万用表设计说明Word格式.docx
《基于51单片机的数字万用表设计说明Word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字万用表设计说明Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
数字万用表简介
数字万用表(DMM)亦称数字多用表,是目前在电子检测与维修工作中最常用、最得力的一种工具类数字仪表。
它采用的数字化测量技术,通过对连续的模拟量(直流输入电压)的采样将其转换成不连续、离散的数字量,并以十进制数字形式显示出来。
由于部采用了运放电路,阻可以做得很大,往往在1M欧或更大(即可以得到更高的灵敏度)。
这使得对被测电路的影响可以更小,测量精度较高。
传统的指针式万用表功能单一、精度低,已经不能满足数字化时代的需求,而采用单片A/D转换器构成的数字万用表,具有读数方便、精度高,测试功能强、集成度高、微功耗、抗干扰能力强等特点,另外带有单片机的智能型数字万用表更是具有自动校准,自动测量,自动数据处理和实时通讯等多种功能。
目前,数字万用表已被广泛用于电子与电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。
与此同时,由DMM扩展而成的各种通用与专用数字仪器仪表,也把电量与非电量测量技术提高到崭新水平。
第二章电路设计
§
2.1系统整体方案选择
系统整体框图如下:
系统框图
下图为系统整体硬件电路:
总原理图
2.2AD转换电路
本设计采用直通方式如下图:
AD0808连接图
其中v0,v1,v2,v3分别作为待测信号,通过ABC选通并输入AD。
2.3信号与其处理
2.3.1直流电压测量电路:
由于待测电压围太大,高的可到500v,而AD只能参考输入为+-5V,所以对于未知信号,可以先衰减再测量。
信号分压与放大电路
由于输入信号幅值未知,所以考虑安全因素,尽可能的将待测信号Vx经电阻分压后输入放大器进行围判断。
因此,应尽可能大的使用大功率的分压电阻。
V1是VI经U3放大十倍后的信号,v2是VI经U5放大后的信号。
V0即为VI。
VI是待测信号衰减一百倍的信号,将VI输入给电压比较电路,进行围判断。
电压比较阵列电路
衰减后的信号经过以上比较器,可以大致划分为:
0—5V,5—50V和50V以上等三个围,即可以组成1档,10档,100档三个档位,将比较器的结果输入到单片机中,进行判断处理,当比较器C输出为逻辑0时,可以确定待测围为0—5V,将v2送入AD测量。
当比较器C输出为1,比较器B输出为0时,可以确定待测信号围为5—50V,将v1送入AD测量。
当比较器C和B输出为1时,可以确定待测信号围为50v以上,将v0送入AD测量。
在处理数据时候,分别对转换结果乘以1,10和100,即可还原真实值。
大电压衰减测量:
经单片机判断后,需对AD0808的ABC引脚进行操作,选择通道输入。
对于0—5V信号,选择v2作为输入
对于5—50V电路,选择v1作为输入
对于50V以上的信号,选择v0作为输入
对于50V以上信号可将输入比较器阵列的VI信号作为输入进行测量。
2.3.2交流电压测量电路:
交流/直流转换电路
方案一:
半波整流电路。
利用二极管的单向导电性,可以很容易的得到直流电压,且能满足设计要求。
方案二:
采用真有效值转换芯片,性能参数方面也都能满足设计要求,并且还能测量非正弦波,但一般真有效值转换芯片价格比较贵。
鉴于此,故采用方案一。
如图所示所示,这个电路是利用低漂移单运算放大器741与二极管D1N4148组成平均值精密半波整流电路。
该电路可避免二极管在小信号整理时所引起的非线性误差,使交流/直流转换电路的输入电压与输出电压成线性关系,适合测量40-400Hz的正弦电压,测量准确度优于±
1%。
交直流转换电路
仿真图:
精密半波检波仿真结果
将信号进行半波整理,然后进行峰值检波,求出信号峰值,根据波峰因素等电路原理,进行处理,通过软件方式,求出有效值,进行显示。
2.3.3电流/电压转换电路
如图2.3所示,普通模拟开关可以通过的电流很微小,所以通过单片机控制继电器来控制线路导通断开,将被测电流信号(0-500mA)转换为相应的电压信号(0-200mV),然后经过OP07将信号放大10倍,最后输入A/D转换器MC14433的Vin端。
1A/250V的熔丝管FU为限流保护电路,两个二极管1N4007构成保护为过压保护电路。
阻值为90Ω、9Ω的电阻采用误差为±
0.5%的精密金属膜电阻,而阻值为0.4Ω、0.6Ω的电阻通过的电流很大必须采用误差为±
0.5%的精密绕线电阻。
图2.3电流/电压转换电路图[1]
2.3.4电阻/电压转换电路
利用运算放大器采用反相比例运算的方法进行测量。
该方法实现比较简单,且能满足设计要求。
采用分压原理,利用流过标准电阻R0和被测电阻Rx的电流基本相等来得到电压与电阻的关系,但当电阻很小时电流过大。
如图2.4所示。
稳压二极管1N4730A的稳压值为3.9V(即B点处电压值),采用运算放大器反相比例运算的方法,将B点处的电压值衰减到2V(即A点处电压值),单片机通过控制模拟开关MAX4618(超低导通电阻)选择适当的标准参照电阻R1,再利用运算放大器反相比例运算的方法,将被测电阻RX的阻值转换成与之相对应的电压量,输入A/D转换电路。
电阻/电压转换电路的计算公式:
UA/R1=Uin/Rx,推得:
Rx=R1*Uin/UA。
图2.4电阻/电压转换电路图[2]
[1][2]图参考经济学院娇毕业论文数字万用表设计
2.4单片机控制与显示电路
2.4.1单片机与其外电路
单片机与其外围电路主要是为系统提供稳定的时钟源和复位操作,详细电路如图:
单片机与其外围电路
2.4.2显示电路
4511用于对输出的数字信号译码,传送给4个共阴数码管,以进行动态显示。
2.5报警与电源端电路
2.5.1报警电路:
蜂鸣器报警电路
单片机经判断后,如果超过待测信号围(即比较器ABC输出为111),用P3^7脚控制三极管的截止与开通,从而引发蜂鸣器开启,实现报警。
2.5.2直流正负电压判断电路:
正负电压判断电路
将VI输入过零比较器比较器,输出结果给P00口,实现正负号判断,并显示
第三章主要元器件介绍
3.1模数转换器ADC0808
ADC0808是带有8位A/D转换器、8路多路开关以与微处理机兼容的控制逻辑的CMOS组件。
它是逐次逼近式A/D转换器,可以和单片机直接接口。
1.ADC0808的部逻辑结构
由下图可知,ADC0808由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
2.ADC0808引脚结构
ADC0808各脚功能如下:
D7-D0:
8位数字量输出引脚。
IN0-IN7:
8位模拟量输入引脚。
VCC:
+5V工作电压。
GND:
地。
REF(+):
参考电压正端。
REF(-):
参考电压负端。
START:
A/D转换启动信号输入端。
ALE:
地址锁存允许信号输入端。
(以上两种信号用于启动A/D转换).
EOC:
转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
OE:
输出允许控制端,用以打开三态数据输出锁存器。
CLK:
时钟信号输入端(一般为500KHz)。
A、B、C:
地址输入线。
ADC0808对输入模拟量要求:
信号单极性,电压围是0-5V,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
数字量输出与控制线:
11条
VREF(+),VREF(-)为参考电压输入。
3.ADC0808应用说明
(1).ADC0808部带有输出锁存器,可以与AT89S51单片机直接相连。
(2).初始化时,使ST和OE信号全为低电平。
(3).送要转换的哪一通道的地址到A,B,C端口上。
(4).在ST端给出一个至少有100ns宽的正脉冲信号。
(5).是否转换完毕,我们根据EOC信号来判断。
(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
4.
(1).进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。
(2).进行A/D转换之前,要启动转换的方法:
ABC=110选择第三通道
ST=0,ST=1,ST=0产生启动转换的正脉冲信号.
AD0808时序图
3.2主控芯片AT89C52
单片机选择的是较为熟悉的AT89C52,AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片晶振与时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
3.3CD4511资料
CD4511是BCD锁存/7段译码器/驱动器,常用的显示译码器件,MAX7219和他功能差不多。
CD4511引脚功能:
BI:
4脚是消隐输入控制端,当BI=0时,不管其它输入端状态是怎么样的,七段数码管都会处于消隐也就是不显示的状态。
LE:
锁定控制端,当LE=0时,允许译码输出。
LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。
LT:
3脚是测试信号的输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮全部显示。
它主要用来检测数7段码管是否有物理损坏。
A1、A2、A3、A4、为8421BCD码输入端。
a、b、c、d、e、f、g:
为译码输出端,输出为高电平1有效。
CD4511的里面有上拉电阻,可直接或者接一个电阻与七段数码管接口。
数字电路CD4511的原理(引脚与功能)
CD4511是一个用于驱动共阴极LED(数码管)显示器的BCD码—七段码译码器,特点:
具有BCD转换、消隐和锁存控制、七段译码与驱动功能的CMOS电路能提供较大的拉电流。
可直接驱动LED示器。
CD4511是一片CMOSBCD—锁存/7段译码/驱动器,引脚排列如图2所示。
其中abcd为BCD码输入,a为最低位。
LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。
BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时,B1端应加高电平。
另外CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。
LE是锁存控制端,高电平时锁存,低电平时传输数据。
a~g是7段输出,可驱动共阴LED数码管。
另外,CD4511显示数“6”时,a段消隐;
显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观图3是CD4511和CD4518配合而成一位计数显示电路,若要多位计数,只需将计数器级联,每级输出接一只CD4511和LED数码管即可。
所谓共阴LED数码管是指7段LED的阴极是连在一起的,在应用中应接地。
限流电阻要根据电源电压来选取,电源电压5V时可使用300Ω的限流电阻。
其功能介绍如下:
4脚是消隐输入控制端,当BI=0时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。
3脚是测试输入端,当BI=1,LT=0时,译码输出全为1,不管输入DCBA状态如何,七段均发亮,显示“8”。
它主要用来检测数码管是否损坏。
CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。
其引脚图如3-2所示。
各引脚的名称:
其中7、1、2、6分别表示A、B、C、D;
5、4、3分别表示LE、BI、LT;
13、12、11、10、9、15、14分别表示a、b、c、d、e、f、g。
左边的引脚表示输入,右边表示输出,还有两个引脚8、16分别表示的是VDD、VSS。
CD4511的工作原理
1.CD4511的工作真值表如表3-2
输
入
出
LE
BI
LI
D
C
B
A
a
b
c
d
e
f
g
显示
X
1
8
消隐
2
3
4
5
6
7
9
锁
存
锁存
表3-2CD4511的真值表
第四章系统软件设计
事项注意:
由于本设计,在纯软件坏境中完成,所以对干扰等因素考虑较少,但在实际设计中,这些因素不可避免,对一些小的方面注意事项,总结如下:
对于数字电源端,需在电源与地之间加一个去耦电容,如下图:
数字电源端
对于模拟电源端:
对于接地端,应采用,数字地接在一起,模拟地接在一起,最后同时接在公共地上,并且公共地线应尽量粗一些。
数字芯片电源与地引脚:
由于在proteus环境下,各种芯片电源与地端配置为为默认值,因此在原理图上部分引脚未标明。
小结
本系统预计完成任务书的所有容,如下:
1、测量对象、围与误差围:
电压DC:
0~20V误差<
±
4%±
2个字
AC:
0.2~20V(正弦信号)误差<
5%±
电流DC:
0~500mA误差<
2%±
电阻0~200KΩ误差<
3%±
2、采用LED数码显示,分辨率优于0.05%,具有符号判别和过量程显示
3、直流电压档最小输入阻抗≥1MΩ。
4、具有自动量程转换功能。
由于条件和时间有限,设计里并未将数字智能万用表做的很复杂。
在proteus仿真环境下,库元件不够齐全,导致器件选型受到限制,如AD只用到了8位,直接影响设计的分辨率和精度,在实际设计中,可以考虑采用精度更高的ADC,提高分辨率,而交流测量中,由于没有交直流转换芯片库元件,本设计采用了简单的半波整理电路,对交流信号的精确测量会有一定影响。
总体来说,整个设计正能算是一个简易万用表,如若作为应用,方案仍需改进。
进展情况:
以上电路以与基本程序设计完成,经Proteus仿真,结果如下:
原信号为5V,经分压(电阻器50%)后本为2.5V作为待测信号,显示结果如图,2.49V(第二个小数点问题解决中)。
可测得最小值如图(分压比为1%时),0.058V。
参考文献
[1]吴金戌、庆阳、郭庭吉《8051单片机实践与应用》[M].:
清华大学,2002年;
[2]立、邓振杰、荆淑霞《微型计算机原理与接口技术》[M].中国铁道,2006年;
[3]高峰,《单片微型计算机与接口技术》[M].:
科学,2003;
[4]华成英、童诗白主编,《模拟电子技术基础》(第四版)[M].高等教育,2006年.
[5]阎石,《数字电子技术基础》[M].高等教育,1983年
[6]永瑞《电子测量技术》[M].电子科技大学,2000年3月
[7]黄海萍、用昌编《微机原理与接口技术实验指导》[M].:
国防工业,2004年
[8]华,《MCS-51系列单片机实用接口技术》[M].航空航天大学,1993年
[9]余孟尝主编,《数字电子技术基础简明教程》(第二版):
高等教育1999(2006重印)
附:
1总原理图
2以上功能程序:
#include"
reg52.h"
#include<
math.h>
#defineucharunsignedchar
#defineDatP1//转换的数据由P1口传入
sbitST=P2^0;
sbitEOC=P2^1;
sbitOE=P2^2;
sbitDot=P2^3;
sbitS0=P3^4;
sbitS1=P3^5;
sbitS3=P3^6;
charv0,v1,v2,v3;
voiddelay(uchart)
{
uchari;
for(i=100;
i>
0;
i--)
while(t--);
}
voidInit_0808()
ST=0;
OE=0;
voidADC_0808()
ST=1;
//OE=0;
while(EOC==0);
//自动发送
OE=1;
voidCal()//输入计算处理
floatVol;
inttem;
Vol=Dat*0.019608;
//0.019608=5.0/255.0
Vol=Vol*1000.0;
tem=(int)(Vol);
v0=tem/1000;
v0=v0+(7<
<
4);
v1=(tem/100)%10;
v1=v1+176;
v2=(tem/10)%10;
v2=v2+208;
v3=tem%10;
v3=v3+224;
voidVol_dip()//P3口动态显示
while
(1)
{
P3=v0;
Dot=1;
P3=v2;
Dot=0;
P3=v1;
P3=v3;
}
voidmain()
delay(10);
TMOD=0x01;
TH0=(65536-4000)/256;
TL0=(65536-4000)%256;
TR0=1;
ET0=1;
EA=1;
Init_0808();
ADC_0808();
Vol_dip();
voidTimer0()interrupt1//定时采样
EA=0;
Cal();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 数字 万用表 设计 说明
![提示](https://static.bdocx.com/images/bang_tan.gif)