基于单片机的数字万用表的设计 硬件设计.docx

上传人:b****4 文档编号:11722348 上传时间:2023-03-31 格式:DOCX 页数:15 大小:525.90KB
下载 相关 举报
基于单片机的数字万用表的设计 硬件设计.docx_第1页
第1页 / 共15页
基于单片机的数字万用表的设计 硬件设计.docx_第2页
第2页 / 共15页
基于单片机的数字万用表的设计 硬件设计.docx_第3页
第3页 / 共15页
基于单片机的数字万用表的设计 硬件设计.docx_第4页
第4页 / 共15页
基于单片机的数字万用表的设计 硬件设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于单片机的数字万用表的设计 硬件设计.docx

《基于单片机的数字万用表的设计 硬件设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字万用表的设计 硬件设计.docx(15页珍藏版)》请在冰豆网上搜索。

基于单片机的数字万用表的设计 硬件设计.docx

基于单片机的数字万用表的设计硬件设计

目录

引言1

1.设计任务2

1.1.设计目的2

1.2.设计指标及要求2

2.设计思路与总体框图2

2.1.设计思路2

3.系统硬件电路的设计3

3.1.数字多用表的主电路3

3.2.数字多用表的电阻测量输入电路4

3.3.电压测量输入电路4

3.4.电流输入测量电路5

4.系统的设计仿真6

4.1.仿真原理图6

4.1.1.测量电阻仿真6

4.1.2.测量电压仿真7

4.1.3.测量电流仿真7

4.2.主要元器件功能介绍7

5.总结与体会14

5.1总结14

5.2体会15

6.参考文献15

引言

本设计可以分为直流电压测量电路;交流/直流转换电路;电流/电压转换电路;电阻/电压转换电路;功能控制和数据显示电路这五个的主要电路模块。

在设计直流电压测量电路时,利用反相比例运算电路,加上自己设计的四选一模拟开关,组成了一个直流电压测量电路。

但该电路在实践中存在问题,不能实现预期的结果。

做了适当的修改,改为由电阻、模拟开关和运放组成放大倍数可调的比例电路。

由于无论是指针式万用表还是普通的真有效值或平均值响应的数字万用表,其交流电压档的频率特性都较差,一般只能测量几十赫兹到几千赫兹的低频电压。

我发现对于指针式万用表造成频率特性较差的原因主要是万用表的分压电阻采用精密电阻器,其本身的分布电容较大,在对高频电压信号进行测量时,由于分布电容的容抗大为减少使得测量值明显低于实际电压值,而对于数字万用表除上述原因以外,另一主要原因是受平均值响应,转换器本身频率特性的限制。

但此缺陷可通过采用宽频带运算放大器加以改善。

因此,消除分压电阻器分布电容的影响就可以提高万用表工作频率的上限,大大改善其频率特性。

数字万用表(DMM)亦称数字多用表,是目前在电子检测及维修工作中最常用、最得力的一种工具类数字仪表。

它采用的数字化测量技术,通过对连续的模拟量(直流输入电压)的采样将其转换成不连续、离散的数字量,并以十进制数字形式显示出来。

由于内部采用了运放电路,内阻可以做得很大,往往在1M欧或更大(即可以得到更高的灵敏度)。

这使得对被测电路的影响可以更小,测量精度较高。

传统的指针式万用表功能单一、精度低,已经不能满足数字化时代的需求,而采用单片A/D转换器构成的数字万用表,具有读数方便、精度高,测试功能强、集成度高、微功耗、抗干扰能力强等特点,另外带有单片机的智能型数字万用表更是具有自动校准,自动测量,自动数据处理和实时通讯等多种功能。

目前,数字万用表已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。

与此同时,由DMM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

1.设计任务

1.1.设计目的

采用8位8路A/D转换器ADC0809和AT89S52单片机,设计一台数字多用表,能进行电压、电流和电阻的测量,测量结果通过LED数码管显示,通过按键进行测量功能转换。

1.2.设计指标及要求

电压测量范围0~5V,测量误差约为

0.02V,电流测量范围1~100mA,测量误差约为

0.5mA,电阻测量范围0~1000Ω,测量误差约为

2Ω。

2.设计思路与总体框图

2.1.设计思路

首先利用P0口数据地址复用,将地址通过P0口输入到单片机中。

再利用模数转换将模拟信号转换成数字信号,再次利用P0口将其输入到单片机。

