水位测量仪的液晶显示电路设计_第1页
水位测量仪的液晶显示电路设计_第2页
水位测量仪的液晶显示电路设计_第3页
水位测量仪的液晶显示电路设计_第4页
水位测量仪的液晶显示电路设计_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

○○A基础理论●B应用研究○C调查报告○D其他本科生毕业设计水位测量仪的液晶显示电路设计二级学院:信息科学与技术学院专业:电气工程及其自动化完成日期:2015年5月24日

目录1引言 12系统的整体方案设计 12.1功能要求 12.2设计要求 12.3系统基本方案选择和论证 22.4单片机芯片的选择方案论证 23系统的硬件设计 33.1电路设计框图 33.1.1主控制器芯片AT89C52概述 33.2液晶屏1602的简单介绍 43.2.1液晶屏1602的简要概述 43.2.2液晶屏1602的使用具体 53.3系统功能电路 93.3.1最小工作系统原理 93.3.2蜂鸣器报警电路原理 103.3.3电机驱动电路原理 113.3.4按键功能电路原理 123.3.5液晶1602显示功能电路图 133.3.6系统总体原理图设计 144系统的软件设计 144.1PWM调速控制概述 144.1.1PWM脉宽调制简介 144.1.2PWM调节的具体过程 144.2系统程序的设计 154.2.1程序设计步骤 154.2.2程序流程图 164.3程序源代码 185调试 186总结 18参考文献 19附录 21致谢水位测量仪的液晶显示电路设计摘要:液晶屏可以显示所要显示的内容,使仪器的操作更加方便,在目前新型的仪器中得到了广泛的应用。在对压力容器液位的显示电路中,采用液晶屏作为它的显示器。本设计首先介绍了Philips公司生产的单片机AT89C52和LCD1602显示的内部结构和工作原理,并对单片机和液晶显示器之间的接口电路进行了设计。对于液晶显示器的控制,采用汇编语言对液晶显示程序进行了设计和编制,实现对其的控制。由试验可知,该液晶显示器通过单片机的控制能够进行可靠的工作,同时具有操作简单、显示内容丰富等特点。关键词:单片机控制;水位检测;LCD1602显示;PWM电机调速DesignofliquidcrystaldisplaycircuitforwaterlevelmeterAbstract:TouchscreenLCDcanshowthecontentsindetails.Therefore,thescreenLCDiswidelyusedinmanyequipmentsatpresent.ThepaperintroducethatthescreenLCDisusedinwaterlevelmeasurementsystemtoshowthemeasurementresults.ThepaperdescribetheprinciplesofMCU(AT89C52)andLCD1602atfirst,thenintroducetheinterfacecircuitbetweenMCU(AT89C52)andLCD.Besidesthecircuitdesign,theprogramiscompiledtocontroltheLCD.Fromtheresultsoftest,itcanbeshownthattheMCUcancontrolthescreenLCDreliably.Thewholesystemhasmanygoodcharacters,suchasoperatingconvenientlyandshowingmoremeasurementinformation.KeyWords:SCMcontrol;waterdetection;LCD1602display;PWMmotorspeed1引言水塔是在日常生活和工业应用中经常见到的蓄水装置,通过对其水位的控制对外供水以满足需要,其水位控制具有普遍性。在工业和我们的日常生活中,对水位的监测是非常必要的。大到对江河,水库等的水位,特别在洪灾或者旱灾的时候,需要及时得到第一手数据;小到对水箱,热水器水位等家用贮水容器的监测,可以减少很多危险和不必要的损。因此不仅应控制水仓水位在一定的范围之内,同时要保持一定的上下限,超过了限度则报警,从而给其排水。目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。实际供水过程中要确保水位在允许的范围内浮动,应采用水位传感器测量水位变化,从而控制电动机,保证水位正常。因此,这里给出以AT89C52单片机为核心器件的水塔水位检测控制系统,该系统能实现水塔水位检测、LCD1602显示当前水位功能以及蜂鸣器鸣笛报警,手动按键调整PWM电机调速功能,实现过低警戒水位报警、过低警戒水位处理的系统要求。2系统的整体方案设计2.1功能要求实际供水过程中要确保水位在允许的范围内浮动,应采用水位传感器测量水位变化,从而控制电动机,保证水位正常。因此,这里给出以AT89C52单片机为核心器件的水塔水位检测控制系统,该系统能实现水塔水位检测、LCD1602显示当前水位功能以及蜂鸣器鸣笛报警,手动按键调整PWM电机调速功能,实现过低和正常警戒水位报警、过低和正常警戒水位处理的系统要求。2.2设计要求按下电源按钮后,灯会闪烁几下,然后是常亮状态,蜂鸣器会响。电机不会转的,此时系统在待机状态,且为正常状态。要先选择好电机的抽水速度是哪个档位,共有4个档位。档位越高,速度越快。在电机转的时候,按下选择档位,电机立马会停止的,这个是一个软件安全冗余的设计理念。电机在水位模拟传感器端口(低水位)按下后,说明水位太低,电机转动,此时蜂鸣器会响一下,灯会闪烁几下,以此表示报警,并且液晶也会显示水位太低。当水位模拟传感器端口(正常水位)按下后,说明水位已经到正常状态,电机停转,此时蜂鸣器也会响一下,灯一样会闪烁,以此表示报警,且液晶屏也会显示水位正常。而PWM速度调整就是档位的选择,必须在电机停止的状态下去选择电机输出的速度。2.3系统基本方案选择和论证此系统可以采用多种的方式设计,能采用液罐液压检测的方式来做,这样的设计理念的前提必须是一个液压的封闭系统,这样才能有精确的压力值传送,保证系统的稳定性。但是目前很多用到的水塔水位控制系统都不是封闭的水罐,所以这个方案有一定局限性。而采用特殊的水位传感器,就可以克服上述的困难。因为液位检测器可以很精确的检测到液位系统,同样达到预期的目的,且系统的应用面很广,而且系统的安全性能很好,因此我们采取检测液位作为系统的设计思想。2.4单片机芯片的选择方案论证目前市场上的单片机的种类有很多种,最多的51单片机、avr单片机,和Msp430,以及PIC单片机,但是由于单片机的种类很多,功能各不一样,我们不需要多先进,功能多强大的单片机,我们设计的要求就是够用即可,因此我们选用目前市场上用到比较多的、且可以满足系统设计要求的51单片机。而AT89C52是一个低电压,高性能CMOS

