基于单片机的数字电压表的课程设计_第1页
基于单片机的数字电压表的课程设计_第2页
基于单片机的数字电压表的课程设计_第3页
基于单片机的数字电压表的课程设计_第4页
基于单片机的数字电压表的课程设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录1引言22设计原理及要求 23软件仿真电路设计 23.1设计思路33.2仿真软件简介33.2.1Proteus6Professional33.2.2KeiluVision233.3设计过程34硬件设计44.1单片机控制模块设计44.1.1时钟电路44.1.2复位电路44.2A/D转换模块设计54.2.1ADC0808简介54.2.2A/D转换电路设计64.3显示模块设计74.3.1LCD显示模块74.3.2LCD1602的引脚功能74.3.3LCD1602的显示操作75系统软件程序的设计115.1主程序设计115.2A/D转换程序116系统仿真127结论13参考文献14附录1 15附录2201引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍A/D转换器以及由它们构成的基于单片机的数字电压表的工作原理。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器。它是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。由各种A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。本设计以AT89C51单片机为核心,以A/D转换器ADC0808、液晶显示器LCD1602为主体,构造了一款简易的数字电压表,能够测量8路0~5V直流电压,最小分辨率0.02V。2设计原理及要求本设计是利用单片机AT89C51与ADC0808设计一个数字电压表,测量0-5V之间的直流电压值,LCD液晶显示,但要求使用的元器件数目最少。原理图见附录2。2.1数字电压表的实现原理ADC0808是8位的A/D转换器。当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196(5/255)。ADC0808具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8路输入电压进行测量。2.2数字电压表的设计要求可以测量0~5V范围内的8路直流电压值。在LCD液晶屏上轮流显示各路电压值或单路选择显示,显示范围为0.00V~5.00V,要求测量的最小分辨率为0.02V。3软件仿真电路设计3.1设计思路多路数字电压表应用系统硬件电路由单片机、A/D转换器和LCD显示电路组成。由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0808的CLK直接由外部电源提供为500kHz的方波。由于ADC0808的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在LCD上显示出电压值。3.2仿真软件简介3.2.1Proteus6ProfessionalISIS6Professiona软件它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。它从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。ISIS6Professiona软件具有的功能:原理布图;PCB自动或人工布线;SPICE电路仿真。3.2.2KeiluVision2Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。KeilC51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个窗口。左边的工程窗口包含一个工程的目标(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.2A/D转换模块设计A/D转换器能把输入的模拟电压直接转换为输出的数字代码,而不需要经过中间变量。主要由比较器、环形分配器、控制门、寄存器与D/A转换器组成。4.2.1ADC0808简介1.ADC0808引脚功能图3引脚图IN0~IN7:8路模拟量输入。A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。D0~D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。2.ADC0808内部结构图A/D转换器ADC0808由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。其内部结构如图4所示。图4ADC0808内部结构4.2.2A/D转换电路设计集成模数转换芯片ADC0808实现的A/D转换电路如图5所示,被测信号由ADC0808模拟输入端输入,完成A/D转换后送入单片机,经相应处理后送出显示。图5ADC0808与单片机的连接4.3显示模块设计4.3.1LCD显示模块LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。4.3.2LCD1602的引脚功能LCD1602模块的引脚如图6所示,其引脚功能如下:RS:数据和指令选择控制端,RS=0命令状态;RS=1数据。R/W:读写控制线,R/W=0写操作;R/W=1读操作。A:背光控制正电源,K:背光控制地。E:数据读写操作控制位,E线向LCD模块发送一个脉冲,LCD模块与单片机间将进行一次数据交换。DB0~DB7:数据线,可以用8位连接,也可以只用高4位连接,节约单片机资源。VDD:电源端,VEE:亮度控制端(1-5V),VSS:接地端。VSSVDDVORSR/WEDB0DB1DB2DB3DB4DB5DB6DB7AKVSSVDDVORSR/WEDB0DB1DB2DB3DB4DB5DB6DB7AKLCD模块12345678910111213141516图6LCD1602模块4.3.3LCD1602的显示操作1.四种基本操作LCD有四种基本操作,具体如表1所示。表1LCD与单片机之间有四种基本操作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位。SetDDRAMaddress命令如表3所示。光标定位,写入一个显示字符后,DDRAM地址会自动加1或减1,加或减由输入方式设置。表3SetDDRAMaddress命令RSR/WDB7DB6DB5DB4DB3DB2DB1DB0001AC6AC5AC4AC3AC2AC1AC0第1行DDRAM地址与第2行DDRAM地址并不连续,如表4所示。表4DDRAM地址row12345…141516line180H81H82H83H84H…8dH8eH8fHline20c0H0c1H0c2H0c3H0c4H…0cdH0ceH0cfH2)LCD初始化从通电开始延时,先经过判忙后再进行功能设置,过一段时间后可以设制显示状态(如设制行、位或阵列)再经过延时清屏后才可以设置输入模式,具体实现过程如图9所示。图9LCD初始化流程图图10LCD显示程序流程图2.LCD显示程序设计LCD显示程序的设计一般先要确定LCD的初始化、光标定位、确定显示字符后,显示流程如图10显示。5系统软件程序的设计根据需要,可将系统软件按照功能划分为4个模块,分别是主程序模块、A/D转换模块、液晶显示模块。编写系统软件时,可首先编写各模块的底层驱动程序,而后是系统联机调试,编写上层主程序。5.1主程序设计图11主程序流程图主程序主要负责初始化工作:设置定时器、寄存器的初值,启动A/D转换,读取转换结果,处理量程转换响应,控制液晶实时显示等,其流程图如图11所示。5.2A/D转换程序A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统设置好后,单片机扫描转换结束管脚P3.2的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程序流程图如图12所示。图12A/D转换程序流程图6系统仿真首先采用KeilμVision编译器进行源程序编译及仿真调试,调试好程序后将目标文件导入Proteus进行软件调试。在ProteusISIS编辑窗口中单击开始仿真按钮,LCD液晶显示相应的电压值。调试结果如图13所示。图13仿真结果图7结论本设计以AT89C51单片机为控制核心,通过集成摸数转换芯片ADC0808将被测信号转换成数字信号,经单片机内部程序处理后,由液晶显示器LCD1602显示测量结果。仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量范围为0.00~5.00V,最小分辨率为0.02V,满足任务书指标要求。但是,该系统也存在一定程度的不足,例如:1、输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动量程转换电路,将幅值较小的信号经适当放大后再测量,可显著提高精度;2、输出量可用平均值算法来改善,使测量准确度更高。3、若能将测量的电压值实时保存,使用时将更方便。经过一周的努力终于设计成功,LCD的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。

