基于单片机的水塔水位控制系统-毕业论文.docx

上传人:豆**** 文档编号:29909105 上传时间:2022-08-02 格式:DOCX 页数:48 大小:1.25MB
返回 下载 相关 举报
基于单片机的水塔水位控制系统-毕业论文.docx_第1页
第1页 / 共48页
基于单片机的水塔水位控制系统-毕业论文.docx_第2页
第2页 / 共48页
点击查看更多>>
资源描述

《基于单片机的水塔水位控制系统-毕业论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的水塔水位控制系统-毕业论文.docx(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、摘 要水塔是在日常生活和工业应用中经常见到的蓄水装置,基于单片机的水塔水位控制系统使水塔水位自动保持在一定的位置,通过对其水位的控制对外供水,以满足需要。该系统使用水位传感器对水塔水位进行检测并将检测到的信号传给单片机STC89C52进行处理,通过调整定时器的定时时间来增大或者缩小占空比,并采用C语言编写控制程序,从而实现电机的调速。最后,使用带字库的LCD1602液晶屏显示当前水位状态以及电动机的转速。该系统实现了过低水位蜂鸣器鸣笛报警、过低警戒水位自动处理、正常水位蜂鸣器鸣笛报警以及正常水位处理、手动按键调整PWM(Pulse Width Modulation)电机调速等功能。本系统适应在

2、不同的用水场合下的用水速度需要,节省工作时间,提高了整体工作的效率,实现水塔水位的自动控制。关键词:单片机控制;水位检测;LCD1602显示;PWM电机调速ABSTRACTThe water tower is commonly seen in daily life and industrial as application of storage device. The system is based on single-chip microcomputer control system help to keep water towers in certain water level and a

3、ccording to the automatic level of control to supply the needs of water. Water level sensor is used for towers on the examination detect signal and transfer the signal to STC89C52 , through the adjustment of the time to increase or narrow the duty ratio, and using C language program, so as to realiz

4、e the compilation control of motor speed. Finally, current levels and motor speed are shown with 1602 LCD screen in this system. This system realizes the buzzer low level alarm, low whistle warning level automatic processing, normal level alarm or normal water buzzer sirens and manual buttons Pulse

5、Width Modulation. This system realizes the automatic control in different water situation of water to save the working time, speed, and also improves the overall efficiency of water towers.Key Words:SCM control; Water detection; LCD1602 display; PWM motor speed;目 录1引 言11.1课题简介12系统的整体方案设计32.1功能要求32.2

6、设计要求32.3系统基本方案选择和论证32.3.1单片机芯片的选择方案论证42.3.2显示模块选择方案论证43系统的硬件设计53.1电路设计框图53.2MCU主控芯片简介53.2.1主控制器芯片STC89C52概述53.2.2芯片下载程序73.3液晶屏1602的简单介绍73.3.1液晶屏1602的简要概述73.3.2液晶屏1602的使用具体83.4系统功能电路123.4.1最小工作系统原理123.4.2蜂鸣器报警电路原理143.4.3电机驱动电路原理143.4.4按键功能电路原理153.4.5液晶1602显示功能电路图153.5系统总体原理图设计164系统的软件设计174.1编程语言介绍174

7、.1.1C语言简介174.1.2C语言的特点174.1.3C源程序的结构特点184.2PWM调速控制概述194.2.1PWM脉宽调制简介194.2.2PWM调节的具体过程194.3系统程序的设计204.3.1程序设计步骤204.3.2软件的安全冗余设置214.3.3程序流程图214.4程序源代码235调试245.1调试过程245.2电路检测245.2.1调试步骤245.2.2调试遇到的问题及解决方案245.3功能实现25结 论26参考文献27附录一 系统原理图28附录二 程序源代码29致 谢351 引 言1.1 课题简介水塔是在日常生活和工业应用中经常见到的蓄水装置,通过对其水位的控制对外供水

8、以满足需要,其水位控制具有普遍性。水塔水位的单片机控制系统水塔水位控制在铁路、油田、化工等部门有着广泛的应用。水位控制在日常生活及工业领域中应用相当广泛,自动检测水位的检测系统能根据水位变化的情况自动调节。水塔供水的主要问题是塔内水位应始终保持在一定范围,避免“空塔”、“溢塔”现象发生。在水塔中的水位到达水位下限时自动启动电机,给水塔供水;在水塔水位达到正常水位的时候自动关闭电机,停止供水。并能在供水系统出现异常的时候能够发出警报,以及时排除故障,随时保证水塔的对外的正常供水作用。在工业和我们的日常生活中,对水位的监测是非常必要的。大到对江河,水库等的水位,特别在洪灾或者旱灾的时候,需要及时得

9、到第一手数据;小到对水箱,热水器水位等家用贮水容器的监测,可以减少很多危险和不必要的损1。现举一例:在煤矿的开采过程中,会产生大量的水。为了保证煤矿的安全和开采煤矿的正常进行,应将这些水通过水仓安全排放,因此不仅应控制水仓水位在一定的范围之内,同时要保持一定的上下限,超过了限度则报警,从而给其排水2。目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。实际供水过程中要确保水位在允许的范围内浮动,应采用水位传感器测量水位变化,从而控制电动机,保证水位正常3。因此,这里给出以STC89C52单片机为核心器件的水塔水位检测控制系统,该系统

10、能实现水塔水位检测、LCD1602显示当前水位功能以及蜂鸣器鸣笛报警,手动按键调整PWM电机调速功能,实现过低警戒水位报警、过低警戒水位处理的系统要求。80年代以来,我国又发展了以自记遥测为主的水位测量技术。它主要是建立自记水位计,实现水位自动采集、存储、远传。同期,还发展了无人立尺观测技术,这种技术采用激光测距仪与经纬仪接口配套组成的一套设备,利用激光测距仪无须反射棱镜测定距离(测距精度:05m)的性能,配以经纬仪测角测定目标高程的一种测量方法。随着近代科学技术的发展和新材料新器件的开发,采用传感器研制水位计近年来有较大发展4。主要采用的传感器有超声波、光电、压力、接触式、浮于式等几种。超声

11、波式水位计是将换能器向水面发射超声波,测量超声波传播时间,计算出水位。压力式水位计也是不需要水位测并,其基本原理是测量静水压力来实现水深的测量,已采用过波纹管和水银位移式压力传感器等方法。固态压力传感器由于其灵敏度高、体积小、寿命长、且有抗腐蚀性而受到重视,但由于半导体传感器受温度影响大等原因,使其实用受到限制。近年来固态传感器温度自动补偿问题有了进展,固态压阻式水位计已经得到应用5。接触式水位计使用机电的方法用探头跟踪井内水面高低变化测量水位,已在少数领域使用,浮子式水位计,利用水球(或其它浮子) 作敏感器件,避免了温度、湿度等因素的影晌,性能稳定,工作可靠,因而得到长期使用和发展。 我国使

12、用的自记水位计,最常见的为浮子式水位计。近年来,由于土建工程费用不断上涨,无需水位量的压力式水位计随着现代技术的发展和进步也日趋稳定和成熟,致使人们越来越重视使用压力式水位计。单片机自20世纪70年代问世以来,以极其高的性能价格比受到人们的重视和关注,所以应用很广,发展很快。单片机的特点是体积小、集成度高、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。正因为单片机有如此多的优点,因此其应用领域之广,几乎到了无孔不入的地步6。在我国,单片机已被广泛地应用在工业自动化控制、自动检测、智能仪表、智能化家用电器、航空航天系统和和国防军事、尖端武器等各个方面。单片机的

13、潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度范围大,抗干扰能力强、能满足一些特殊要求的应用场合,更加扩大了单片机的应用范围,也进一步促使单片机性能的发展。我们可以开发利用单片机系统以获得很高的经济效益。虽然单片机的引入使控制系统大大“软化”,但与其它计算机应用问题相比,单片机控制应用中的硬件内容仍然较多,所以说单片机控制应用有软硬件相结合的特点。为此,在单片机的应用设计中需要软、硬件统筹考虑,设计者不但要熟练掌握汇编语言等编程技术,而且还要具备较扎实的单片机硬件方面的理论和实践知识。更重要的意义是单片机的应用改变了控制系统传统的设计思想和方法。以前采

14、用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现7。这种以软件结合硬件或取代硬件并能提高系统性能的控制技术称为微控制技术。例如,本文所要论述的基于单片机的水塔水位控制系统。432 系统的整体方案设计2.1 功能要求实际供水过程中要确保水位在允许的范围内浮动,应采用水位传感器测量水位变化,从而控制电动机,保证水位正常。因此,这里给出以STC89C52单片机为核心器件的水塔水位检测控制系统,该系统能实现水塔水位检测、LCD1602显示当前水位功能以及蜂鸣器鸣笛报警,手动按键调整PWM电机调速功能,实现过低和正常警戒水位报警、过低和正常警戒水位处理的系统要求。2.2 设计要求按下电源按

15、钮后,灯会闪烁几下,然后是常亮状态,蜂鸣器会响。电机不会转的,此时系统在待机状态,且为正常状态。要先选择好电机的抽水速度是哪个档位,共有4个档位。档位越高,速度越快。在电机转的时候,按下选择档位,电机立马会停止的,这个是一个软件安全冗余的设计理念。电机在水位模拟传感器端口(低水位)按下后,说明水位太低,电机转动,此时蜂鸣器会响一下,灯会闪烁几下,以此表示报警,并且液晶也会显示水位太低。当水位模拟传感器端口(正常水位)按下后,说明水位已经到正常状态,电机停转,此时蜂鸣器也会响一下,灯一样会闪烁,以此表示报警,且液晶屏也会显示水位正常。而PWM速度调整就是档位的选择,必须在电机停止的状态下去选择电

16、机输出的速度。2.3 系统基本方案选择和论证 此系统可以采用多种的方式设计,能采用液罐液压检测的方式来做,这样在不同的水位时因为有不同的压力值,所以我们可以根据不同的压力值来确定到底水位在某个状态,但是这样的系统设计理念用处比较狭窄,因为这样的设计理念的前提必须是一个液压的封闭系统,这样才能有精确的压力值传送,保证系统的稳定性。但是目前很多用到的水塔水位控制系统都不是封闭的水罐,所以这个方案有一定局限性。 而采用特殊的水位传感器,就可以克服上述的困难。因为液位检测器可以很精确的检测到液位系统,同样达到预期的目的,且系统的应用面很广,而且系统的安全性能很好,因此我们采取检测液位作为系统的设计思想

17、。 2.3.1 单片机芯片的选择方案论证 目前市场上的单片机的种类有很多种,最多的51单片机、avr单片机,和Msp430,以及PIC单片机,但是由于单片机的种类很多,功能各不一样,我们不需要多先进,功能多强大的单片机,我们设计的要求就是够用即可,因为性能低劣了,系统功能实现不了,并且系统的稳定性很差,用的单片机性能太好了,由于高性能的单片机不只是价钱昂贵,且有很多资源都不会用到,这样造成了很大的浪费。因此我们选用目前市场上用到比较多的、且可以满足系统设计要求的51单片机。 因为Atmel 公司的51单片机需要专门的编程器,这样无形中加重了系统的成本,而STC公司单片机不仅支持ISP,还支持I

18、AP等多种下载程序的方式,并且STC公司单片机工作在宽电压范围内,电压的波动对系统的影响不大,这样提高了系统的稳定性,另外STC单片机的加密性能也由于其他单片机,并且STC的单片机是增强型的51单片机8。因此我们选用STC89C52单片机作为系统的主控芯片。2.3.2 显示模块选择方案论证显示模块是系统的人机交互模块,增加了显示模块增加了系统的交互性。目前市场上用到的显示模块有很多种,有数码管显示,还有液晶显示,因为数码管只是显示数字,不能显示字符,而此系统需要用到显示当前的水位状态。这样就必须要用到字符显示的液晶显示器,液晶显示器也有很多种,但根据系统的需要我们选用的是LCD1602,很大程

19、度上增加了系统的人机交互功能,让使用者可以得到更多系统工作的信息,更方便的使用此系统。 3 系统的硬件设计3.1 电路设计框图系统的总体框图主要由主控芯片基本电路、按键电路、电动机和蜂鸣器驱动电路、液晶显示电路组成。除主控芯片电路外,其他的都是外围功能性电路。蜂鸣器和电动机电路驱动原理基本相同,都为三极管驱动电路,按键电路为平常的独立按键电路,液晶电路参考设计手册既可。电路设计框图如图3-1所示:图3-1电路设计框图3.2 MCU主控芯片简介3.2.1 主控制器芯片STC89C52概述STC89C52是一款完全兼容8051内核指令的芯片,是宏晶科技公司的新一代增强性的8051单片机9。采用最新

20、的加密技术解决了全球89系列单片机都被解密的困惑。并且管脚完全兼容,性能更好,驱动力更强,功耗更低,价格也比传统的89系列低10。STC89C52的引脚说明图如图3-1。STC89C52单片机的特点如下:1.增强性6时钟/机器周期,12时钟/机器周期 8051 CPU2.工作电压:5.5v-3,4v(5v单片机)/3.8V-2.0V(3V单片机)3.工作频率范围:0-40MHZ,相当于普通8051的0-80MHZ,实际工作频率可达48MHZ4.用户应用程序空间4K/8K/13K/16K/20K/32K/64K,字节片上集成1280字节/512字节RAM5.通用I/O口(32/36个),复位后为

21、:P1/P2/P3/P4是准双向口/若上拉(普通8051传统I/O口。P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/0口用时,需要上拉电阻。6.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器/仿真器可通过串口(P3.0/P3.1)之下载用户程序,8K程序3秒即可完成一片。7.共三个16位定时器/计数器,其中定时器0还可以当成2个8为定时器使用8.外部中断4路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方式唤醒9.通用异步串行口(UART),还可用定时器软件实现多个UART.10.内部Flash 擦写次数为100,000次以上,

22、STC89C51RC/RD+ 系类单片机加密性强,出厂时就已经加密。图3-2 STC89C52的引脚图说明3.2.2 芯片下载程序对于STC89C52的单片机而言,程序不需要专门的编程器或者仿真器去下载程序,而只是使用串口通讯的两个引脚就可以把程序烧写到程序里,十分方便简洁,并且有相关配套的官方软件,使用起来也十分方便11。图3-2是程序下载的线路连接图:图3-3 程序下载线路连接图3.3 液晶屏1602的简单介绍3.3.1 液晶屏1602的简要概述液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用12。 字符型液晶模块是一种用5

23、7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。字符型液晶显示模块是一类专用于显示字母、数字、符号等的点阵型液晶显示模块。之所以称字符型液晶显示模块是因为其液晶显示器件的电极图形是由若干个58或511点阵块组成的字符块集。每一个字符块是一个字符位,每一位都可以显示一个字符,字符位之间空有一个点距的间隔起着字符间距和行距的作用,这是其一;其二是这类模块使用的是专用于字符显示控制与驱动的IC芯片13。这两种因素确定了这类模块的应用范围仅局限于字符而显示不了图形,所以称其为字符型液晶显示模块。字符型液晶显示驱动控制器广泛应用于字符型液晶显示模块上

24、。目前最常用的字符型液晶显示驱动控制器是HD44780U,也出现使用HD667O1或HD66702等字符型液晶显示驱动控制器单片控制的字符型液晶显示模块。液晶显示驱动器为HD44100及其替代品。字符型液晶显示模块在世界上是比较通用的,而且接口格式也是比较统一的,其主要原因可能是各制造商所采用的模块控制器都是HD44780U及其兼容品,不管它的显示屏的尺寸如何,它的操作指令及其形成的模块接口信号定义都是兼容的。所以会使用一种字符型液晶显示模块,就会通晓所有的字符型液晶显示模块。3.3.2 液晶屏1602的使用具体液晶1602有三条控制线,RS/数据命令端,RW/读写选择端、EN/使能端,一个8

25、位的数据端口。常用指令说明如表3-1:表3-1常用指令说明指令名称控制信号控制代码D/I R/WD7 D6 D5 D4 D3 D2 D1 D0清屏0 00 0 0 0 0 0 0 1归home位0 00 0 0 0 0 0 1 *输入方式设置0 00 0 0 0 0 1 I/D S显示状态设置0 00 0 0 0 1 D C B光标画面滚动0 00 0 0 1 S/C R/L * *工作方式设置0 00 0 1 DL N F * *CGRAM地址设置0 00 1 A5 A4 A3 A2 A1 A0DDRAM地址设置0 01 A6 A5 A4 A3 A2 A1 A0读BF和AC0 1BF AC6

26、 AC5 AC4 AC3 AC2 AC1 AC0写数据1 0数 据读数据1 1数 据(一)指令详细解释如下:1).清屏(Clear Display)格式 0000000101H该指令完成下列功能:将空码(20H)写入 DDRAM的全部 80个单元内;将地址指针计数器AC清零,光标或闪烁归home位;设置输入方式参数 ID=1,即地址指针 AC为自动加一输入方式。该指令多用于上电时或更新全屏显示内容时。在使用该指令之前要确认DDRAM的当前内容是否有用。2).归home位(Return home)格式 0000001002H 该指令将地址指针计数器AC清零。执行该指令的效果有;将光标或闪烁位返回

