基于AT89C51单片机的数字电压表设计毕业论文.docx

上传人:b****1 文档编号:12520289 上传时间:2023-04-19 格式:DOCX 页数:23 大小:268.60KB
下载 相关 举报
基于AT89C51单片机的数字电压表设计毕业论文.docx_第1页
第1页 / 共23页
基于AT89C51单片机的数字电压表设计毕业论文.docx_第2页
第2页 / 共23页
基于AT89C51单片机的数字电压表设计毕业论文.docx_第3页
第3页 / 共23页
基于AT89C51单片机的数字电压表设计毕业论文.docx_第4页
第4页 / 共23页
基于AT89C51单片机的数字电压表设计毕业论文.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于AT89C51单片机的数字电压表设计毕业论文.docx

《基于AT89C51单片机的数字电压表设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的数字电压表设计毕业论文.docx(23页珍藏版)》请在冰豆网上搜索。

基于AT89C51单片机的数字电压表设计毕业论文.docx

基于AT89C51单片机的数字电压表设计毕业论文

2013届本科毕业设计

基于AT89C51单片机的数字电压表设计

学院:

物理与电子工程学院

专业班级:

电子信息09—11班

学生姓名:

XXX

指导教师:

吴剑英老师

答辩日期:

2013年5月11日

XXXXX大学教务处

0引言1

1系统整体设计思路及方案1

1.1设计思路1

1。

2设计方案1

2数字电压表的硬件设计2

2.1主控制模块的设计2

2.1。

1AT89C51性能简介2

2。

1。

2AT89C51各引脚功能2

2.1。

3AT89C51的复位电路和时钟电路4

2。

2A/D转换模块的设计5

2.2。

1ADC0808的主要特性6

2。

2.2ADC0808各引脚功能6

2。

3显示电路的设计7

3数字电压表的软件设计10

3。

1设计流程图10

3。

2各子程序简介11

4仿真11

4。

1软件调试11

4.2误差分析11

5结论12

参考文献13

附录14

致谢16

 

基于AT89C51单片机的数字电压表设计

摘要:

数字电压表是常用的对电子电路进行检测的较精密仪器之一。

本文的设计思想是一种基于单片机的数字电压表设计方式.该设计主要由三个模块组成:

A/D转换模块、数据处理主控模块和显示模块。

A/D转换模块主要由芯片ADC0808来完成,它负责将采集到的模拟量转换为相应的数字量传送到数据处理模块(单片机)。

数据处理主控模块由单片机AT89C51来完成,它负责将ADC0808传送过来的数字量经过一定的数据处理,产生相对应的显示码传送到显示模块进行显示。

此外,它还控制芯片ADC0808的工作。

经过仿真软件结果表明本设计中的电压表电路简单,所用元件较少,成本低且测量精度高。

此电压表可以测量0—5V的模拟输入电压值,并通过一个四位一体的7段数码管显示出来.

关键词:

数字电压表;单片机;A/D转换;AT89C51;ADC0808

ThedesignofdigitalvoltagemeterbasedonAT89C51singlechipmicrocomputer

Abstract:

digitalvoltagemeterisoneofthemorecommonlyuseddetectionprecisioninstrumentforelectroniccircuit.Thedesignisadesignmethodbasedonsinglechipdigitalvoltagemeter.Thedesignconsistsofthreemodules:

A/Dmodule,dataprocessing,themaincontrolmoduleanddisplaymodule。

TheA/DconversionmoduleismainlycompletedbytheADC0808,whichisresponsibleforconvertingthecollectedanalogtodigitalquantitycorrespondingtoadataprocessingmodule(MCU).DataprocessingbytheMCUAT89C51tocompletethemaincontrolmodule,whichisresponsibleforthedigitalADC0808transmissionafterdataprocessing,generatethecorrespondingdisplaycodeissenttothedisplaymodulefordisplaying。

Inaddition,italsocontrolchipADC0808work。

Thedesignofthevoltagemetercircuitissimple,lesselementsused,lowcostandhighmeasurementaccuracy。

Theanaloginputvoltagecanbemeasuredin05Vofthevalueofthevoltagemeter,andthrough7digitaltubesafourintegrateddisplay。

Keywords:

digitalvoltagemeter;MCU;A/D;AT89C51;ADC0808

0引言

在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。

而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。

数字电压表(DigitalVoltmeter)简称DAM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。

传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,有精度高、抗干扰能力强、集成方便,还可与PC进行实时通信等优点[1].

目前,由各种单片机和A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等领域,显示出了它极强的生命力.与此同时,由DVM扩展而成的各种通用及专用数字仪表仪器,也把电量及非电量技术提高到崭新水平[2]。

