(精选文档)电子信息工程技术专业毕业论文数字电压表的设计.doc

上传人:rrsccc 文档编号:9003524 上传时间:2021-01-29 格式:DOC 页数:29 大小:356KB
返回 下载 相关 举报
(精选文档)电子信息工程技术专业毕业论文数字电压表的设计.doc_第1页
第1页 / 共29页
(精选文档)电子信息工程技术专业毕业论文数字电压表的设计.doc_第2页
第2页 / 共29页
(精选文档)电子信息工程技术专业毕业论文数字电压表的设计.doc_第3页
第3页 / 共29页
(精选文档)电子信息工程技术专业毕业论文数字电压表的设计.doc_第4页
第4页 / 共29页
(精选文档)电子信息工程技术专业毕业论文数字电压表的设计.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《(精选文档)电子信息工程技术专业毕业论文数字电压表的设计.doc》由会员分享,可在线阅读,更多相关《(精选文档)电子信息工程技术专业毕业论文数字电压表的设计.doc(29页珍藏版)》请在三一文库上搜索。

1、摘 要本设计主要研究的是以AT89C51单片机为核心的电压测量系统,该系统能够在单片机的控制下完成对电压信号采集,能够根据采样值进行量程自动转换,并且测量结果可通过四个数码管显示出来。整个系统的设计完成了硬件电路的设计及软件程序的编写,通过最终硬件电路的调试及软件程序的仿真,使该系统能够在要求的条件下达到正常的测量及显示功能。在整个系统的设计过程中,主要采用了模块化的设计方法。关键词:AT89C51; AD转换器ADC0808; 显示器目录绪论1第一章 硬件部分的设计2 1.1量程转换模块设计21.1.1电路选择21.1.2工作原理及换算关系21.2逐次逼近式A/D转换模块设计21.2.1 A

2、DC0808简介31.2.1.1 ADC0808引脚功能31.2.1.2 ADC0808内部结构图31.2.2 A/D转换电路设计41.3 AT89C51单片机引脚功能介绍51.3.1电源51.3.2 时钟信号51.3.3 控制线61.3.4 I/O线 61.4显示模块设计91.4.1 LCD1602的引脚功能101.4.2 LCD1602的显示操作101.4.2.1 四种基本操作101.4.2.2 LCD显示程序设计15第二章 软件设计162.1主程序设计162.2 A/D转换程序设计172.3 中断服务程序设计17设计总结18参考文献 18附录119附录221绪 论在电气测量中,电压是一个

3、很重要的参数。如何准确地测量模拟信号的电压值,一直是电测仪器研究的内容之一。数字电压表是通用仪器中使用较广泛的一种测试仪器,很多电量或非电量经变化后都用可数字电压表完成测试。因此,数字电压表被广泛地应用于科研和生产测试中。本文将介绍一种以单片机为核心的电压测量仪表,它能够测量电压量,能够自动进行量程选择,并且测量结果能够通过数码管显示,从而具有一定的智能性。本文将就这一系统的硬件电路部分和软件程序部分分别作以介绍。在硬件部分,本文就系统的各个组成模块的原理作了详细的介绍。另外,在每一模块电路中都对元器件的选择作了简单的介绍,其中包括有关数值的计算和分析。在软件部分,详细阐述了各个模块电路的软件

4、设计方法和设计中的细节。分析本设计,可以看出其主要任务就是对电压信号能够自动选择合适的量程进行测量并显示。本设计要求采用单片机进行控制,由于单片机的有效输入输出信号均为数字信号,而对于整个系统的前向通道有效信号均应为模拟信号,所以在设计过程中必然包括模拟量转换为数字量单元的设计。根据要求本设计中采用的是V/F转换电路。对于V/F转换电路,要使其转换具有良好的线性度和精度必须使其输入电压变化范围较小。而本系统中要求测量的电压范围是05V,无法满足V/F转换的要求。所以,前向模拟通道的设计要包括量程转换部分,即对大信号进行分压变小,对小信号进行放大,显然,这样不仅能满足V/F转换电路的要求,而且也

5、能有效的防止超量程测量。另外,前向通道的设计还应包括对模拟信号的采集部分。本设计框图如图1-1所示第一章 硬件部分的设计1.1量程转换模块设计1.1.1电路选择图3-3量程转换开关 图3-4衰减输入电路输入电路的作用是把不同量程的被测电压,规范到A/D转换器所要求的电压值。数字电压表所采用的是逐次逼近式A/D转换芯片ADC0808,它要求输入电压0-2V。本仪表设计的是0-50V电压,灵敏度高所以可以不加前置放大器,只需衰减器,如图所示9M、900K、90K、和10K电阻构成1/10、1/100、1/1000的衰减器。衰减输入电路可由开关来选择不同的衰减率,从而切换档位。1.1.2工作原理及换