27、到显示屏的左上第一字符位上,即DDRAM地址00H单元位置;这是因为光标和闪烁位都是以地址指针计数器 AC当前值定位的。如果画面已滚动,则撤消滚动效果,将画面拉回到home位14。3).输入方式设置(Enter Mode Set)格式 000001I/DS04H07H 该指令的功能在于设置了显示字符的输入方式,即在计算机读写DDRAM或CGRAM后,地址指针计数器AC的修改方式,反映在显示效果上,当写入一个字符后画面或光标的移动。该指令的两个参数位 1D和 S确定了字符的输入方式。 ID表示当计算机读写 DDRAM或 CGRAM的数据后,地址指针计数器 AC的修改方式,由于光标位置也是由AC值

28、确定,所以也是光标移动的方式。 ID0 AC为减1计数器,光标左移一个字符位。 ID1 AC为加 1计数器,光标右移一个字符位。 S 表示在写入字符时,是否允许显示画面的滚动。 S0禁止滚动。 S1允许滚动。 S1且IDO显示画面向右滚动一个字符位。 S1且ID1显示画面向左滚动一个字符位。4).显示状态设置(Display on/off Control)格式 00001DCB08H0FH该指令控制着画面,光标及闪烁的开关。该指令有三个状态位D、C、B,这三个状态位分别控着画面,光标和闪烁的显示状态。 D 画面显示状态位。当D1时为开显示,D0时为关显示。注意关显示仅是画面不出现,而DDRAM

