简易数字万用表设计毕业设计.docx

上传人:b****3 文档编号:5515326 上传时间:2022-12-18 格式:DOCX 页数:32 大小:488.46KB
下载 相关 举报
简易数字万用表设计毕业设计.docx_第1页
第1页 / 共32页
简易数字万用表设计毕业设计.docx_第2页
第2页 / 共32页
简易数字万用表设计毕业设计.docx_第3页
第3页 / 共32页
简易数字万用表设计毕业设计.docx_第4页
第4页 / 共32页
简易数字万用表设计毕业设计.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

简易数字万用表设计毕业设计.docx

《简易数字万用表设计毕业设计.docx》由会员分享,可在线阅读,更多相关《简易数字万用表设计毕业设计.docx(32页珍藏版)》请在冰豆网上搜索。

简易数字万用表设计毕业设计.docx

简易数字万用表设计毕业设计

1、设计任务..........................................................................................1

1.1设计目的.......................................................................................1

1.2设计指标及要求..............................................................................1

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

3、系统硬件电路的设计…….........………….....…………..…………….2

3.1多用表主电路 …….......…………….....……………………..........2

3.2电阻测量输入电路………………….....……………………..........2

3.3电压测量输入电路……........……………………………………….3

3.4电流输入测量电路........................................................................3

4、系统的软件设计..............……………..............……………………...4

5、系统的设计仿真............……………..............……………………...5

5.1仿真原理图………………………………………………………….….5

5.2实物图….....…………...............………………………………………6

5.3主要元器件功能介绍…………………………………………….….6

6、总结与体会…...........…………...............……………………………..20

6.1总结….....…………...............……………………………………….13

6.2体会….......………...............…………………………………..........13

7、参考文献....................……….....…………….…………………….14

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总体框图

 

89S52

 

振荡电路

复位电路

 

ADC0809

驱动LED显示

待测电阻电路阻

待测电流电路

待测电压电路

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。

图1数字多用表的主电路图

单片机的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、系统的软件设计

数字多用表的软件程序(略)

 

5、系统的设计仿真

5.1仿真原理图

 

5.2实物图

5.3主要元器件功能介绍

1、AT89S52芯片功能特性描述

AT89S52引脚框图:

图2.12AT89S52芯片引脚图

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为高电平,转换的数据就输出给单片机了。

6、总结与体会

6.1总结

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

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

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

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

(2)万用板焊接时,由于布线不太合理,使得背面线很零乱。

并给后面的线路检查带来了不少麻烦。

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

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

6.2体会

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

比如查阅资料,动手焊接万用板等等,这些都是平时很少做的。

此次课程设计让我对基于单片机的汇编语言有了新的认识,对本学期的单片机学习有很大的助益,也在激励我们多动手,从实践中去获取新知识。

在此要特别感谢老师在做设计期间精心指导,他对我们要求非常严格。

课程设计的顺利完成离不开老师的帮助的。

他为我提供了很多宝贵的资料。

本次课程设计自始至是在他的指导和帮助下完成的,在此再一次向他致以深深的敬意和感谢!

7、参考文献

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

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

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

(3)常健生检测与转换技术机械工业出版社2000年2月

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

(5)童诗白模拟电子技术基础高等教育出版社2001年

(6)李伯成微型计算机原理与接口技术清华大学出版社2005年1月

(7)李昌喜智能仪表原理与设计化学工业出版社2005年2月

附录系统源程序:

org0000h;单片机复位地址

ajmpmain;转移到主程序处

org0100h;main被定位在0x0100处

main:

movsp,#80h;初始化堆栈指针

jnbP1.0,cr

jnbP1.1,cv

jnbP1.2,ca

cr:

movR7,#00h

lcalladc

LCALLRDAT

lcallDISPLAY

sjmpmain

CV:

MOVR7,#01H

LCALLADC

LCALLVDAT

LCALLDISPLAY

SJMPMAIN

CA:

MOVR7,#02H

LCALLADC

LCALLADAT

LCALLDISPLAY

SJMPMAIN

ADC:

MOVA,R7;0808A/D转换子程序

MOVDPTR,#7FFFH

MOVX@DPTR,A

JBP3.3,$

MOVXA,@DPTR;输入转换结果

RET

vdat:

movR2,#00h

movR3,A

movR6,#01h

movR7,#0F4h

callMULD2;乘以500

clrC

movA,r5

addA,#60h;加96修正

movr5,A

movA,r4

addcA,#00h

movr4,A

movA,r3

addcA,#00h

movr3,A

movA,r2

addcA,#00h

movr2,A

movr0,#30h

movr1,#34h

movA,R2

mov@r1,A

incr1

movA,R3

mov@r1,A

incr1

movA,R4

mov@r1,A

incr1

movA,R5

mov@r1,A

incr1

mov@r1,#00h

incr1

mov@r1,#00h

incr1

mov@r1,#00h

incr1

mov@r1,#0FFh

callDIVD4;除以255

movr1,#38h

mov@r1,#00h

incr1

mov@r1,#00h

incr1

mov@r1,#00h

incr1

mov@r1,#0Ah

callDIVD4

mov43h,33h

callDIVD4

mov42h,33h

callDIVD4

mov41h,33h

movr0,#40h

mov@r0,#00h

incr0

movA,41h

movDPTR,#SEGMENT7

movcA,@A+DPTR

orlA,#80h

mov@r0,A

incr0

movA,42h

movDPTR,#SEGMENT7

movcA,@A+DPTR

mov@r0,A

incr0

movA,43h

movDPTR,#SEGMENT7

movcA,@A+DPTR

mov@r0,A

ret

ADAT:

movB,A

movA,#0B6h

clrC;以下根据范围设置数值以防溢出

subbA,B

jcLARGERA

movA,B

subbA,#16h

jcLESSA

ajmpMIDDLEA

LARGERA:

movA,#0B6h

ajmpCALCULATEA

LESSA:

movA,#16h

ajmpCALCULATEA

MIDDLEA:

movA,B

CALCULATEA:

movr2,#0C3h

movr3,#50h

movr6,#00h

movr7,A

callMULD2;乘以50000

clrC

movA,r5

subbA,#70h;以下减去102000

movr5,A

mov37h,A

movA,r4

subbA,#8Eh

movr4,A

mov36h,A

movA,r3

subbA,#01h

movr3,A

mov35h,A

movA,r2

subbA,#00h

movr2,A

mov34h,A

movr0,#30h

movr1,#38h

mov@r1,#00h

incr1

mov@r1,#01h

incr1

mov@r1,#5Eh

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

当前位置:首页 > 法律文书 > 调解书

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

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