6、算关系如上图通过电阻网络实现电压衰减测量的输入阻抗约为R4、R5、R6。1端、2端单独合上时,Vout的大小分别是:1脚单独合上Vout=Vin1;2脚单独合上Vout= Vin(R4+ R5+ R6)/(R3+ R4+ R5+ R6)。由上式可以看出,Vout在一定范围时电阻网络衰减程度越大其可输入电压Vin。量程调节,只要把R5,R6的参数选好然后,由开关1端、2断选择测量电压输出端即完成量程选定。1.2逐次逼近式A/D转换模块设计逐次逼近型A/D转换器属于直接型A/D转换器,它能把输入的模拟电压直接转换为输出的数字代码,而不需要经过中间变量。主要由比较器、环形分配器、控制门、寄存器与D/

7、A转换器组成。1.2.1 ADC0808简介1.2.1.1 ADC0808引脚功能图3-5ADC0808引脚图IN0IN7:8路模拟量输入。A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。D0D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。EOC:转换完成信号,当EOC上升为高电平时

8、,表明内部A/D转换已完成。1.2.1.2 ADC0808内部结构图逐次逼近型A/D转换器ADC0808由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。其内部结构如图3-6所示。图3-6ADC0808内部结构1.2.2 A/D转换电路设计集成摸数转换芯片ADC0808实现的A/D转换电路如图3-7所示,被测信号由ADC0808模拟输入端输入,完成A/D转换后送入单片机,经相应处理后送出显示。图3-7ADC0808与单片机的连接1.3 AT89C51单片机引脚功能介绍首先我们来连接一下单片机的引脚图,如果,具体功能在下面都有介绍。 单片机的40个引

9、脚大致可分为4类:电源、时钟、控制和I/O引脚。1.3.1 电源 VCC - 芯片电源,接+5V; VSS - 接地端;1.3.2 时钟信号单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XYAL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器和对振荡频率有微调作用,通常取(3010)pF石英晶体选择6MHz或12MHz都可以。时钟电路如图3-1所示。 图3-1系统时钟电路 图3-2系统复位电路XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 1.3.3 控制线控制线共有4根。 ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用

10、来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在Vcc掉电情况下,接备用电源。 EA/Vpp:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。1.3.4 I/O端口80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

11、 51单片机引脚图及引脚功能拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。 (1) 电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。 (2) 振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶体震荡器,电容,连上就能了,按图1接上即可。 (3) 复位管脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。 (4) EA管脚:EA管脚接到正电源端。 至此,一个单片机就接好,通上

12、电,单片机就开始工作了。我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个管脚相连,不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了刚才用掉的5个管脚,还有35个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻)按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚我们要能够控制,也就是说,我们要能够让1管脚按要求变为高或低电平。即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不能由我们来更改。 单片机接

13、线图图1名字有了,我们又怎样让它变高或变低呢?叫人做事,说一声就能,这叫发布命令,要计算机做事,也得要向计算机发命令,计算机能听得懂的命令称之为计算机的指令。让一个管脚输出高电平的指令是SETB,让一个管脚输出低电平的指令是CLR。因此,我们要P1.0输出高电平,只要写SETB P1.0,要P1.0输出低电平,只要写 CLR P1.0就能了。现在我们已经有办法让计算机去将P10输出高或低电平了,但是我们怎样才能计算机执行这条指令呢?总不能也对计算机也说一声了事吧。要解决这个问题,还得有几步要走。第一,计算机看不懂SETB CLR之类的指令,我们得把指令翻译成计算机能懂的方式,再让计算机去读。计

14、算机能懂什么呢?它只懂一样东西数字。因此我们得把SETB P1.0变为(D2H,90H ),把CLR P1.0变为 (C2H,90H ),至于为什么是这两个数字,这也是由51芯片的设计者-INTEL规定的,我们不去研究。第二步,在得到这两个数字后,怎样让这两个数字进入单片机的内部呢?这要借助于一个硬件工具编程器。如果你还不知道是什么是编程器,我来介绍一下,就是把你在电脑上写出来来的代码用汇编器等编译器生成的一个目标烧写到单片机的eprom里面去的工具,80c51这种类型的单片机编程是一件很麻烦的事情,必要要先装到编程器上编程后才能在设备上使用,而目前最新的89s51单片机居然在线编程(isp)