29、内容不变。这与清屏指令截然不同。 C 光标显示状态位。当C1时为光标显示,C0时为光标消失。光标为底线形式(51点阵),出现在第八行或第十一行上。光标的位置由地址指针计数器 AC确定,并随其变动而移动。当 AC值超出了画面的显示范围,光标将随之消失。 B 闪烁显示状态位。当Bl时为闪烁启用,B0时为闪烁禁止。闪烁是指一个字符位交替进行正常显示态和全亮显示态,闪烁频率在控制器工作频率为250kHz时为2.4Hz。闪烁位置同光标一样受地址指针计数器AC的控制。闪烁出现在有字符或光标显示的字符位时,正常显示态为当前字符或光标的显示;全亮显示态为该字符位所有点全显示。若出现在无字符或光标显示的字符位时

30、,正常显示态为无显示,全亮显示态为该字符位所有点全显示。这种闪烁方式可以设计成块光标,如同计算机CRT上块状光标闪烁提示符的效果。5).光标或画面滚动(Cursor Or Picture Shift)格式 0001S/CR/L00 执行该指令将产生画面或光标向左或向右滚动一个字符位。如果定时间隔地执行该指令将产生画面或光标的平滑滚动。画面的滚动是在一行内连续循环进行的,也就是说一行的第一单元与最后一个单元连接起来,形成了闭环式的滚动15。当未开光标显示时,执行画面滚动指令时不修改地址指针计数器 AC值;有光标显示时,由于执行任意一条滚动指令时都将使光标产生位移,所以地址指针计数器AC都需要被修