最后,充分利用单片机强大的运算转化功能将其转成适当的二进制信号控制数显以确保正确的显示被测量的读数。

2.2.总体思路

3.系统硬件电路的设计

3.1.数字多用表的主电路

数字多表仪表主电路如图1所示。

89S52单片机通过线选方式扩展了A/D转换器ADC0809和4位LED数码管,单片机的P2.7引脚作为ADC0809的片选信号,因此A/D转换器的端口地址为7FFFH.片选信号和

信号一起经或非门产生ADC0809的启动信号START和地址锁存信号ALE。

片选信号和

信号一起经或非门产生输出允许信号OE,OE=1时选通三态门使输出锁存器中的转换结果送入数据总路线。

ADC0809的EOC信号经反相后接到89S52的

引脚,用于产生A/D转换完成中断请求信号。

ADC0809芯片的3位模拟量输入通道地址输入端A、B、C分别接到89S52的P0.0、P0.1和P0.2,故只要向端口地址0C000H分别写入00H~07H,即可启动模拟量输入通道0~7进行A/D转换。

ADC0809参考正电压为5V,参考负电压为0V,时钟输入为2MHz。

单片机的P1.0~P1.2引脚通过一个转换开关接地,通过判断P1.0~P1..2引脚电平的高低,决定是否进行电阻测量、电压测量或电流测量。

3.2.数字多用表的电阻测量输入电路

图2所示为数字多用表的电阻测量输入电路。

运算放大器的反馈电阻R

作为待测量电阻,通过1000Ω电阻R

接到电源-5V。

假定运算放大器理想,那么放大器的输出电压RV=

,将RV送给ADC0809,转换后得到数字量为DV=

单片机读取A/D转换数据,再经过逆向运算可得R

=

,注意此时得到的R

为二进制数,需要转化为十进制数后才能送给数码管显示。

程序中采用4字节专利号除法,连续进行4次除以10的除法,依1000Ω范围内不超过2Ω,如果测量其他范围的电阻,需要修改

的数值,或者采用其他电路。

3.3.电压测量输入电路

图3所示为数字多用表的电压测量输入电路。

待测电压经过低通滤波器滤除高频干扰,再通过同相放大器送给ADC0809,电压测量范围为0~5V,ADC0809的分辨率为8位,测量误差为5/255

0.02V.

3.4.电流输入测量电路

图4所示为数字多用表的电流输入电路。

电流测量范围为1~100mA,因为ADC0809是电压转换器件,必须交电流转换为电压才能进行测量,这可以通过串接电阻R

来实现,注意R

必须很小(例如00.1Ω),否则影响电流数值。

由于待测电流和R

都很小,R

两端的电压也很小,必须将其放大到ADC0809能够分辨的范围之内。

假设待测电流大小为I,R

两端节点电压分别为V

和V

,V

经过反向缓冲电路之后V

=-V

V

和V

经过差分放大电路得:

V