15、功能,不用拔出来利用简单的电路就可以实现把代码写入单片机内部,本站有详细的at89s51编程器制作教程我们将编程器与电脑连好,运行编程器的软件,然后在编缉区内写入(D2H,90H)见图2,写入好,拿下片子,把片子插入做好的电路板,接通电源什么?灯不亮?这就对了,因为我们写进去的指令就是让图2P10输出高电平,灯当然不亮,要是亮就错了。现在我们再拨下这块芯片,重新放回到编程器上,将编缉区的内容改为(C2H,90H),也就是CLR P1.0,写片,拿下片子,把片子插进电路板,接电,好,灯亮了。因为我们写入的()就是让P10输出低电平的指令。这样我们看到,硬件电路的连线没有做任何改变,只要改变写入单

16、片机中的内容,就能改变电路的输出效果。 1.4显示模块设计LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。1.4.1 LCD1602的引脚功能LCD1602模块的引脚如图3-8所示,其引脚功能如下:RS:数据和指令选择控制端,RS

17、=0命令状态;RS=1数据R/W:读写控制线,R/W=0写操作;R/W=1读操作A:背光控制正电源 K:背光控制地E:数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机间将进行一次数据交换DB0DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源。VDD:电源端 VEE:亮度控制端(1-5V)VSS VDD VO RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A KLCD 模 块1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VSS:接地端图3-8LCD1602模块1.4.2 LCD1602的显

18、示操作1.4.2.1 四种基本操作LCD有四种基本操作,具体如表3-1所示。表3-1LCD与单片机之间有四种基本操作RSR/W操作00写命令操作(初始化,光标定位等)01读状态操作(读忙标志位)10写数据操作(要显示内容)11读数据操作(可以把显示存储区中的数据反读出来)(1)读状态字执行读状态字操作,如表3-1满足RS=0,R/W=1。根据管脚功能,当为有效电平时,状态命令字可从LCD模块传输到数据总线。同时可以保持一段时间,从而实现读状态字的功能。读状态字流程如图3-9所示。图3-9读入状态字流程图(2)命令字表3-2所示为命令字,其主要介绍了指令名称、控制信号及控制代码。其指令名称是指要

19、实现的功能;控制代号是采用的十六进制的数值表示的。1)清零操作是指输入某命令字后即能将整个屏幕显示的内容全部清除;2)归home位:将光标送到初始位;其中的号为任意,高低电平均可;3)输入方式:设光标移动方向并指定整体显示,是否移动。I/D=0:减量方式,S=1:移位方式,S=0:不移位;4)显示状态:D指设置整体显示开关;C指设置光标显示开关;B指设置光标的字符闪耀;5)光标画面滚动:R/L指右移或左移;S/C指移动总体或光标;6)功能设置:DL接口数位,L指显示行数,F显示字型;如DL=1:8位=0,4位N=1:2行=0:1行,G=1:510=0:57(点阵)7)CGRAM地址设制:相当于

20、一个数据库,可以在其中选择所需要的符号;8)DDRAM地址设制:显示定位;9)读BF和AC:B为最高位忙的标志,F为标志位;10)写数据:将数据按要求写入到对应的单元;11)读数据:读相应单元内的数据;表3-2命令字指令名称控制信号控制代码RSRWD7D6D5D4D3D2D1D0清屏0000000001归HOME位000000001*输入方式设制00000001I/DS显示状态设制0000001DCB无标画面滚动000001S/CRL*功能设置00001DLNF*CGRAM地址设制0001A5A4A3A2A1A0DDRAM地址设制001A6A5A4A3A2A1A0读BF和AC01BFAC6AC

21、5AC4AC3AC2AC1AC0写数据10数 据读数据11数 据(3)写命令字由表3-2可知当RS=0,R/W=0时,才可以通过单片机或用户指令把数据写到LCD模块,此时就对LCD进行调制。可采用查询方式:先读入状态字,再判断忙标志位,最后写命令字。图3-10所示为写命令字的流程图。图3-10写命令字流程图1)定义光标位置显示数据的某位,就是把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。SetDDRAMaddress命令如表3-3所示。光标定位,写入一个显示字符后,DDRAM地址会自动加1或减1,加或减由输入方式设置。表3-3Set DDRAM address命令RSR/WDB7

22、DB6DB5DB4DB3DB2DB1DB0001AC6AC5AC4AC3AC2AC1AC0第1行DDRAM地址与第2行DDRAM地址并不连续,如表3-4所示。表3-4DDRAM地址row12345141516line180H81H82H83H84H8dH8eH8fHline20c0H0c1H0c2H0c3H0c4H0cdH0ceH0cfH2)LCD初始化从通电开始延时,先经过判忙后再进行功能设置,过一段时间后可以设制显示状态(如设制行、位或阵列)再经过延时清屏后才可以设置输入方式,具体实现过程如图3-11所示。图3-11LCD初始化流程图1.4.2.2 LCD显示程序设计LCD显示程序的设计一