31、改。光标的滚动是在DDRAM内全程进行的,它不分是一行显示还是两行显示。如果用光标的指针地址指针计数器AC加一和减一功能来解释,就能理解光标从第1显示位左移至第80显示位,或从第80显示位右移至第1显示位原理了。光标的滚动功能可以用于搜寻需要修改的显示字符。该指令有两个参数位:1.SC滚动对象的选择SCl画面滚动SC0光标滚动2.RL滚动方向的选择RLl向右滚动RL0向左滚动 该指令与输入方式设置指令都可以产生光标或画面的滚动,区别在于该指令专用于滚动功能,执行一次,显示呈现一次滚动效果;而输入方式设置指令仅是完成了一种字符输入方式的设置,仅在计算机对DDRAM等进行操作时才能产生滚动的效果。

32、6).工作方式设置(Function Set)格式 001DLNF00 该指令设置了控制器的工作方式,包括有控制器与计算机的接口形式和控制器显示驱动的占空比系数等。该指令有三个参数DL,N和F它们的作用是: DL设置控制器与计算机的接口形式。接口形式体现在数据总线长度上。 DL1设置数据总线为8位长度,即DB7DBO有效。 DL0设置数据总线为4位长度,即DB7DB4有效。在该方式下8位指令代码和数据将按先高4位后低4位的顺序分两次传输。 N设置显示的字符行数。 N0为一行字符行。 N1为两行字符行。 F设置显示字符的字体。 F0为57点阵字符体。 F1为 5 10点阵字符体。该指令可以说是字

