毕业设计基于51单片机的数字电压表设计.doc
《毕业设计基于51单片机的数字电压表设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于51单片机的数字电压表设计.doc(25页珍藏版)》请在三一办公上搜索。
1、目 录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
2、结论13参考文献14附录115附录2201 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。 数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。电压表的数字化测量,关键在于如何
3、把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器。它是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。由各种A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。本设计以AT89C51单片机为核心,以A/D转换器ADC0808、液晶显示器LCD1602为主体,构造了一款简易的数字电压表,能够测量8路05V直流电压,最小分
4、辨率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液晶屏
5、上轮流显示各路电压值或单路选择显示,显示范围为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工具软件的仿真功能,还能仿真
6、单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。它从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil
7、和MPLAB等多种编译器。ISIS 6 Professiona软件具有的功能:原理布图;PCB自动或人工布线;SPICE电路仿真。3.2.2 Keil uVision2Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。建造工具栏主要包括文件编译、目标文件编译连接、所有目标
8、文件编译连接、目标选项和一个目标选择窗口。调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个窗口。左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可以在这里对源文件进行编辑、修改、粘贴等。下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。3.3设计过程简易数字电压测量电路由A/D转换、数据处理及显示控制等组成。A/D转换由集成电路0808完成。0808具有8路模拟输入端口,地址(23-25)脚可决
9、定对哪路模拟输入作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两个管脚接一只晶振及两
10、只电容就构成了单片机的时钟电路,电路中电容器和对振荡频率有微调作用,通常取(3010)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引脚功能
11、图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由八路模拟开关、地
12、址锁存与译码器、比较器、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作为显示器件输出信息
13、。与传统的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位连接
14、,节约单片机资源。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)读状
15、态字:执行读状态字操作,如表3-1满足RS=0,R/W=1。根据管脚功能,当为有效电平时,状态命令字可从LCD模块传输到数据总线。同时可以保持一段时间,从而实现读状态字的功能。读状态字流程如图7所示。图7 读入状态字流程图(2)命令字表2所示为命令字,其主要介绍了指令名称、控制信号及控制代码。其指令名称是指要实现的功能;控制代号是采用的十六进制的数值表示的。1)清屏操作是指输入某命令字后即能将整个屏幕显示的内容全部清除;2)光标复位:将光标送到初始位;其中的号为任意,高低电平均可;3)模式设置:设光标移动方向并指定整体显示,是否移动。I/D=0:减量方式,S=1:移位方式,S=0:不移位;4)
16、显示开关控制: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)读数据:读相应单元内的数据;
17、表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进行调制。可采用查询方式:先读入状态
18、字,再判断忙标志位,最后写命令字。图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地址row12345141516line180H81H82
19、H83H84H8dH8eH8fHline20c0H0c1H0c2H0c3H0c4H0cdH0ceH0cfH2)LCD初始化从通电开始延时,先经过判忙后再进行功能设置,过一段时间后可以设制显示状态(如设制行、位或阵列)再经过延时清屏后才可以设置输入模式,具体实现过程如图9所示。 图9 LCD初始化流程图 图10 LCD显示程序流程图2LCD显示程序设计LCD显示程序的设计一般先要确定LCD的初始化、光标定位、确定显示字符后,显示流程如图10显示。5系统软件程序的设计根据需要,可将系统软件按照功能划分为4个模块,分别是主程序模块、A/D转换模块、液晶显示模块。编写系统软件时,可首先编写各模块的底层
20、驱动程序,而后是系统联机调试,编写上层主程序。5.1主程序设计图11 主程序流程图主程序主要负责初始化工作:设置定时器、寄存器的初值,启动A/D转换,读取转换结果,处理量程转换响应,控制液晶实时显示等,其流程图如图11所示。5.2 A/D转换程序A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统设置好后,单片机扫描转换结束管脚P3.2的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程序流程图如图12所示。图12 A/D转换程序流程图6 系统仿真首先采用Keil Vision编译器进行源程序编译及仿真调试,调试好程序后将目标文
21、件导入Proteus进行软件调试。在Proteus ISIS编辑窗口中单击开始仿真按钮,LCD液晶显示相应的电压值。调试结果如图13所示。图13 仿真结果图7 结论本设计以AT89C51单片机为控制核心,通过集成摸数转换芯片ADC0808将被测信号转换成数字信号,经单片机内部程序处理后,由液晶显示器LCD1602显示测量结果。仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量范围为0.005.00V,最小分辨率为0.02V,满足任务书指标要求。但是,该系统也存在一定程度的不足,例如:1、输入电压易发生干扰不稳定,且驱动能力可能存在不足,需在被测信号的输入端加上一部分驱动电
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 51 单片机 数字 电压表 设计
链接地址:https://www.31ppt.com/p-4149470.html