8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。因此采用AT89C52。显示模块是系统的人机交互模块,增加了显示模块增加了系统的交互性。目前市场上用到的显示模块有很多种,有数码管显示,还有液晶显示,因为数码管只是显示数字,不能显示字符,而此系统需要用到显示当前的水位状态。这样就必须要用到字符显示的液晶显示器,液晶显示器也有很多种,但根据系统的需要我们选用的是LCD1602,很大程度上增加了系统的人机交互功能,让使用者可以得到更多系统工作的信息,更方便的使用此系统。3系统的硬件设计3.1电路设计框图系统的总体框图主要由主控芯片基本电路、按键电路、电动机和蜂鸣器驱动电路、液晶显示电路组成。除主控芯片电路外,其他的都是外围功能性电路。蜂鸣器和电动机电路驱动原理基本相同,都为三极管驱动电路,按键电路为平常的独立按键电路,液晶电路参考设计手册既可。电路设计框图如图3-1所示:图1电路设计框图3.1.1主控制器芯片AT89C52概述AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。1、兼容MCS51指令系统2、8kB可反复擦写(大于1000次)FlashROM;3、32个双向I/O口;4、256x8bit内部RAM;5、3个16位可编程定时/计数器中断;6、时钟频率0-24MHz;7、2个串行中断,可编程UART串行通道;8、2个外部中断源,共8个中断源;9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。图2AT89C52的引脚图说明3.2液晶屏1602的简单介绍3.2.1液晶屏1602的简要概述液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。字符型液晶显示模块是一类专用于显示字母、数字、符号等的点阵型液晶显示模块。aa字符型液晶显示驱动控制器广泛应用于字符型液晶显示模块上。目前最常用的字符型液晶显示驱动控制器是HD44780U,也出现使用HD667O1或HD66702等字符型液晶显示驱动控制器单片控制的字符型液晶显示模块。液晶显示驱动器为HD44100及其替代品。字符型液晶显示模块在世界上是比较通用的,而且接口格式也是比较统一的,其主要原因可能是各制造商所采用的模块控制器都是HD44780U及其兼容品,不管它的显示屏的尺寸如何,它的操作指令及其形成的模块接口信号定义都是兼容的。所以会使用一种字符型液晶显示模块,就会通晓所有的字符型液晶显示模块。3.2.2液晶屏1602的使用具体(一)指令详细解释如下:1清屏(ClearDisplay)格式0000000101H该指令完成下列功能:将空码(20H)写入DDRAM的全部80个单元内;将地址指针计数器AC清零,光标或闪烁归home位;2归home位(Returnhome)格式0000001002H该指令将地址指针计数器AC清零如果画面已滚动,则撤消滚动效果,将画面拉回到home位。3输入方式设置(EnterModeSet)格式000001I/DS04H07H该指令的功能在于设置了显示字符的输入方式,即在计算机读/写DDRAM或CGRAM后,地址指针计数器AC的修改方式,反映在显示效果上,当写入一个字符后画面或光标的移动。该指令的两个参数位1/D和S确定了字符的输入方式。I/D表示当计算机读/写DDRAM或CGRAM的数据后,地址指针计数器AC的修改方式,由于光标位置也是由AC值确定,所以也是光标移动的方式。I/D=0AC为减1计数器,光标左移一个字符位。I/D=1AC为加1计数器,光标右移一个字符位。S表示在写入字符时,是否允许显示画面的滚动。S=0禁止滚动。S=1允许滚动。S=1且I/D=O显示画面向右滚动一个字符位。S=1且I/D=1显示画面向左滚动一个字符位。4显示状态设置(Displayon/offControl)格式00001DCB08H0FH该指令控制着画面,光标及闪烁的开关。该指令有三个状态位D、C、B,这三个状态位分别控着画面,光标和闪烁的显示状态。D画面显示状态位C光标显示状态位。B闪烁显示状态位。当B=l时为闪烁启用,B=0时为闪烁禁止。5光标或画面滚动(CursorOrPictureShift)格式0001S/CR/L00执行该指令将产生画面或光标向左或向右滚动一个字符位。光标的滚动功能可以用于搜寻需要修改的显示字符。该指令有两个参数位:1.S/C滚动对象的选择S/C=l画面滚动S/C=0光标滚动2.R/L滚动方向的选择R/L=l向右滚动R/L=0向左滚动该指令与输入方式设置指令都可以产生光标或画面的滚动,区别在于该指令专用于滚动功能,执行一次,显示呈现一次滚动效果;而输入方式设置指令仅是完成了一种字符输入方式的设置,仅在计算机对DDRAM等进行操作时才能产生滚动的效果。6工作方式设置(FunctionSet)格式001DLNF00该指令设置了控制器的工作方式,包括有控制器与计算机的接口形式和控制器显示驱动的占空比系数等。该指令有三个参数DL,N和F.它们的作用是:DL设置控制器与计算机的接口形式。接口形式体现在数据总线长度上。DL=1设置数据总线为8位长度,即DB7~DBO有效。DL=0设置数据总线为4位长度,即DB7~DB4有效。在该方式下8位指令代码和数据将按先高4位后低4位的顺序分两次传输。N设置显示的字符行数。N=0为一行字符行。N=1为两行字符行。F设置显示字符的字体。F=0为5×7点阵字符体。F=1为5×10点阵字符体。7CGRAM地址设置(SetCGRAMAddress)格式01A5A4A3A2A1A0该指令将6位的CGRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对CGRAM的读/写操作。8DDRAM地址设置(SetDDRAMAddress)格式1A6A5A4A3A2A1A0该指令将7位的DDRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对DDRAM的读/写操作。9读“忙”标志和地址指针值(ReadBusyFlagandAddress)格式BFAC6AC5AC4AC3AC2AC1AC0计算机对指令寄存器通道读操作(RS=0,R/W=l)时,将读出此格式的“忙”标志BF值和7位地址指针计数器AC的当前值。计算机随时都可以对HD44780U读“忙”操作。BP值反映HD4478OU的接口状态。计算机在对HD44780U每次操作时首先都要读BF值判断HD44780U的当前接口状态,仅有在BF=01时计算机才可以向HD44780U写指令代码或显示数据和从HD44780U读出显示数据。计算机读出的地址指针计数器AC当前值可能是DDRAM地址也可能是CGRAM的地址,这取决于最近一次计算机向AC写入的是哪类地址[17]。10写数据(WriteDatatoCGorDDRAM)计算机向数据寄存器通道写入数据,HD44780U根据当前地址指针计数器AC值的属性及数值将该数据送入相应的存储器内的AC所指的单元里。在写人数据后地址指针计数器AC将根据最近设置的输入方式自动修改。由此可知,计算机在写数据操作之前要作两项工作,其一是设置或确认地址计数器AC值的属性及数值,以保证所写数据能够正确到位;其二是设置或确认输入方式,以保证连续写入数据时AC值的修改方式符合要求。11读数据(ReadDatafromCGorDDRAM)在HD44780U的内部运行时序的操作下,地址指针计数器AC的每一次修改,包括新的AC值的写入,光标滚动位移所引起的AC值的修改或由计算机读写数据操作后所产生的AC值的修改,HD44780U都会把当前AC所指单元的内容送到接口部数据输出寄存器内,供计算机读取[19]。计算机的读数据是从数据寄存器通道中数据输出寄存器读取当前所存放的数据。所以计算机在首次读数据操作之前需要重新设置一次地址指针AC值,或用光标滚动指令将地址指针计数器AC值修改到所需的地址上,然后进行的读数据操作将能获得所需的数据。在读取数据后地址指针计数器AC将根据最近设置的输入方式自动修改。由此可知,计算机在读数据操作之前要作两项工作,其一是设立或确认地址计数器AC值的属性及数值,以保证所读数据的正确性。3.3系统功能电路3.3.1最小工作系统原理图3最小系统原理图此图是单片机工作的最小系统原理图,在这个电路中又可以分为复位电路和晶振电路,如图3和图4所示:图4复位电路复位电路可以分为上电复位和手动按键复位两种。手动按键复位的原理是,在系统正常工作的过程中可以手动触动按键使单片机复位。具体原理是,按下S1按键,因此5V电压经过一个200欧姆的电阻分压后加到系统的RST上,手动按键按下到抬起的过程足以使系统复位。图5晶振电路在设计单片机系统电路时,晶振电路时不可缺失的,在计算机系统中,所有的工作都是一个节拍下同步工作,这是才不会出现冲突。时钟的快慢决定了系统的工作效率,我们所说的计算机的主频就是指系统时钟的频率,而在计算机系统中,系统的时钟是有晶振电路来提供的。可以说晶振电路时单片机的心脏,18,19号引脚接的是11.0592M的晶振。3.3.2蜂鸣器报警电路原理图6蜂鸣器报警功能电路蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。压电式蜂鸣器需要比较高的电压才能有足够的音压,一般建议为9V以上。电磁式蜂鸣器:用1.5V就可以发出85dB以上的音压了,唯消耗电流会大大的高于压电式蜂鸣器,电路中的电压低,而采用压电式蜂鸣器。1.蜂鸣器发声元件,在其两端施加直流电压或者方波就可以发声。2.续流二极管蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个续流二极管提供续流。否则,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其它部分。3.三极管滤波电容C1的作用是滤波,滤除蜂鸣器电流对其它部分的影响,也可改善电源的交流阻抗。蜂鸣器报警功能电路使用的是三极管8550驱动,三极管8550是PNP三极管,射极接电源+5V,基极通过一个电阻连接到P1.0口,集电极接蜂鸣器,三极管Q1起开关作用,,当P1.0为高电平时,三极管截止,蜂鸣器没有不响,当P1.0为低电平时,而三极管导通,蜂鸣器发出响声。3.3.3电机驱动电路原理图7电机驱动电路对于单向的电机驱动,只要用一个大功率三极管或场效应管或继电器直接带动电机即可,而这次电路中电机驱动电路和蜂鸣器的电路基本相同,同样使用8550三极管驱动,三极管的基极接P1.1,当P1.1为高电平时,电机不转动,当P1.1为低电平时,电机转动。需要调速,可以使用三极管,场效应管等开关元件实现PWM(脉冲宽度调制)调速。(4.1PWM介绍)3.3.4按键功能电路原理图8按键功能电路按键功能电路里面有两种按键,一种按键是模仿水塔水位开关的功能按钮,一种是电机PWM输出的调整按钮。原理是通过一个10k的电阻接到+5v电源线上,当按键没有按下时,按键没有导通,所以没有电流,但对于连到引脚上的那一端来讲是高电平。当按键按下时,因为电路导通,有电流流过,和单片机引脚接触的那一端接地,所以是低电平。因此能检测到信号的变化,交给程序处理后做出相关的动作。3.3.5液晶1602显示功能电路图图9液晶1602显示电路图液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶1602从左到右依次有16根引脚,每个引脚定义不同。第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15脚:背光源正极。