33、符型液晶显示控制器的初始化设置指令,也是唯一的软件复位指令。HD44780U虽然具有复位电路,但为了可靠的工作,HD44780U要求计算机在征作HD44780U时首先对其进行软件复位。也就是说在控制字符型液晶显示模块工作时首先要进行的软件复位16。7). CGRAM地址设置(Set CGRAM Address)格式 01A5A4A3A2A1A0该指令将6位的CGRAM地址写入地址指针计数器AC内,随后计算机对数据的操作是对 CGRAM的读写操作。8).DDRAM地址设置(Set DDRAM Address)格式 1A6A5A4A3A2A1A0该指令将 7位的DDRAM地址写入地址指针计数器AC

34、内,随后计算机对数据的操作是对 DDRAM的读写操作。9).读“忙”标志和地址指针值(Read Busy Flag and Address)格式 BFAC6AC5AC4AC3AC2AC1AC0计算机对指令寄存器通道读操作(RS0,RWl)时,将读出此格式的“忙”标志BF值和7位地址指针计数器AC的当前值。计算机随时都可以对HD44780U读“忙”操作。BP值反映HD4478OU的接口状态。计算机在对HD44780U每次操作时首先都要读BF值判断HD44780U的当前接口状态,仅有在BF01时计算机才可以向HD44780U写指令代码或显示数据和从HD44780U读出显示数据。计算机读出的地址指针