本设计参考了教材上89C51与ADC0808转换的接口连线,设计出电路图的连线,从并中理解了许多基本的知识和接线方法,在程序的设计与电压表调试的过程中中遇到了很多的问题,刚开始时LCD屏根本不显示,经过仔细地检查电路和修改程序,程序转移到单路循环显示,功夫不负有心人,最后终于调试成功。在此向带领我们这次课程设计的老师和互帮互助的同学们说声:谢谢!参考文献[1]李群芳.单片机原理、接口及应用[M].北京:清华大学出版社,2005[2]彭为等.单片机典型系统设计实例精讲[M].北京:电子工业出版社,2006附录1源程序ORG 0000HAJMPMAINMAIN:MOVR3,#0MOVR4,#0MOVR5,#01H;输出路kMOVR7,#0;通道控制MOVR0,#30H;内部数据存储器起始地址MOVDPTR,#7FF8H;第1路地址START:MOVX@DPTR,AJNBP3.2,$MOVXA,@DPTRMOV@R0,AINCR7CJNER7,#8,NEXTMOVR7,#0MOVR0,#30HLJMPNEXT1NEXT:INCDPTRINCR0MOVX@DPTR,AAJMPSTARTNEXT1:AJMP MAIN11RS EQU P3.3RW EQU P3.4E EQU P3.5MOV R2,#00HMOV R0,#30HMAIN11: MOV SP,#60HMOV R1,#40HMOV A,@R0MOVB,#51DIVABMOV @R1,AINC R1MOV @R1,#0AHINC R1MOVA,BMOVB,#5DIVABMOV @R1,AINC R1MOV A,BMOV @R1,AINC R0CJNE R0,#38H,MAINACALL DD1 ;DD1是LCD初始化MOV DPTR,#TABLE1ACALL DD2;DD2是LCD第一行显示TABLE1MOVDPTR,#TABLE3ACALLDD3ACALL PPP;PPP是LCD第二行显示RAM中40H到43H中的数据DELAY6:MOVR6,#255PP:MOV R3,#255PP1:NOPNOPNOPNOPDJNZ R3,PP1DJNZ R6,PPINC R0CJNE R0,#38H,MAIN11SJMP MAINSJMP $DD1: MOV P1,#01H ;清屏 CALLENABLE MOV P1,#38H ;显示功能 CALLENABLE MOV P1,#0cH ;显示开关控制 CALLENABLE MOV P1,#06H ;+1 CALLENABLE RETDD2: MOV P1,#81H;第一行的开始位置CALLENABLE CALLWRITE1;到TABLE1取码 RETDD3: MOV P1,#80H;第二行的位置 CALLENABLE CALLWRITE5;到TABLE2取码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论