23、般先要确定LCD的初始化、光标定位、确定显示字符后,显示流程如图3-12显示。图3-12LCD显示程序流程图第二章 软件设计根据需要,可将系统软件按照功能划分为4个模块,分别是主程序模块、A/D转换模块、液晶显示模块、中断服务程序模块(改变显示的小数点位置),各模块的功能关系如图4-1所示。编写系统软件时,可首先编写各模块的底层驱动程序,而后是系统联机调试,编写上层主程序。系统主程序液晶管显示A/D转换中断服务.图4-1系统软件框图2.1主程序设计图4-2主程序流程图主程序主要负责各个模块的初始化工作:设置定时器、寄存器的初值,启动A/D转换,读取转换结果,处理量程转换响应,控制液晶实时显示等

24、,其流程图如图4-2所示。2.2A/D转换程序A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统设置好后,单片机扫描转换结束管脚P2.6的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程序流程图如图4-3所示。图4-3A/D转换程序流程图2.3中断服务程序中断服务程序的功能是为ADC0808提供时钟信号,当中断发生时将AT89C51单片机的P2.4管脚将输出信号取反,为ADC0808提供12kHz时钟信号设计总结我的毕业设计以AT89C51单片机为控制核心,通过集成摸数转换芯片ADC0808将被测信号转换成数字信号,经单片机

25、内部程序处理后,由液晶显示器LCD1602显示测量结果,下面是对毕设的总结:1、输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动量程转换电路,将幅值较小的信号经适当放大后再测量,可显著提高精度;2、输出量可用平均值算法来改善,使测量准确度更高。3、若能将测量的电压值实时保存,使用时将更方便。4、ADC0808可实现对8个通道的输入信号轮流转换,本设计仅仅使用了其中一个通道,造成了较大的资源浪费。若能对电路稍加改进,实现对多路信号的轮流测量并自动保存相应结果,其应用价值将会更大参考文献1.黄智伟 全国大学生电子设计竞

26、赛训练教程 北京 电子工业出版社 2005.12.扬吉祥 电子测量技术基础 东南大学出版社20043.康华光 电子技术基础 北京 高等教育出版社 19994.刘维恒 实用电子电路基础 北京 电子工业出版社2004.85.王新贤 通用集成电路速查手册 济南 科学技术出版社2002附录1 程 序CLOCKBITP2.0 ST BITP2.1EOCBITP2.2OEBITP2.3LED_0EQU30HLED_1EQU31HLED_2EQU32HSHUJUEQU35H ORG00H SJMPSTART ORG0BH LJMPINT_T0START:MOVLED_0,#00H MOVLED_1,#00H

27、 MOVLED_2,#00H MOVDPTR,#TABLE ;设置段码首地址 MOVTMOD,#02H ;设定时器0为工作方式2 MOVTH0,#245 ;存放计数初值 MOVTL0,#00H MOVIE,#82H ;开启中断 SETBTR0 ;启动T0HUAN:CLR ST SETBST CLR ST ;启动A/D转换 JNB EOC,$ ;判断A/D是否转换完 SETBOE ;允许转换的数据输出 MOVSHUJU,P1 ;读取数据 CLR OE MOVA,SHUJU MOVB,#100 DIV AB ;用转换出的数据除以100 MOVLED_2,A ;存放商在LED_2地址指向的单元中 M

28、OVA,B MOVB,#10 DIV AB ;用转换出的数据除以10 MOVLED_1,A ;存放商在LED_1中地址指向的单元中 MOVLED_0,B ;存放商在LED_0中地址指向的单元中 LCALLDISP SJMPHUANINT_T0:CPL CLOCK ;向A/D转换器输送时钟信号 RETIDISP:MOVA,LED_0 MOVCA,A+DPTR ;查表读取相应的段码 CLR P2.6 MOVP0,A ;显示段码 LCALLDELAY SETBP2.6 MOVA,LED_1 MOVCA,A+DPTR CLR P2.5 ADDA,#80H MOVP0,A LCALLDELAY SETBP2.5 MOVA,LED_2 MOVCA,A+DPTR CLR P2.4 MOVP0,A LCALLDELAY SETBP2.4 RETDELAY:MOVR6,#10 ;延时5msD1:MOVR7,#250 DJNZR7,$ DJNZR6,D1 RETTABLE:DB3FH,06H,5BH,4FH,66H DB6DH,7DH,07H,7FH,6FH END (注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注)

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1