35、计数器AC当前值可能是 DDRAM地址也可能是 CGRAM的地址,这取决于最近一次计算机向AC写入的是哪类地址17。10).写数据(Write Data to CG or DD RAM)计算机向数据寄存器通道写入数据,HD44780U根据当前地址指针计数器AC值的属性及数值将该数据送入相应的存储器内的AC所指的单元里。如果AC值为DDRAM地址指针,则认为写人的数据为字符代码并进入DDRAM内AC所指的单元里;如果AC值为CGRAM的地址指针,则认为写入的数据是自定义字符的字模数据并送入 CGRAM内 AC所指的单元里18。所以计算机在写数据操作之前要先设置地址指针或人为的确认地址指针的属性及

36、数值。在写人数据后地址指针计数器AC将根据最近设置的输入方式自动修改。由此可知,计算机在写数据操作之前要作两项工作,其一是设置或确认地址计数器AC值的属性及数值,以保证所写数据能够正确到位;其二是设置或确认输入方式,以保证连续写入数据时AC值的修改方式符合要求。11).读数据(Read Data from CG or DD RAM)在HD44780U的内部运行时序的操作下,地址指针计数器AC的每一次修改,包括新的AC值的写入,光标滚动位移所引起的AC值的修改或由计算机读写数据操作后所产生的AC值的修改,HD44780U都会把当前AC所指单元的内容送到接口部数据输出寄存器内,供计算机读取19。如