第16脚:背光源负极。有三根控制引线和八根信号线,必须注意的一点是3号引脚是背光电源指示端。背光电阻选择的不同有不同的结果。我们这里选择2.7k电阻做为背光电阻。3.3.6系统总体原理图设计系统总体原理图即是这些功能电路的组合,主要包括最小系统电路、按键电路、电机和蜂鸣器驱动电路、液晶电路组成,还包括一个按键指示灯。详细电路见附录一。4系统的软件设计C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,形成了多种版本的C语言。4.1PWM调速控制概述4.1.1PWM脉宽调制简介脉宽调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。而言之,PWM是一种对模拟信号电平进行数字编码的方法。只要带宽足够,任何模拟值都可以使用PWM进行编码。4.1.2PWM调节的具体过程脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。这种微处理器要求在软件中完成以下工作:1、设置提供调制方波的片上定时器/计数器的周期。2、在PWM控制寄存器中设置接通时间。3、设置PWM输出的方向,这个输出是一个通用I/O管脚。4、启动定时器。5、使能PWM控制器。4.2系统程序的设计4.2.1程序设计步骤程序设计就是用计算机所能接受的语言把所需解决问题的步骤逐一描述出来,也就是编制计算机的程序,在设计应用系统时,软件的编制是重要环节。软件的质量直接影响整个系统功能的实现。应用程序的设计因系统而异,但程序设计总是有共同特点及其规律的。在编写程序时,采取如下几个步骤:(1)分析问题,明确所要解决问题的要求。(2)定程序框图。(3)合理分配系统资源。(4)根据程序的流程图和指令系统编写出程序。(5)程序调试。(6)程序优化。4.2.2程序流程图PWM调速按键调整子程序PWM调速按键调整子程序检测是否有按键按下YN延时15ms,确定有按键按下N检测哪一个按键按下先停止电机,PWM速度增加液晶屏显示速度值增加先停止电机,PWM速度减少液晶屏显示速度值减少减按键加按键图10PWM按键调整子程序流程图停止电机,灯闪烁几下,蜂鸣器响几声,液晶显示正常停止电机,灯闪烁几下,蜂鸣器响几声,液晶显示正常检测模拟水塔水位正常按键开始系统初始化,灯闪烁,蜂鸣器响一声,液晶显示进入主程序等待状态显示速度启动电机,灯闪烁几下,蜂鸣器响,液晶显示低水位检测模拟水塔水位按键检测模拟水塔水位低按键NYNYPWM按键调制子程序NYPWM调速按键选择电机的转速图11程序总体流程图在进入PWM按键子程序后,首先要做的事是先检测是否确定有按键按下,这个过程延时15ms,在确认有按键按下后,判断是哪一个按键按下,如果是速度加按键按下,电机不管在什么状态,都是首先停止,然后是调整PWM调制时间,液晶屏显示速度增加,按下减按键,也是先停止电机,调整PWM调制时间,液晶屏显示速度减少。具体流程图如图11所示。当系统按下电源开关,且确定有电源存在时候,系统进入初始化状态,灯会闪烁、蜂鸣器响一声、液晶初始化,初始化完以后,进入PWM按键调速选择,如有按键按下,进入PWM按键调整子程序,若没有,进入主程序等待状态,检测水塔水位的液位状态,当模拟液位低水位按键按下后,电机以显示速度启动,模拟抽水过程,此时蜂鸣器报警,灯闪烁,且液晶会显示水位过低状态。当模拟水位正常按键按下后,电机停止转动,蜂鸣器报警、液晶显示当前正常状态,然后程序进入循环,继续检测模拟水位状态按键。具体流程图的如图4-2所示。4.3程序源代码程序源代码使用C语言编写,使用C语言编写程序效率高,调用方便。程序主要由LCD1602液晶驱动子程序,电机PWM调速功能子程序、按键扫描子程序等功能程序组成,详细源代码见附录二。5调试本系统的调试主要分为程序调试、电路调试等两大部分。两个部分交替联合进行,这样有利于问题的分析和解决,不会造成问题的积累,而且不会因为一个小问题而进行整体电路的检查,从而可以节约大量的调试时间。软件编程中,首先编写单元模块的程序,并且在电路上调试成功问题,即可以做系统整体程序的调试。联机调试是最重要的一部分,同时也是本设计成功的关键。6总结根据设计的结果和实验的分析可知:1.利用液晶显示器不仅可以显示内容。2.对单片机和液晶显示器的连接,能对液晶显示内容进行可靠直观。3液晶水位测量显示功能强大,能实时监测水位,提供可靠数据。4液晶水位测量显示操作简单,显示内容丰富。参考文献[1]陈学煌,马俊.电子自旋共振仪中嵌入单片机测控系统的设计[J].传感器技术,2005,24(12):61-63.[2]王建新,杨世凤,史永江.系统测试中的软件抗干扰技术[J].国外电子测量技术,2005,24(10):18-20.[3]李刚民,曹巧媛.单片机原理及使用技术[M].北京:高等教育出版社,2005,24(22):62-63.[4]徐爱钧.8051单片机实践教程[M].北京:电子工业出版社,2006,24(10):21-23.[5]胡汉才.单片机原理及其接口技术[M].2版.北京:清华大学出版社,2004,22(11):17-20.[6]周润景.PROTEUS入门实用教程[M].北京:机械工业出版社,2007,24(10):24-26.[7]徐模辉.Protues单片机仿真中的uC/OS-II移植[J].单片机与嵌入式系,2007(10):74-76.[8]丁元杰.单片微机原理及应用.机械工业出版社,2000:81-88.[9]腾召胜,罗隆福.智能检测系统与数据融合.机械工业出版社,2009(11):68-70.[10]孙虎章.自动控制原理.中央广播电视大学出版社,1999(10):34-66.[11]刘国荣.单片微型计算机技术.机械工业出版社,2003(24):70-26.[12]张迎新.单片微型计算机原理.应用及接口技术.国防工业出版社,2006(50):71-76.[13]房小翠.单片机实用系统设计技术.国防工业出版社,2009(14):44-46.[14]何立民.单片机应用系统设计.北航出版社,2010(33):24-26.[15]曹琳琳.单片机原理及接口技术.国防科技大学出版社,2006(55):84-86.[16]Intel.MicrocontrollerHandbook,2008(12):24-26.[17]ATMEL.CORPORATION.AT90S8515.REV72001,2009(22):36-39.[18]JoeCampbell.串行通信C程序指南[M].北京:清华大学出版社.1995,31-32.[19][德]克劳斯·贝伊特.电子元件[M].北京:北京科技出版设,2008(12):44-46.[20]超星数字图书馆..[21]中国电子网..[22]《软件世界》杂志:.附录附图A仿真准备附录B仿真成功附录C程序源代码#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharsbitled=P0^1;//led灯显示,低电平亮sbitspeaker=P1^0;//蜂鸣器,低电平报警sbitlcd_rs=P0^7;//1602数据选择命令端sbitlcd_rw=P0^6; //1602读写选择端sbitlcd_enable=P0^5;//1602使能端定义sbitkey_up=P3^0;//pwm速度调整端口,电机速度加一sbitkey_down=P3^1; //pwm速度调整端口,电机速度减一sbitmonter=P1^1;//电机驱动端口,pwm控制输出sbitwater_normal=P1^6;//水位过高传感器模拟按键端口,低电平报警sbitwater_low=P1^7;//水位过低传感器模拟按键端口,低电平报警ucharcodepwm_t[]={45,90,100,130};//模式下的pwm值,人为已经设定的时间是100,可以调整上限值uintmodel=1,pwmT=150,time_count=0;voidkey_scan();//按键扫描函数voidcheck_water_level();//检测水位是否正常函数voiddelay(uintz) //延时函数{uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}//*******************1602液晶显示函数************************// voidlcd_write_comd(ucharcomd) //1602写指令函数{lcd_rs=0;//选择指令lcd_rw=0;//选择写 delay(5); P2=comd;//取命令delay(8); lcd_enable=1;//使能有效 delay(8); lcd_enable=0;}voidlcd_write_data(uchardate)//1602写数据函数{ lcd_rs=1; //选择数据lcd_rw=0; //选择写操作 delay(5); P2=date; //取数据操作 delay(8); lcd_enable=1; //使能有效 delay(8); lcd_enable=0;}voidlcd_set_xy(ucharx,uchary)//定位具体位置{uintaddress;if(y==1)address=0x80+x; //第一行的位置 else address=0xc0+x; //第二行的位置 lcd_write_comd(address);}voidlcd_write_char(ucharx,uchary,uchardate) //写一个字符函数{ lcd_set_xy(x,y); //设定位置 lcd_write_data(date); //写入数据}voidlcd_write_string(ucharx,uchary,uchar*s) //写一个字符串函数{ lcd_set_xy(x,y); //设定位置while(*s) //循环写入数据 { lcd_write_data(*s); s++; } }//********电机PWM调速函数及程序主函数*******//voidinit() //初始化函数{ uchari,count=25; led=1; //开机led灯闪烁for(i=0;i<15;i++){ led=~led; delay(count); count=count+5; }led=0; lcd_write_comd(0x38);//设置16*2行显示,5*7点阵,8位数据接口lcd_write_comd(0x0c);//开显示lcd_write_comd(0x01);//清屏lcd_write_comd(0x80);//设定初始位置lcd_write_string(0,1,"WaterLev:Normal");lcd_write_string(0,0,"MonterSpeed:1");speaker=0; //蜂鸣器鸣响一声delay(1000);speaker=1; TMOD=0X02; //定时0,定时时间为150us,工作在方式2TH0=(256-150)%256; TL0=TH0;EA=1; //开总中断ET0=1; //开定时器0的中断TR0=0; //定时器0不启动}voidmain()//主函数{init();while(1) { key_scan(); check_water_level();//检测水位是否正常函数 }}voidtimre_0()interrupt1 //定时器0的中断子函数{time_count++;if(time_count==pwmT) //和PWM脉宽的时间比较,时间到了定时器清零,重新开始{time_count=0;}if(time_count<pwm_t[model-1]) //当计数器在PWM定制时间内的时候,输出相关的pwm控制信号{ monter=0; }

温馨提示

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

评论

0/150

提交评论