毕业设计基于51单片机的数字电压表设计.doc
目 录1 引言22 设计原理及要求23 软件仿真电路设计23.1 设计思路33.2 仿真软件简介33.2.1 Proteus 6 Professional33.2.2 Keil uVision233.3设计过程34 硬件设计44.1单片机控制模块设计44.1.1时钟电路44.1.2复位电路44.2 A/D转换模块设计54.2.1 ADC0808简介54.2.2 A/D转换电路设计64.3 显示模块设计74.3.1 LCD显示模块74.3.2 LCD1602的引脚功能74.3.3 LCD1602的显示操作75系统软件程序的设计115.1主程序设计115.2 A/D转换程序116 系统仿真127 结论13参考文献14附录115附录2201 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。 数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器。它是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。由各种A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。本设计以AT89C51单片机为核心,以A/D转换器ADC0808、液晶显示器LCD1602为主体,构造了一款简易的数字电压表,能够测量8路05V直流电压,最小分辨率0.02V。2设计原理及要求本设计是利用单片机AT89C51与ADC0808设计一个数字电压表,测量05V之间的直流电压值,LCD液晶显示,但要求使用的元器件数目最少。原理图见附录2。2.1数字电压表的实现原理 ADC0808是8位的A/D转换器。当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196(5/255)。ADC0808具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8 路输入电压进行测量。2.2数字电压表的设计要求可以测量05V范围内的8路直流电压值。在LCD液晶屏上轮流显示各路电压值或单路选择显示,显示范围为0.00V5.00V,要求测量的最小分辨率为0.02V。3软件仿真电路设计3.1设计思路 多路数字电压表应用系统硬件电路由单片机、A/D转换器和LCD显示电路组成。由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0808的CLK直接由外部电源提供为500kHz的方波。由于ADC0808的参考电压VREFVCC,所以转换之后的数据要经过数据处理,在LCD上显示出电压值。3.2 仿真软件简介3.2.1 Proteus 6 ProfessionalISIS 6 Professiona软件它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。它从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。ISIS 6 Professiona软件具有的功能:原理布图;PCB自动或人工布线;SPICE电路仿真。3.2.2 Keil uVision2Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个窗口。左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可以在这里对源文件进行编辑、修改、粘贴等。下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。3.3设计过程简易数字电压测量电路由A/D转换、数据处理及显示控制等组成。A/D转换由集成电路0808完成。0808具有8路模拟输入端口,地址(23-25)脚可决定对哪路模拟输入作A/D转换,22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2us宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为0808的时钟输入端,由外部信号源提供。4 硬件设计4.1单片机控制模块设计单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处理,主要由单片机、时钟电路、复位电路组成。4.1.1时钟电路单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XYAL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器和对振荡频率有微调作用,通常取(30±10)pF石英晶体选择6MHz或12MHz都可以。时钟电路如图1所示。 图1 系统时钟电路 图2 系统复位电路4.1.2复位电路单片机的RST管脚为主机提供了一个外部复位信号输入口。复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。单片机的复位方式可由手动复位方式完成。复位电路如图2所示。4.2 A/D转换模块设计A/D转换器能把输入的模拟电压直接转换为输出的数字代码,而不需要经过中间变量。主要由比较器、环形分配器、控制门、寄存器与D/A转换器组成。4.2.1 ADC0808简介1ADC0808引脚功能图3 引脚图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上升为高电平时,表明内部A/D转换已完成。2ADC0808内部结构图A/D转换器ADC0808由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。其内部结构如图4所示。图4 ADC0808内部结构4.2.2 A/D转换电路设计集成模数转换芯片ADC0808实现的A/D转换电路如图5所示,被测信号由ADC0808模拟输入端输入,完成A/D转换后送入单片机,经相应处理后送出显示。图5 ADC0808与单片机的连接4.3 显示模块设计4.3.1 LCD显示模块LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。4.3.2 LCD1602的引脚功能LCD1602模块的引脚如图6所示,其引脚功能如下:RS:数据和指令选择控制端,RS=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:接地端。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图6 LCD1602模块4.3.3 LCD1602的显示操作1四种基本操作LCD有四种基本操作,具体如表1所示。表1 LCD与单片机之间有四种基本操作RSR/W操作00写命令操作(初始化,光标定位等)01读状态操作(读忙标志位)10写数据操作(要显示内容)11读数据操作(可以把显示存储区中的数据反读出来)(1)读状态字:执行读状态字操作,如表3-1满足RS=0,R/W=1。根据管脚功能,当为有效电平时,状态命令字可从LCD模块传输到数据总线。同时可以保持一段时间,从而实现读状态字的功能。读状态字流程如图7所示。图7 读入状态字流程图(2)命令字表2所示为命令字,其主要介绍了指令名称、控制信号及控制代码。其指令名称是指要实现的功能;控制代号是采用的十六进制的数值表示的。1)清屏操作是指输入某命令字后即能将整个屏幕显示的内容全部清除;2)光标复位:将光标送到初始位;其中的号为任意,高低电平均可;3)模式设置:设光标移动方向并指定整体显示,是否移动。I/D=0:减量方式,S=1:移位方式,S=0:不移位;4)显示开关控制:D指设置整体显示开关;C指设置光标显示开关;B指设置光标的字符闪耀;5)光标画面滚动:R/L指右移或左移;S/C指移动总体或光标;6)功能设置:DL接口数位,N指显示行数,F显示字型;DL=1,8位数据长度;DL=0,4位数据长度。N=1,双行显示;N=0,单行显示。F=1,5*10点阵字体;F=0,5*7点阵字体。7)CGRAM地址设制:将6位CGRAM地址写入地址指针计数器AC中;8)DDRAM地址设制:将7位CGRAM地址写入地址指针计数器AC中;9)读BF和AC:B为最高位忙的标志,F为标志位;10)写数据:将数据按要求写入到对应的单元;11)读数据:读相应单元内的数据;表2 命令字指令名称控制信号控制代码RSRWD7D6D5D4D3D2D1D0清屏0000000001光标复位000000001*模式设置00000001I/DS显示开关控制0000001DCB无标画面滚动000001S/CRL*功能设置00001DLNF*CGRAM地址设制0001A5A4A3A2A1A0DDRAM地址设制001A6A5A4A3A2A1A0读BF和AC01BFAC6AC5AC4AC3AC2AC1AC0写数据10数 据读数据11数 据(3)写命令字由表2可知当RS=0,R/W=0时,才可以通过单片机或用户指令把数据写到LCD模块,此时就对LCD进行调制。可采用查询方式:先读入状态字,再判断忙标志位,最后写命令字。图8所示为写命令字的流程图。图8 写命令字流程图1)定义光标位置显示数据的某位,就是把显示数据写在相应的DDRAM地址中,DDRAM地址占7位。Set DDRAM address命令如表3所示。光标定位,写入一个显示字符后,DDRAM地址会自动加1或减1,加或减由输入方式设置。表3 Set DDRAM address命令RSR/WDB7DB6DB5DB4DB3DB2DB1DB0001AC6AC5AC4AC3AC2AC1AC0第1行DDRAM地址与第2行DDRAM地址并不连续,如表4所示。表4 DDRAM地址row12345141516line180H81H82H83H84H8dH8eH8fHline20c0H0c1H0c2H0c3H0c4H0cdH0ceH0cfH2)LCD初始化从通电开始延时,先经过判忙后再进行功能设置,过一段时间后可以设制显示状态(如设制行、位或阵列)再经过延时清屏后才可以设置输入模式,具体实现过程如图9所示。 图9 LCD初始化流程图 图10 LCD显示程序流程图2LCD显示程序设计LCD显示程序的设计一般先要确定LCD的初始化、光标定位、确定显示字符后,显示流程如图10显示。5系统软件程序的设计根据需要,可将系统软件按照功能划分为4个模块,分别是主程序模块、A/D转换模块、液晶显示模块。编写系统软件时,可首先编写各模块的底层驱动程序,而后是系统联机调试,编写上层主程序。5.1主程序设计图11 主程序流程图主程序主要负责初始化工作:设置定时器、寄存器的初值,启动A/D转换,读取转换结果,处理量程转换响应,控制液晶实时显示等,其流程图如图11所示。5.2 A/D转换程序A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统设置好后,单片机扫描转换结束管脚P3.2的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程序流程图如图12所示。图12 A/D转换程序流程图6 系统仿真首先采用Keil Vision编译器进行源程序编译及仿真调试,调试好程序后将目标文件导入Proteus进行软件调试。在Proteus ISIS编辑窗口中单击开始仿真按钮,LCD液晶显示相应的电压值。调试结果如图13所示。图13 仿真结果图7 结论本设计以AT89C51单片机为控制核心,通过集成摸数转换芯片ADC0808将被测信号转换成数字信号,经单片机内部程序处理后,由液晶显示器LCD1602显示测量结果。仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量范围为0.005.00V,最小分辨率为0.02V,满足任务书指标要求。但是,该系统也存在一定程度的不足,例如:1、输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动量程转换电路,将幅值较小的信号经适当放大后再测量,可显著提高精度;2、输出量可用平均值算法来改善,使测量准确度更高。3、若能将测量的电压值实时保存,使用时将更方便。经过一周的努力终于设计成功,LCD的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。 本设计参考了教材上89C51与ADC0808转换的接口连线,设计出电路图的连线,从并中理解了许多基本的知识和接线方法,在程序的设计与电压表调试的过程中中遇到了很多的问题,刚开始时LCD屏根本不显示,经过仔细地检查电路和修改程序,程序转移到单路循环显示,功夫不负有心人,最后终于调试成功。在此向带领我们这次课程设计的老师和互帮互助的同学们说声:谢谢! 参考文献1 李群芳.单片机原理、接口及应用M.北京:清华大学出版社,20052 彭为等.单片机典型系统设计实例精讲M.北京:电子工业出版社,2006附录1源程序ORG0000HAJMPMAINMAIN:MOV R3,#0MOVR4,#0MOV R5,#01H ;输出路kMOV R7,#0 ;通道控制MOV R0,#30H ;内部数据存储器起始地址MOV DPTR,#7FF8H ;第1路地址START:MOVXDPTR,AJNBP3.2,$MOVX A,DPTRMOV R0,AINC R7CJNE R7,#8,NEXTMOVR7,#0MOVR0,#30HLJMP NEXT1NEXT:INC DPTRINC R0MOVX DPTR,AAJMP STARTNEXT1:AJMPMAIN11RSEQUP3.3RWEQUP3.4EEQUP3.5MOVR2,#00HMOVR0,#30HMAIN11:MOVSP,#60HMOVR1,#40HMOVA,R0MOV B,#51DIV ABMOVR1,AINCR1MOVR1,#0AHINCR1MOV A,BMOV B,#5DIV ABMOVR1,AINCR1MOVA,BMOVR1,AINCR0CJNER0,#38H,MAINACALLDD1;DD1是LCD初始化MOVDPTR,#TABLE1ACALLDD2;DD2是LCD第一行显示TABLE1MOV DPTR,#TABLE3ACALL DD3ACALLPPP ;PPP是LCD第二行显示RAM中40H到43H中的数据DELAY6:MOV R6,#255PP:MOVR3,#255PP1:NOPNOPNOPNOPDJNZR3,PP1DJNZR6,PPINCR0CJNER0,#38H,MAIN11SJMPMAINSJMP$DD1:MOV P1,#01H;清屏CALLENABLEMOV P1,#38H;显示功能 CALLENABLEMOV P1,#0cH;显示开关控制 CALL ENABLEMOV P1,#06H;+1CALL ENABLERETDD2:MOV P1,#81H;第一行的开始位置CALL ENABLECALLWRITE1;到TABLE1取码RETDD3:MOV P1,#80H;第二行的位置CALLENABLECALL WRITE5;到TABLE2 取码RETENABLE:CLR RS ;送命令CLR RWCLR ECALL DELAYSETB ERETWRITE1: MOV R1,#00H;显示TABLE中的值A1: MOV A,R1;到TABLE取码MOVC A,A+DPTRCALL WRITE2 ;显示到LCDINCR1CJNE A,#00H,A1 ;是否到00HRETWRITE5:MOV A,R2MOVCA,A+DPTRCALL WRITE2INC R2 CJNER2,#08H,YYMOV R2,#00HYY:RETWRITE2:MOV P1,A ;显示SETBRSCLR RWCLRECALLDELAYSETBERETDELAY: PUSHACCMOVA,R4MOV R4,#05D1:MOV R5,#0FFHDJNZ R5,$DJNZ R4,D1MOVR4,APOPACCRETPPP:MOV P1,#0C0H;第二行的位置CALL ENABLEMOV DPTR,#TAB;显示CALL WRITE3;到TABLE2 取码RETWRITE3:MOVR1,#40H ;显示TABLE中的值MOVR7,#04HA2: MOV A,R1;到TABLE取码MOVC A,A+DPTRCALL WRITE2 ;显示到LCDINCR1DJNZR7,A2 ;是否到00HRETTABLE1: DB"INT",00H;"INT2",00H,"INT3" DB00H,"INT4",00H,"INT5",00HDB"INT6",00H,"INT7",00H,"INT8"DB00HTAB:DB30H,31H,32H,33HDB34H,35H,36H,37H DB38H,39HTABLE3:DB 31H,32H,33HDB34H,35H,36H,37H DB38H,39H END附录2原理图Employment tribunals sort out disagreements between employers and employees.You may need to make a claim to an employment tribunal if:· you don't agree with the disciplinary action your employer has taken against you· your employer dismisses you and you think that you have been dismissed unfairly.For more information about dismissal and unfair dismissal, see Dismissal.You can make a claim to an employment tribunal, even if you haven't appealed against the disciplinary action your employer has taken against you. However, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.Remember that in most cases you must make an application to an employment tribunal within three months of the date when the event you are complaining about happened. If your application is received after this time limit, the tribunal will not usually accept i.If you are worried about how the time limits apply to you, take advice from one of the organisations listed under Further help.Employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.Most people find making a claim to an employment tribunal challenging. If you are thinking about making a claim to an employment tribunal, you should get help straight away from one of the organisations listed under Further help.If you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you win the case. This is known as a damages-based agreement. In England and Wales, your solicitor can't charge you more than 35% of your compensation if you win the case.If you are thinking about signing up for a damages-based agreement, you should make sure you're clear about the terms of the agreement. It might be best to get advice from an experienced adviser, for example, at a Citizens Advice Bureau. To find your nearest CAB, including those that give advice by e-mail, click on nearest CAB.For more information about making a claim to an employment tribunal, see Employment tribunals.The (lack of) air up there Watch mCayman Islands-based Webb, the head of Fifa's anti-racism taskforce, is in London for the Football Association's 150th anniversary celebrations and will attend City's Premier League match at Chelsea on Sunday."I am going to be at the match tomorrow and I have asked to meet Yaya Toure," he told BBC Sport."For me it's about how he felt and I would like to speak to him first to find out what his experience was."Uefa has opened disciplinary proceedings against CSKA for the "racist behaviour of their fans" during City's 2-1 win.Michel Platini, president of European football's governing body, has also ordered an immediate investigation into the referee's actions.CSKA said they were "surprised and disappointed" by Toure's complaint. In a statement the Russian side added: "We found no racist insults from fans of CSKA."Age has reached the end of the beginning of a word. May be guilty in his seems to passing a lot of different life became the appearance of the same day; May be back in the past, to oneself the paranoid weird belief disillusionment, these days, my mind has been very messy, in my mind constantly. Always feel oneself should go to do something, or write something. Twenty years of life trajectory deeply shallow, suddenly feel something, do it.一字开头的年龄已经到了尾声。或许是愧疚于自己似乎把转瞬即逝的很多个不同的日子过成了同一天的样子;或许是追溯过去,对自己那些近乎偏执的怪异信念的醒悟,这些天以来,思绪一直很凌乱,在脑海中不断纠缠。总觉得自己自己似乎应该去做点什么,或者写点什么。二十年的人生轨迹深深浅浅,突然就感觉到有些事情,非做不可了。The end of our life, and can meet many things really do?而穷尽我们的一生,又能遇到多少事情是真正地非做不可?During my childhood, think lucky money and new clothes are necessary for New Year, but as the advance of the age, will be more and more found that those things are optional; Junior high school, thought to have a crush on just means that the real growth, but over the past three years later, his writing of alumni in peace, suddenly found that isn't really grow up, it seems is not so important; Then in high school, think don't want to give vent to out your inner voice can be in the high school children of the feelings in a period, but was eventually infarction when graduation party in the throat, later again stood on the pitch he has sweat profusely, looked at his thrown a basketball hoops, suddenly found himself has already can't remember his appearance.童年时,觉得压岁钱和新衣服是过年必备,但是随着年龄的推进,会越来越发现,那些东西根本就可有可无;初中时,以为要有一场暗恋才意味着真正的成长,但三年过去后,自己心平气和的写同学录的时候,突然就发现是不是真正的成长了,好像并没有那么重要了;然后到了高中,觉得非要吐露出自己的心声才能为高中生涯里的懵懂情愫划上一个句点,但毕业晚会的时候最终还是被梗塞在了咽喉,后来再次站在他曾经挥汗如雨的球场,看着他投过篮球的球框时,突然间发现自己已经想不起他的容颜