新型数字电压表以其高准确度、高可靠性、高分辨率、高性价比等优良特性备受人们的青睐。

本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:

转换模块、数据处理模块及显示模块。

其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号[3]。

1系统整体设计思路及方案

1。

1设计思路

1)根据设计要求,选择AT89C51单片机为核心控制器件。

2)A/D转换采用ADC0808实现,连接单片机的P0口和P3口的低四位引脚。

3)电压显示采用4位一体的LED数码管。

4)LED数码管的段码输入由端口P1产生;位码输入用端口P2高四位产生。

1。

2设计方案

本设计选择AT89C51单片机作为核心控制器件.A/D转换采用ADC0808来实现。

电压显示采用4位一体的LED数码管,LED数码管的段码输人由端口P1输出,位码输人由端口P2高四位输出.

硬件电路设计由6个部分组成:

A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路。

硬件电路设计如图1—1所示。

 

时钟电路

复位电路

A/D转换

测量电压

显示系统

AT89C51

P0P3

P2

P1P2

P1

图1-1系统设计框图

2数字电压表的硬件设计

2.1单片机主控制模块的设计

2。

1。

1AT89C51性能简介

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4KB的可反复擦写的只读程序存储器和128字节的随机存储器。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[4]。

AT89C51功能性能:

与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:

1000次写/擦循环;数据保留时间:

10年;全静态工作:

0—24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器和掉电模式[5]。

2.1。

2AT89C51各引脚功能

AT89C51提供以下标准功能:

4KB的Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。

AT89C51采用PDIP封装形式,引脚配置如图2-1所示[6]。

 

图2-1AT89C51引脚图

AT89C51芯片的各引脚功能为:

P0口:

这组引脚共有8条,P0.0为最低位。

这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0。

0—P0。

7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是89C51带片外存储器,P0。

0-P0。

7在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。

P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。

P1口:

这8个引脚和P0口的8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1。

0-P1。

7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据.

P2口:

这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用I/O口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但不像P0口那样传送存储器的读/写数据.

P3口:

这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表2—1所示:

表2-1P3口各位的第二功能

P3口各位

第二功能

P3.0

RXT(串行口输入)

P3.1

TXD(串行口输出)

P3。

2

/INT0(外部中断0输入)

P3。

3

/INT1(外部中断1输入)

P3。

4

T0(定时器/计数器0的外部输入)

P3.5

T1(定时器/计数器1的外部输入)

P3。

6

/WR(片外数据存储器写允许)

P3.7

/RD(片外数据存储器读允许)

Vcc为+5V电源线,GND接地。

ALE:

地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0。

7引脚线去传送随后而来的片外存储器读/写数据。

在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列.该脉冲序列可以作为外部时钟源或定时脉冲使用。

/EA:

片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,

若/EA=1,则允许使用片内ROM,若/EA=0,则只使用片外ROM.

/PSEN:

片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号.

RST:

复位线,可以使89C51处于复位(即初始化)工作状态.通常89C51复位有自动上电复位和人工按键复位两种。

XTAL1和XTAL2:

片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)的定时反馈回路。

2。

1。

3AT89C51的复位电路和时钟电路

单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。

CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。

MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路[7].

单片机AT89C51的时钟电路如图2—2所示,主要由电容C1-C3、电阻R1、晶振X1等组成。

AT89C51的18脚(XTAL2)和19脚(XTAL1)接时钟电路,其中19脚是AT89C51内部振荡器倒相放大器的输入端,用于接外部晶振和微调电容的一端;18脚是AT89C51内部振荡器倒相放大器输出端,用于接外部晶振和微调电容的另一端。

图2-2AT89C51的时钟电路图

单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作.MCS—51单片机有一个复位引脚RST,采用施密特触发输入。

当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。

复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。

单片机的复位方式有上电自动复位和手动复位两种,图2-2是51系列单片机统常用的上电复位和手动复位组合电路.

图2-3AT89C51的复位电路

2。

2A/D转换电路设计

现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等.双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点.与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。

一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用[8]。

2.2.1ADC0808的主要特性

ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。

ADC0808是分辨率为8位的、以逐次逼近原理进行模/数转换的器件.其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

ADC0808是ADC0809的简化版本,功能基本相同。

一般硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换[9]。

2。

2。

2ADC0808各引脚功能

 

图2—4ADC0808引脚图

ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图2-4所示。

下面说明各个引脚功能:

IN0-IN7(8条):

8路模拟量输入线,用于输入和控制被转换的模拟电压。