37、果AC值为DDRAM地址指针,则认为接口部数据输出寄存器的数据为DDRAM内 AC所指单元的字符代码;如果AC值为CGRAM的地址指针,则认为数据输出寄存器的数据是CGRAM内AC所指单元的自定义字符的字模数据。计算机的读数据是从数据寄存器通道中数据输出寄存器读取当前所存放的数据。所以计算机在首次读数据操作之前需要重新设置一次地址指针AC值,或用光标滚动指令将地址指针计数器AC值修改到所需的地址上,然后进行的读数据操作将能获得所需的数据。在读取数据后地址指针计数器AC将根据最近设置的输入方式自动修改。由此可知,计算机在读数据操作之前要作两项工作,其一是设立或确认地址计数器AC值的属性及数值,以

38、保证所读数据的正确性。3.4 系统功能电路3.4.1 最小工作系统原理图3-4 最小系统原理图此图是单片机工作的最小系统原理图,在这个电路中又可以分为复位电路和晶振电路,如图3-4和图3-5所示:图3-5复位电路 复位电路可以分为上电复位和手动按键复位两种。在系统上电的一瞬间单片机上电复位,原理是利用电容两端的电压不能突变,在一上电的瞬间电容好比短路,所以加在第九脚RST的电平是高电平,虽然时间很短,但是足以让单片机系统复位。手动按键复位的原理是,在系统正常工作的过程中可以手动触动按键使单片机复位。具体原理是,按下S1按键,因此5V电压经过一个200欧姆的电阻分压后加到系统的RST上,手动按键

39、按下到抬起的过程足以使系统复位。图3-6晶振电路对于单片机系统而言,晶振电路就好比是人的心脏一样,是一个跳动的动力来源,18,19号引脚接的是11.0592M的晶振。 3.4.2 蜂鸣器报警电路原理 图3-7蜂鸣器报警功能电路 蜂鸣器报警功能电路使用的是三极管8550驱动,三极管8550是PNP三极管,射极接电源+5V,基极通过一个电阻连接到P1.0口,集电极接蜂鸣器,当P1.0为高电平时,三极管截止,蜂鸣器没有不响,当P1.0为低电平时,三极管导通,蜂鸣器发出响声。3.4.3 电机驱动电路原理 图3-8电机驱动电路 电机驱动电路和蜂鸣器的电路基本相同,同样使用8550三极管驱动,三极管的基极

40、接P1.1,当P1.1为高电平时,电机不转动,当P1.1为低电平时,电机转动。 3.4.4 按键功能电路原理图3-9按键功能电路 按键功能电路里面有两种按键,一种按键是模仿水塔水位开关的功能按钮,一种是电机PWM输出的调整按钮。原理是通过一个10k的电阻接到+5v电源线上,当按键没有按下时,按键没有导通,所以没有电流,但对于连到引脚上的那一端来讲是高电平。当按键按下时,因为电路导通,有电流流过,和单片机引脚接触的那一端接地,所以是低电平。因此能检测到信号的变化,交给程序处理后做出相关的动作。3.4.5 液晶1602显示功能电路图图3-10液晶1602显示电路图 液晶1602从左到右依次有16根

41、引脚,每个引脚定义不同。有三根控制引线和八根信号线,必须注意的一点是3号引脚是背光电源指示端。背光电阻选择的不同有不同的结果。我们这里选择2.7k电阻做为背光电阻。3.5 系统总体原理图设计 系统总体原理图即是这些功能电路的组合,主要包括最小系统电路、按键电路、电机和蜂鸣器驱动电路、液晶电路组成,还包括一个按键指示灯。详细电路见附录一。4 系统的软件设计4.1 编程语言介绍4.1.1 C语言简介C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING

42、LANGUAGE”一书20。通常简称为K&R,也有人称之为K&R标准。但是,在K&R中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。 早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构

43、。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,形成了多种版本的C语言。C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。 C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。4.1.2 C语言的特点(1)简洁紧凑、灵活方便:C语言

44、一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以和汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元21。 (2)运算符丰富:C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 (3)数据结构丰富:C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程

45、序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 (4) C是结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 (5) C语法限制不太严格、程序设计自由度大:一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。 (6) C语言允许直接访问物理地址,可以直接对硬件进行操作:因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。(7) C语言程序生成代码质量高,程序执行效率高:一般只比汇编程序生成的目标代码效率低1020%。(8) C语言适用范围大,可移植性好:C语言

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