您好,欢迎访问三七文档
两路电压表设计目录1引言..........................................................12设计要求......................................................12.1基本要求..................................................13.主要设计......................................................13.1LCD160128简介.............................................13.2与主控制器的通信..........................................24.模块分析......................................................44.1AT89C51单片机.............................................44.2A/D转换...................................................54.3显示电路..................................................65.软件设计.....................................................76.硬件电路图设计................................................8总结............................................................9参考文献........................................................10两路电压表设计两路电压表设计11.引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,各种数字系统的应用也使人们的生活更加舒适。数字化控制、智能控制为现代人的工作、生活、科研等方面带来方便。该设计使用AT89C51单片机作控制器,LED数码管,单片机接受传感器输出,经处理用LED数码管实现电压值显示。2.设计要求2.1基本要求数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。。3.主要设计3.1LCD160128简介LCD160128是一种图形点阵液晶显示模组。它用T6963C作为控制器,KS0086作为驱动的160(列)X128(行)的全点阵液晶显示。具有与INTER8080时序相适配的MPU接口功能,并有专门的指令集,可完成文本显示和图形显示的功能设置。LCD160128液晶显示器的工作电压为+5V士10%,能够显示显示10个(/行)X8共120个(16X16点阵)的中文字符,共有13条操作指令。两路电压表设计21.芯片引脚及其功能表1引脚功能3.2与主控制器的通信1.读状态在数据读写操作之前必须进行状态检查。T6963C的状态可以从数据总线中读取。此时RD#和CE#引脚为低电平,WR#和C/D#引脚为高电平。状态字格式如下所示:MSBLSBSTA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0表2状态子STA0指令读写状态0:禁止;1:使能;STA1数据读写状态0:禁止;1:使能;两路电压表设计3STA2自动模式数据读状态0:禁止;1:使能;STA3自动模式数据写状态0:禁止;1:使能;STA4保留STA5控制器操作状态0:禁止;1:使能;STA6读屏/考屏错误标志0:无错误;1:错误;STA7闪烁状态检查0:关显示;1:正常显示注意1:必须同时检查STA0与STA1的状态,由于硬件中断可能引起数据错误操作。注意2:STA0与STA1用于大多数模式的状态检查。注意3:STA2与STA3用于自动模式数据读写使能,此模式下,STA0与STA1无效。状态检查流程:图1状态检查流程图2.在T6963C指令中有的指令需要参数的补充,T6963C指令参数的输入是在指令代码写入之前。下面是T6963C指令写入的流程图。两路电压表设计4图3T6963C指令写入的流程图4.模块分析4.1AT89C51单片机接口分配电路设计如右图2所示:P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在这里P0口作为输入与输出分别与ADC0808的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ的电阻拉高。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由图2单片机接口电路两路电压表设计5于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。这里只用到了P2.0~P2.3四个端口,其中P2.1~P2.3都是作为输出端口控制显示电路的寄存器选择、读写信号和使能端口。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,在这里用到了P3.3/INT1(外部中断1)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数据存储器读选通)。4.2A/D转换接口分配电路设计如图3所示:IN0~IN7为8路模拟量输入端,这里只接一路电压信号,其输入信号是由直流电源及可调电阻提供。OUT1~OUT8为8位二进制数字量输出端,其另一端连接到AT89C51单片机进行数值转换。ADDA、ADDB、ADDC为3位片选地址输入线,用于选通8路模拟输入中的一路。ALE为地址锁存允许信号,由单片机P3.6口写信号与P2.0口相或取反输入,高电平有效。START为A/D转换启动脉冲输入端,由单片机P3.6口写信号与P2.0口相或取反输入一个正脉冲使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。EOC为A/D转换结束信号,当A/D转换结束时,此端输出一个高电平取反给P3.3口(转换期间一直为低电平)。OE为数据输出允许信号,高电平有效。当A/D转换结束时,此端由单片机P3.7读信号与P2.0口相或后取反输入一个高电平,才能打开输出三态门,输出数字量。图3A/D转换电路两路电压表设计64.3显示电路接口分配设计如图4所示:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。由单片机P2.1口控制R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。由单片机P2.2口控制E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。由单片机P2.3口控制D0~D7为8位双向数据线。由单片机P0口输入,经过阻值为1KΏ的上拉电阻连接。主程序的内容包括:起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序的调用等。根据设计要求,设计出如图5所示的主程序流程图。图5程序流程图A/D转换子程序设计:A/D转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统图4显示电路两路电压表设计7置好后,单片机扫描转换结束管脚P3.7的输入电平状态,当输入为高电平则转换完成,将转换的数值显示输出。若输入为低电平,则继续扫描。程序流程图如图6所示。5.软件设计根据需要,可将系统软件按照功能划分为3个模块,分别是主程序模块、A/D转换模块、液晶显示模块。编写系统软件时,可首先编写各模块的底层驱动程序,而后是系统联机调试,最后编写上层主程序。由于前面的项目我们对ADC0832进行了详细的介绍,在此我们不再赘述。因此我们主要重点是主程序的设计和LCD160128液晶显示程序的设计,特别是LCD160128液晶显示程序,使我们这个项目的重点。1、主程序模块图6A/D转换子程序流程图两路电压表设计8主程序任务简单,主要完成液晶显示器的初始化工作,同时在死循环程序里不断的调用模数转换函数Get_Value_AT89C51()和液晶显示函数Display_Str_at_xy(ucharx,uchary,uchar*fmt);从而完成电压的检测和显示。2、LCD160128液晶显示模块液晶显示模块主要用来实时显示电压值、固定字符和汉字。根据LCD160128液晶显示器技术资料可知,在编制C代码时,我们把程序分为两部分:LCD_160128.C源文件和LCD_160128.H头文件。在LCD_160128.C源文件定义了一些函数,其中最主要的函数是Display_Str_at_xy(ucharx,uchary,uchar*fmt)。其具体代码参加附录程序。另外,显示的汉字必须用字模软件取得该汉字的字模。6.硬件电路图设计本项目的硬件电路图比较简单,主要包括单片机最小系统、何应用89C51电压采集电路和LCD160128液晶显示电路。具体连接方法如下图所示。图6-4-11系统硬件连接图两路电压表设计9总结这虽然是一个数字电压表的设计但是实际上就是一个数据采集的程序设计,只不过这里数据采集的是模拟电压罢了。虽然这个单片机的课题比较简单,但是从中我还是学到了许多新东西。在之前的学习过程中没有用到Proteus这个软件,所以刚刚开始的时候一边在百度里看Proteus入门教程一边实践操作Proteus这个软件,不过幸好以前学过绘图软件,举一反三的在短时间内把Proteus磕磕碰碰学会了。想想我们在大学里速学软件还是比较有心得:在一两天内只学这个软件,或许还算不上熟练但是入门还是可以了。在Proteus软件部分的设计中也让我感受良多。就像A/D转换器在Proteus中仿真软件ADC080有问题所以用ADC0808代替。而且ADC0808是单极性,输入电压范围为0~+5V,而我们课题要求的是0~+15V,所以我利用参考电压可以达到15V这一点把0~+15V转化成0~5V,进行模数转换。在局部电路图中遇到很多问题,通过查阅大量资料以及老师和同学的帮助讲解才逐渐懂得如何应用。如在Proteus软件中仿真选用了最常用的直流电压电源和可调电阻组成0~+15V的模拟电压,而在试验台上可以直接连接可调电压源。这种方法是平时很少注意到的基础性知识运用,在这次的课程设计中让我又有了新的收获。总的来说结果还是完成了设计任务,对单片机有了一种新的认识。两路电压表设计10参考文献:[1]王迎旭.单片机原理与应用.机械工业出版社.[2]周向红.51系列单片机应用与实践教程.北京航空航天大学出版社[3]何立民.单片机应用系统设计.北京航空航天大学出版社[4]蔡朝洋.单片机控制实习与专题制作.北京航空航天大学出版社[5]楼然苗.51系列单片机设计实例[M].北京航空航天大学出版社.[6]陈明荧.8051单片机课程设计实训教材[M].清华大学出版社.
本文标题:两路电压表
链接地址:https://www.777doc.com/doc-5813853 .html