ALE:

地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。

ADDA,ADDB,ADDC:

3位地址输入线,用于选择8路模拟输入中的一路,其对应关系如表2-2所示:

表2—2ADC0808通道选择表

地址码

对应的输入通道

C

B

A

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

IN0

IN1

IN2

IN3

IN4

IN5

IN6

IN7

START:

START为“启动脉冲"输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。

EOC:

EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。

D1-D8:

数字量输出端,D1为高位.

OE:

OE为输出允许端,高电平能使D1—D8引脚上输出转换后的数字量。

REF+、REF—:

参考电压输入量,给电阻阶梯网络供给标准电压。

Vcc、GND:

Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF-与GND连接在一起.

CLK:

时钟输入端。

2。

3显示电路的设计

LED是发光二极管显示器的缩写。

LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。

LED显示器是由若干个发光二极管组成显示字段的显示器件.在单片机中使用最多的是七段数码显示器。

在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4—LED”。

本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。

4—LED显示器引脚如图2-5所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位位数选端,DP是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。

图2—54位LED引脚

本设计中LED和单片机的连接如图2—6,图中可以看出,本设计用单片机的P1.0~P1.7作为LED显示的片选端口,P2端口的高四位作为LED的位选信号。

图2—6显示电路连接图

2。

4总体电路设计

经过以上的设计过程,可设计出基于单片机的简易数字电压表硬件电路原理图如图2-7所示.

图2—7设计电路总图

此电路的工作原理是:

+5V模拟电压信号通过变阻器VR1分压后由ADC0808的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P0口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P2.4、P2.5、P2。

6、P2。

7产生位选信号控制数码管的亮灭。

此外,AT89C51还控制ADC0808的工作.其中,单片机AT89C51从外部中断P3.3连接到D触发器从而控制ADC0808的CLOCK,P3。

0发正脉冲启动A/D转换,P3。

2检测A/D转换是否完成,转换完成后,P3.1置高从P1口读取转换结果送给LED显示出来[9]。

简易数字直流电压表的硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图.

3数字电压表的软件设计

3。

1设计流程图

主程序主要完成信号存储、信号处理、A/D转换以及调用显示等。

主程序流程图:

程序首先从ORG0000H开始,然后无条件件跳转至主程序的首地址开始,初始化后,先调用模数转换程序进行输入信号的数字化,然后调用显示子程序将处理后的数字输出,一次数据结束后,循环执行调用的两个子程序.

A/D转换子程序流程图:

首先进行开始模数转化,执行后,如果检测到转化没有完成则继续转化,如果转化完成,执行下一条指令,将取得模数转化结果并转换为工程量,然后显示转换结果,此为一次模数转换,如此循环可转换下一组数据,全部转换完毕后,结束。

图3—1程序设计流程图

3。

2各子程序简介

所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等[9].

A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元。

显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms[10]。

在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时。

4软件调试

4。

1软件调试

软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。

Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真。

Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等.Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著的特点是可以与uVisions3IDE工具软件结合进行编程仿真调试[11]。

本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,程序方面,采用的是C语言,用Keil软件将程序写入单片机。

4.2误差分析

由于单片机AT89C51为8位处理器,当输入电压为5。

00V时,ADC0808输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。

这就决定了电压表的最高分辨率只能到0.0196V,从下表可看到,测试电压一般以0。

01V的幅度变化[11]。

本文的数字电压表可以测量0-5V的电压值,最大分辩率为0。

01V。

通过仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表。

本次设计的电压表误差分析采用多次测量求绝对差值的方法,并把各组数据列成表格,这样能更加清晰地看出误差的波动范围及大小,如下表4-1所示:

表4-1误差分析

标准电压

(V)

0

0.5

1

1。

5

2

2.5

3

3。

5

4

4。

5

测量电压

(V)

0.00

0.50

0。

99

1.50

1。

99

2.48

2。

99

3.48

3。

99

4.48

绝对误差(V)

0

0

0.01

0

0。

01

0.02

0.01

0。

02

0。

01

0.02

从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏小0—0.02V,这可以通过校正ADC0808的基准电压来解决。

因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。

当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。

5结论

经过近段时间的努力,基于AT89C51单片机的数字电压表设计基本完成。

但设计中仍然存在许多不足之处。

这次设计是我第一次设计电路,并用Proteus实现了仿真。

在这过程中,我对电路设计,单片机的使用等都有了新的认识。

通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图电路图的仿真的设计流程,积累了不少经验。

基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。

在实际应用工作应能好,测量电

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

当前位置:首页 > 医药卫生 > 基础医学

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

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