=-(V

-V

(V

-V

再经过同相放大电路得:

AV=V

将AV送给ADC0809转换后得到数字量为:

DAV=

单片机读取A/D转换数据,再经过逆向运算可得I=

有两个问题值得注意,首先,由于电流的单位是mA,不能直接计算I的值应先变换为I=

再进行计算;其次,这么算出来的电流值误差比较大,原因是LM324不是精密理想运算放大器,当输入信号很小时误差比较大。

因此需要对计算数值进行修正,方法是先计算DAV*50000,然后将结果减去102000这个数值是通过反复测试并经过曲线拟合得到的。

4.系统的设计仿真

4.1.仿真原理图

4.1.1.测量电阻仿真

4.1.2.测量电压仿真

4.1.3.测量电流仿真

4.2.主要元器件功能介绍

1、AT89S52芯片功能特性描述

AT89S52引脚框图:

AT89S52主要性能:

1、与MCS-51单片机产品兼容

2、8K字节在系统可编程Flash存储器

3、1000次擦写周期

4、全静态操作:

0Hz~33Hz

5、三级加密程序存储器

6、32个可编程I/O口线

7、三个16位定时器/计数器

8、八个中断源

9、全双工UART串行通道

10、低功耗空闲和掉电模式

l1、掉电后中断可唤醒

l2、看门狗定时器

13、双数据指针

l4、掉电标识符

功能特性描述:

AT89S52是一种低功耗、高性能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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

VCC:

电源

GND:

P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

在flash编程和校验时,P1口接收低8位地址字节。

表2.1P1口的第二功能

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。

表2.2P3口的第二功能

RST:

复位输入。

晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

看门狗计时完成后,RST脚输出96个晶振周期的高电平。

特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。

DISRTO默认状态下,复位高电平有效。

ALE/PROG:

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。

这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。

否则,ALE将被微弱拉高。

这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:

外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。

当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EA/VPP:

访问外部程序存储器控制信号。

为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。

在flash编程期间,EA也接收12伏VPP电压。

XTAL1:

振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:

振荡器反相放大器的输出端。

Flash编程―并行模式:

AT89S52带有用作编程的片上Flash存储器阵列。

编程接口需要一个高电压(12V)编程使能信号,并且兼容常规的第三方Flash或EPROM编程器。

AT89S52程序存储阵列采用字节式编程。

编程方法:

对AT89S52编程之前,需根据Flash编程模式表和图13、图14对地址、数据和控制信号设置。

可采用下列步骤对AT89S52编程:

1.在地址线上输入编程单元地址信号

2.在数据线上输入正确的数据

3.激活相应的控制信号

4.把EA/Vpp升至12V

5.每给Flash写入一个字节或程序加密位时,都要给ALE/PROG一次脉冲。

字节写周期时自身定制的,典型值仅50us。

改变地址、数据重复第1步到第5步‘知道’全部文件结束。

DataPollingAT89S52用DataPolling作为一个字节写周期结束的标志特征

2、ADC0809介绍

ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。

它是逐次逼近式A/D转换器,可以和单片机直接接口。

(1)ADC0809的内部逻辑结构

图2.14ADC0809的内部逻辑结构

上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。

三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。

(2)引脚结构

图2.15ADC0809引脚结构图

IN0-IN7:

8条模拟量输入通道

ADC0809对输入模拟量要求:

信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

地址输入和控制线:

4条

ALE为地址锁存允许输入线,高电平有效。

当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。

A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。

通道选择表如下表所示。

表2.3地址输入线的通道选择

C

B

A

选择的通道

0

0

0

IN0

0

0

1

IN1

0

1

0

IN2

0

1

1

IN3

1

0

0

IN4

1

0

1

IN5

1

1

0

IN6

1

1

1

IN7

数字量输出及控制线:

11条

ST为转换启动信号。

当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。

EOC为转换结束信号。

当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。

OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。

D7-D0为数字量输出线。

CLK为时钟输入信号线。

因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,

VREF(+),VREF(-)为参考电压输入。

ADC0809应用说明:

(1).ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。

(2).初始化时,使ST和OE信号全为低电平。

(3).送要转换的哪一通道的地址到A,B,C端口上。

(4).在ST端给出一个至少有100ns宽的正脉冲信号。

(5).是否转换完毕,我们根据EOC信号来判断。

(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

5.总结与体会

5.1总结

本次课程设计,虽然方案基本出来了,但是在硬件制作方面出现了几个问题,这也暴露出我们知识方面的一欠缺。

不足主要体现在以下几个方面:

(1)ADC0809的第10脚的时钟信号,我们是通过单片机编程实现的但是由于频率过低,只有500KHz,造成LED数码管显示不稳定而出现闪烁现象。

最终验收时是通过从外部信号发生器输入2MHz时钟信号解决的。

(2)对Proteus仿真软件使用不熟练,使画仿真图时遇到不少问题。

(3)51单片机基础知识不扎实,电路分析遇到比较多的问题。

5.2体会

这次课程设计暴露出了很多问题,但在做课程设计的过程中也学到了很多东西。

比如查阅资料,自学并应用一些老师没讲过的知识等等,这些都是平时很少做的。

此次课程设计让我对基于单片机及Proteus软件等有了新的认识,对本学期的单片机学习有很大的帮住。

在此要特别感谢老师在做设计期间精心指导。

课程设计的顺利完成离不开老师的帮助的,在此致以深深的敬意和感谢!

6.参考文献

(1)张毅刚单片机原理及应用高等教育出版社2010年8月

(2)徐爱钧单片机原理实用教程电子工业出版社2011年3月

(2)张伟王力protel2004入门与提高人民邮电出版社2005年11月

(3)阎石数字电子技术基础高等教育出版社1998年12月

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1