小区供水控制系统论文_第1页
小区供水控制系统论文_第2页
小区供水控制系统论文_第3页
小区供水控制系统论文_第4页
小区供水控制系统论文_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要随着中国经济的快速发展,城市步伐加快。现在很多人已经住进小区,所以小区必须提供给人们很好的供水质量,但也不能浪费有限的水资源。每个小区都建有自己的供水系统。小区供水系统的稳定性,可靠性,经济性直接影响到供水质量,传统的供水方式普遍存在占地面积大,可靠性差,难以维护等缺点,所以现在基本已经被淘汰。本文详细介绍了供水控制系统的开发过程,全文分五章,第一张介绍了本系统的开发背景,开发目标和开发意义:第二章概述了本系统控制功能及原理:第三,四章分别详细传输了供水控制系统的软件和硬件设计方案:第五章对于系统调制作了详细说明。关键词 DS18B20;水位控制;AT89C51AbstractWith

2、Chinas rapid economic development, the city accelerated. Many people have moved to district, district must provide to the people so good water quality, but they can not waste the limited water resources. Each community is built their own water supply system. Water supply for system stability, reliab

3、ility and economy directly affect the water quality, the traditional common in an area of large water supply, unreliable, difficult to maintain such shortcomings, so it basically has been eliminated. This paper describes the development of water supply control system, the text consists of five chapt

4、ers, the first Zhang introduced the background of this system development, development goals and develop meaning: The second chapter outlines the functions and principles of the system control: two chapters Details were transferred water supply control system software and hardware design solutions:

5、Chapter prepared for the system, explained in detail. Key words DS18B20 water level control AT89C51目 录摘 要IAbstractII第1章 绪论11.1 系统的开发背景11.2 系统的开发意义11.3 系统的开发目标21.4 本章小结2第2章 系统的功能及原理32.1 系统功能32.2 系统工作原理32.3 本章小结5第3章 硬件设计63.1 引言63.2 系统硬件设计及组成63.2.1 显示模块83.2.2 键盘输入模块93.2.3 水温监控模块103.2.4 温度传感器113.2.5 水位监

6、控系统123.2.6 水循环系统143.2.7 报警模块153.3 本章小结16第4章 软件设计174.1 引言174.2 软件的总体设计174.3 软件的详细设计174.3.1 主函数184.3.2 显示函数194.3.3 水温正常范围设定相关函数204.3.4 水温监控相关函数224.3.5 水位监控相关函数254.3.6 异常处理函数264.4 本章小结26第5章 系统调试285.1 硬件调试285.1.1 显示模块及键盘输入模块调试285.1.2 温度检测电路调试285.1.3 水位检测电路调试285.1.4 控制外设的继电器和报警模块调试285.2 软件调试295.2.1 调试的主要

7、方法和技巧295.2.2 调试中遇到的问题和解决方法295.3 综合调试305.4 本章小结30结 论31致 谢32参考文献33附录134附录237附录338第1章 绪论1.1 系统的开发背景现今社会,自动化装置无所不在,在控制技术需求的推动下,控制理论本身也取得了显著的进步。小区水位的检测和控制,需要一套更完善的控制系统。实践证明,自动化操作,具有不可替代的应用价值。本设计的小区供水系统控制,基于单片机的水位控制系统使水位保持在一定的位置。以满足用水的需要。本设计的目的是用单片机设计一个控制系统,用来对小区水位进行控制。水位控制系统的研究对于提高供水系统的自动化水平,提高生产效率具有重要的意

8、义。本设计主要研究对系统硬件的各个部分进行选型,研究芯片之间的连接方法,以单片机系统对模拟的小区供水控制系统的水位控制用C语言对控制程序进行设计。适应范围:1.高层建筑、居民小区、别墅等居民生活用水。 2.企事业单位、宾馆、写字楼、百货商场,大型桑拿浴、医院、学校,体育馆,高尔夫球场,机场等场所的日常用水。 3.生产制造、洗涤装置、食品工业、工厂、工矿的生产用水。 4.其他:老旧水池供水及其它形式供水的改造。1.2 系统的开发意义本课题设计开发的小区供水控制系统可通过对平衡水箱的控制实现对水位、水温的控制,系统可以自动地实现实时检测,实时处理,实时显示,实时控制。而以往的很多的小区中水温的控制

9、乃至供水控制还采用着人工检测、控制,由日常维护人员频繁检测小区供水的各项指标后,人工进行处理。很显然上述重复性的工作无论从人员、时间和资金上都将造成很大的浪费,同时也容易出差错。而这套系统可以彻底将人从手动操作的烦恼中解脱出来,既省时又省力,且技术先进、运行可靠,具有很好的开发前景,将会受到广大用户的欢迎。依靠自动化的实时控制技术,能够大大的提高小区供水控制系统的可靠性、安全性和整个系统的效率,还能有效的减少系统中各设备的损耗和日常的费用。凭借自动化的控制系统可以在减少人力的情况下提高效率,不但满足现今市场的需要,更可以使小区本身的环境更好。1.3 系统的开发目标本系统设计针对于目前中小区的供

10、水需求及水温检测控制需要。通过对平衡水箱的控制实现对小区水位、水温的控制。系统启动后首先检测系统是否为排水状态,在确定系统处于非排水状态时,当水位低于水位下限时则打开注水管阀门向平衡水箱中注水,超过水位上限后自动关闭注水管阀门,由于平衡水箱和游泳池的连通状态,此时储水箱中液面会与平衡水箱中液面持平。本系统采用循环供水方式,在提供完用户供水时,会适时监测水箱中的水位,如果没有打到标准水位,会利用水泵向水箱中注水,通启动水泵的同时进入水位监控状态。在监控状态下,系统会对平衡水箱中的水温进行实时检测,并在液晶上显示。当水温低于水温下限时,平衡水箱中的加热器自动加热,当水温低于水温上限时,加热器自动停

11、止加热。此外,监控状态时如水位、水温出现异常情况系统会自动报警。本次设计的自动控制系统是根据实际小区供水的日常需要,来解决实际供水和水温的控制问题,具有很高的实用价值。1.4 本章小结本章介绍了本系统的开发背景、开发目标和开发意义,阅读本章可以全面了解到小区供水系统的智能性、可靠性、经济性等的实用价值。第2章 系统的功能及原理2.1 系统功能小区供水控制系统的主要功能是对平衡水箱的水温、水位的实时检测、显示、控制及异常报警。系统的详细功能如下:自动注水功能:系统启动后对平衡水箱和储水箱的注水,通过水泵使平衡水箱与储水箱之间形成循环水流。对储水箱水温的实时检测、显示、控制功能:正常水温范围设定,

12、系统初始化时水温上限为80,水温下限为26,上限报警水温为大于80,下限报警水温为小于26,四个温度均可根据具体需要调节。当水温低于水温下限时开始加热,到达水温上限时停止加热。水位的实时检测、控制功能:当水位低于水位下限时开始加水,水位达到水位上限时停止加水。系统自动报警功能:水温异常处理,当水温高于上限报警温度时加热器仍继续加热时或水温低于报警下限温度时加热器仍未启动则报警。水位异常处理,当水位高于报警上限仍处于注水状态时或水位低于报警下限仍未注水时则报警。2.2 系统工作原理本系统面向一般小型小区供水设计结构图如图2-1所示。小区供水控制系统图 2-1 储水箱供水设计结构图系统启动后进入工

13、作状态,首先采样平衡水箱中水位传感器传来的水位值,送CPU进行处理,再根据该水位值决定是否打开注水阀门,如果水位低于水位下限开阀注水,当水位超过水位上限后关闭注水阀门。此时储水箱中液面与平衡水箱中液面是持平的,这是由于平衡水箱与储水箱是连通的,所以当平衡水箱与储水箱之间出现水位差时,水会流向液面低的水池中直到两端液面持平。在完成注水过程后,系统通过控制继电器使常开触点闭合,启动储水箱内的水泵开始抽水,通过水泵与平衡水箱之间的水管向平衡水箱中灌注形成循环水流。系统在启动水泵的同时进入供水监控状态。在监控状态下,系统会循环采样平衡水箱中水位传感器、水温传感器的值,存储于RAM中,并将温度显示在液晶

14、上。再用本次存储值与其设定的数值比较,根据比较结果进行不同处理。在整个监控过程中,系统中被检测控制的参数如果出现异常情况,系统会自动报警。即:如果水位超过水位上限后仍继续上涨,当水位传感器采集到水箱中水位超过上限报警水位时,系统则会自动报警,或水位低于报警下限仍未注水,系统自动报警。在水温超过上限水温后仍继续上升,当水温传感器采集到水箱中水温超过上限报警温度时,系统会自动报警报警,或当水温低于下限报警温度加热器仍未启动,系统自动报警。2.3 本章小结小区供水控制系统的主要功能为对平衡水箱的水温、水位的实时检测、显示和控制,以及异常报警。系统工作原理简要介绍如下:系统启动后,首先初始化参数。然后

15、采集端采集并转换数据后送CPU处理,系统将采集的温度值实时显示,并进行实时控制。本章通过图、文方式描述了整个系统的功能和工作原理,阅读本章可以全面的了解系统的功能与工作原理。读者如果对于本章中部分内容理解不清可结合第三、四章内容进行理解。第3章 硬件设计3.1 引言小区供水控制系统是通过搭建模型在模拟环境中实现的,表3-1是真实环境与模拟环境部分元件的对照表。表3-1 模拟环境对照表真实环境模拟环境储水箱塑料水槽平衡水箱塑料水槽水温传感器温度传感器水位传感器通过水的导电性,由继电器、三极管与导线搭建的电路注水阀门小型电磁阀门加热器30W鱼缸加热器抽水水泵小水泵本系统中的水位传感器由继电器、三极

16、管与导线搭建的电路,详细电路在水位监控系统这一节中具体说明。水温传感器使用DS18B20,其内部带有AD转换功能,时序工作方式,可直接读取数字量。用一小型鱼缸加热器模拟游泳池池水升温过程。系统通过4个按键组成的键盘输入,以液晶1602来实时显示水温;并且LED灯与蜂鸣器组合做出相应报警提示。3.2 系统硬件设计及组成小区供水控制硬件框图如图3-1所示。图 3-1 储水箱供水控制系统硬件框图为实现对小区供水系统的控制,本控制系统设计的硬件选用ATMEL公司生产的AT89C51作为主控中心。AT89C51是美国ATMEL公司生产的低功耗、高性能CSMO8位单片机,片内含4K bytes可系统编程的

17、Flash制度程序存储器,器件采用ATMEL公司的高精度、非易失性存储技术生产,兼容标准8051指令系统及引脚,其引脚图如图3-2所示。图 3-2 AT89C51引脚图AT89C51单片机是8位增强型,其主要的技术特征是为单片机配置了完善的外部并行总线和具有多级识别功能的串行通讯接口(UART),规范了功能单元的SFR控制模式及适应控制器特点的布尔处理系统和指令系统。而且具有体积小、易于开发、抗干扰能力强,工作稳定等特点。根据储水箱供水控制系统的功能要求,应用AT89C51单片机的P0-P3口,即可实现对控制参数的检测及控制,使系统硬件电路即简单可靠,又经济实用,因此选择ATMEL公司的AT8

18、9C51单片机作为中央处理器。3.2.1 显示模块本设计中的显示电路,是由LCD1602液晶显示器和AT89C51单片机的P1口、口所组成。LCD1602液晶显示器的数据口选用了P1口控制,读写信号及使能端选用P2口控制。显示模块具体电路如图3-3所示。图 3-3 显示系统电路图LCD1602的第3脚V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。3.2.2 键盘输入模块本设计中的键盘输入模块由P2.5、P2.6、P3.4、P3.5、P2.7口和4个按键及1个开关组成。P2.5、P2.6、P3.4、P

19、3.5、P2.7分别连接4个按键1个开关的一端,按键和开关的另一端并联接地,由于各按键的P口接有上拉电阻,因此,无键按下时P2.5、P2.6、P3.4、P3.5输入为高电平,有键按下时P口所对应位会被拉低,P2.5、P2.6、P3.4、P3.5输入低电平。键盘输入电路如图3-4所示。图 3-4 键盘输入电路图3.2.3 水温监控模块水温控制模块由温度传感器、加热器控制电路、加热器组成。其电路图如图3-5所示。图 3-5 水温监控系统电路图3.2.4 温度传感器本系统中的水温传感器采用了温度传感器DS18B20,这种温度传感器有别传统的温度传感器。传统的温度传感器是模拟量输出,经AD转换为数字量

20、后才可以送CPU处理。DS18B20则自带AD转换,直接输出数字量。下面首先介绍一下DS18B20:DS18B20单总线可编程温度传感器,来实现对温度的采集和转换,大大简化了电路的复杂度,以及算法的要求。DS18B20可编程温度传感器有3个管脚。封装图如图3-6所示。 GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,工作电压范围3O55 V。图 3-6 DS18B20主要特点有:用户可自设定报警上下限温度值。不需要外部组件,能测量55+125 范围内的温度。10 +85 范围内的测温准确度为05 。通过编程

21、可实现9l2位的数字读数方式,可在至多750 ms内将温度转换成12 位的数字,测温分辨率可达00625 。独特的单总线接口方式,与微处理器连接时仅需要一条线即可实现与微处理器双向通讯。本设计中DS18B20使用外部电源供电,没有使用DS18B20所带有的温度上下限报警,而是仅用DS18B20采集温度转换后送CPU处理。DS18B20具有很高的精度、简单的接线方式以及低廉的价格,非常符合本设计对温度传感器的要求。如本设计中的水温测量范围只有+20+30,而DS18B20在不需要外部组件的情况下,能测量55+125 范围内的温度;本设计中水温的精度为1,而DS18B20的测温分辨率可达00625

22、1. 加热器控制电路加热器控制电路是通过AT89C51的P0.6 控制,由一只PNP三极管9012驱动一个继电器作为加热器的开关。9012的B极接P0.6,E极接+5V电,C极接继电器线圈一端的引脚,继电器线圈另一端的接地。继电器的常开触点与公共端作为开关部分将加热器的一条电线断开。通过P0.6控制继电器常开触点的通与断,以此来达到控制加热器的目的。选用的继电器线圈工作电压是+5V,触点容量220V交流电。继电器具体型号为:943-1C-5DS, 触点参数12A 125VAC,7A 250VAC,7A 30VDC直流。2. 加热器控制加热器是否工作,只需要控制它的工作电源即可,因此,通过一个开

23、关量来控制。本设计采用20W小型加热器,它的工作电原是220V交流电,所以,将火线或零线中的任意一条由继电器的触点控制,就可实现对加热器的控制。3.2.5 水位监控系统水位控制系统由水位传感器、注水阀门控制电路、电磁阀组成。三部分协调完成对水位的监控。水位监控系统电路图如图3-7所示。图 3-7 水位监控系统电路图1. 水位传感器本次设计中的水位传感器是由自己搭建的电路。 将一条通有+5V电的导线(包有绝缘皮,末端漏小段铜线)置于玻璃水槽底部。各水位感应点同样用导线,利用水的导电性,当水超过感应点的导线末端铜线时,感应电路有微弱电流通过,通过NPN三极管共射极放大电路进行放大后驱动继电器,使继

24、电器常开触点导通。继电器常开触点接P3口的1位,公共端接地。当常开触点导通时,P3口对应位被拉低,即感应到水位到达此感应点位置。P3.0接感应点A的感应信号(上限报警水位),P3.1接感应点B的感应信号(水位上限),P3.2接感应点C的感应信号(水位下限),P3.3接感应点D的感应信号(下限报警水位)。2. 注水阀门控制电路注水阀门控制电路原理与加热器控制电路相同,是通过AT89C51的P0.4 控制,由一只PNP三极管9012驱动一个继电器作为加热器的开关。9012的B极接P0.4,E极接+5V电,C极接继电器线圈一端的引脚,继电器线圈另一端的接地。继电器的常开触点与公共端作为开关部分将注水

25、阀门的一条电线断开。通过P0.4控制继电器常开触点的通与断,以此来达到控制注水阀门的目的。选用的继电器线圈工作电压是+5V。继电器具体型号为:943-1C-5DS, 触点参数12A 125VAC,7A 250VAC,7A 30VDC直流。3. 电磁阀本设计中的注水阀门使用DC6V电磁阀(如图3-8所示),电磁阀工作原理如继电器,未通电时为常闭状态。通电后阀门全开,为通水状态。通过给外部设备设置的统一接口方式,即开关量接口。将电磁阀的一条导线接于继电器的常开触电与公共端引脚,形成电路回路断路,有继电器控制断路部分的闭合和断开,即可控制电磁阀的启停。图3-8 DC6V电磁阀3.2.6 水循环系统抽

26、水水泵从储水箱中抽水,通过水管向平衡水箱灌注,产生水位差时,平衡水箱中的水位会高于储水箱,水就会通过平衡水箱与储水箱间的连通管线向储水箱补充。其控制电路与加热器等设备的控制电路相同,通过继电器实现对外部设备的控制。水泵的控制电路如图3-9所示。图 3-9 水泵的控制电路如3.2.7 报警模块报警模块由一蜂鸣器与显示系统联合组成,蜂鸣器进行长鸣报警,在报警的同时显示器显示错误号。蜂鸣器选用有缘蜂鸣器,P2.4以灌电方式接一只PNP三极管做开关控制蜂鸣器,由于是灌电方式所以P2.4与PNP三极管B极间串联一470欧姆电阻,以保护芯片。其电路图如图3-10所示。图 3-10 蜂鸣器电路3.3 本章小

27、结本章介绍了小区供水控制系统的硬件系统组成:显示模块、键盘输入模块、水温监控模块、水位监控模块、报警模块。详细的说明了小区供水控制系统的硬件组成、硬件设计。并具体的阐述了各个组成部分的硬件电路设计,对水温监控系统、水位监控系统几部分的设计作了详细分析。通过本章的阅读可以使读者对与本次设计的硬件设计部分有一个清晰、全面的了解。第4章 软件设计4.1 引言本次设计的软件部分是采用C语言编写。C语言编写的程序结构清晰、条例明确。通过WAVE仿真器上位机程序编译连接可以自动生成用于烧写于单片机的 .HEX文件。而且通过编译可以自动分配数据区和程序区的地址。使用C语言配合WAVE上位机软件可以使程序编写

28、者省去很多麻烦,还使的程序更加的结构化,便于以后的修改。但使用C语言编写的程序也存在一定的缺点,其生成的文件会很烦琐,文件会比用汇编语言编写的文件大。由于本次设计的规模并不大,其利大于弊。所以采用C语言编写而没有用汇编语言编写。4.2 软件的总体设计系统整机工作是由一AT89C51单片机控制,所以系统软件应该完成的工作应该分为系统初始化部分和主体循环部分2部分。初始化部分是各参数设定值的预设定,以及系统启动后首先要进行对平衡水箱的水位检测。对各参数设定值的预设定是为了进入主体循环部分后满足水温的比较需要,也是为用户设定规定一个设定范围。系统启动后首先要进行对平衡水箱的水位检测是对进入主体循环时

29、运行的正确环境的保证。确保平衡水箱和储水箱中水位达到标准后才进入主体循环部分,也就是监控部分。主体循环部分是在确保环境的正确性后的检测控制部分。其中包括了水温、水位的采集、显示、检测和控制。如水温的采集过程包括水温的采集、转换、存储、与正常值范围比较,最后通过比较结果判断是否启动加热器,实现对水温的控制。4.3 软件的详细设计根据总体设计的思想及本系统所需实现的功能,在软件程序设计中编写以下函数模块:变量的定义及函数的声明:整个程序所用到的全局变量的定义,和对函数的声明(C语言中保证函数调用时不会因函数的定义位置而无法调用的语法规则),其中首先给水温、水位正常范围的上下限赋初值。主函数:通过调

30、用各子函数实现功能,首先检测平衡水箱水位,水位正常后进入主体循环部分,即对平衡水箱中水温、水位的监控状态,以及查询对设定请求。显示函数:LCD1602液晶显示。选择菜单函数:水温值正常值范围设定选择,循环显示1.温度,并循环扫描按键,根据所按按键选择。水温正常值范围设定函数:显示并设定水温上下限及报警上下限。DS18B20初始化函数:初始化DS18B20。DS18B20写字节函数:向DS18B20写一个字节数据。DS18B20读字节函数:从DS18B20读一个字节数据。水温读取函数:从DS18B20读取温度值,并保存到全局数组p5、q5中。水温比较函数:将p5、q5中的值与水温上下限比较,控制

31、加热器的启停。与报警水温比较,如果超过则报警。水位值读取、比较函数:读取当前水位传感器的水位标志判断当前水位状态,控制水泵的启停。如果达到报警水位,则报警。错误处理函数:根据所给参数进行报警长鸣和不同的错误指示灯显示。延时函数:根据参数不同进行延时。4.3.1 主函数通过调用其他函数来实现系统的总体功能,其工作顺序如下:(1) 系统启动后,进行循环进行水位检测控制,确保进入监控状态时温度传感器与PH值传感器所处介质正常。当平衡水箱水位正常后,进入监控状态(主体循环)。(2) 进入监控状态后,首先检测是否按key4键,如果有则调用菜单函数,否则继续。(3) 其次进行水位监控,即水位比较。然后从监

32、控状态起始,再开始循环此过程。(4) 再次进行水温监控,包括水温读取、存储、显示和比较。主函数的程序流程图如图4-1所示。图 4-1 主函数的程序流程图4.3.2 显示函数1. LCD显示流程LCD程序是先对LCD进行初始化,之后检查LCD忙状态,再写指令数据到LCD中,最后写显示数据到LCD中,LCD程序流程图如图4-2所示。图 4-2 LCD程序流程图4.3.3 水温正常范围设定相关函数设定水温值正常范围需要是在主函数的主体循环部分调用设置温度函数。程序流程图如图4-3所示。图 4-3 设置温度函数的程序流程图水温正常值范围设定函数分为两个部分:下限的设定和上限的设定,方法相同、规则相反。

33、首先将当前水温范围上下限的全局变量的值存入对应的用于显示的临时局部变量中,而后进入水温下限设定。水温下限设定时循环以下过程:显示当前水温度范围上下限的用于显示的局部变量的值,然后依次扫描key-key3这4个按键是否被按下。Key1键按下时为加1,需判断是否小于上限,小于时局部变量加1,否则跳过;key2键按下时为减1,需判断是否大于20,大于时局部变量减1,否则跳过;key3键按下时为确定,确定后进入水温上限设定。key键按下时循环选择设置的温度。以上对上限值的操作都是针对用于局部变量,key3确定时并没有将局部变量的值存入全局变量,而是继续水温下限的设定。水温下限设定时方法与上限设定实现方

34、法相同,只有部分差别。循环以下过程:显示当前水温度范围上下限的用于显示的局部变量的值,然后依次扫描key-key3这4个按键是否被按下。Key1键按下时为加1,需判断是否小于30,小于时局部变量加1;key2键按下时为减1,需判断是否大于下限,大于时局部变量减1;key3键按下时为确定,确定时将局部变量的值存入到全局变量中(把局部变量的值存入全局变量才算真正的设定成功),然后返回主函数。4.3.4 水温监控相关函数水温监控相关函数包括:DS18B20的初始化函数, DS18B20的写字节函数,DS18B20的读字节函数,DS18B20的温度读取函数,水温比较函数,延时函数,报警函数,全部外部设

35、备停止函数。通过在中函数中调用温度读取函数将一次循环内的温度值存入全局变量sw1、sw2、sw3、sw4中,在水温比较函数与此次的全局变量sw1、sw2、sw3、sw4与设定好的温度上下限比较进行相应操作,或达到报警值报警。主要通过调用这里所提到的函数来完成程序对水温的监控功能。1. DS18B20的初始化函数由于DS18B20是单总线的时序工作方式,其每次工作前需要初始化。其初始化时序图如图4-4所示。图 4-4 DS18B20初始化时序图首先由总线拉低480-960s,而后释放总线60-120s,此后会有DS18B20自己拉地60-240s,然后释放总线。这样就完成了DS18B20的初始化

36、过程。如果在有DS18B20自动拉低部分,读取总线其没被拉低,则表示DS18B20不存在。函数编写上由于只对一条总线进行编程,所以十分简单。总线拉低时向DQ送0,总线释放向DQ送1即可。延时时间通过延时函数调整。2. DS18B20的写字节函数和读字节函数由于DS18B20的单总线结构,同一时间内只能写入或读出1位数据。而其命令字为1字节形式,读出的数据也是以字节为单位的。所以向DS18B20写命令或读出数据也需要通过其时序工作方式完成。其时序工作图如图4-5所示。图 4-5 DS18B20的读写时序图上图为向DS18B20写或读1位数据的时序,形成字节的读写只需根据时序完成8次循环即可。以D

37、S18B20的写字节函数为例,以参数dat接收存储要写入DS18B20的1个字节。循环8次写1字节过程,循环体首先将总线拉低,即向DQ送0。拉低时间要大于1s,不能超过15s。然后以dat与上0x01来获取要写入字节的最低位,并送DQ。这个延时时间要在60-120s之间。最后释放总线(向DQ送1)1s以上,并将dat右移一位后进行下次循环。3. DS18B20的温度读取函数通过写字节函数向DS18B20写命令字(此处只用到了3个命令字,CC跳过ROM匹配,44温度转换,BE读暂存RAM)采集并转换温度值,然后通过读字节函数从DS18B20读取转换后的数字两温度值并保存于全局变量temp中。DS

38、I8B20温度传感器的内部存储器包括一个高速暂存RAM,便笺存储器包含了9个连续字节(08),前两个字节是测得的温度信息,字节0的内容是温度的低8位,字节1是温度的高8位,如表4-1所示。其中,温度高字节(MS Byte)高5位是用来保存温度的正负(标志为S的bit11bit15),高字节(MS Byte)低3位和低字节来保存温度值(bit0 bit10)。其中低字节(LS Byte)的低4位来保存温度的小数位(bit0 bit 3)。由于本设计中涉及到的温度值在0度以上的整数部分,所以读的温度值不需要转换可直接使用。表4-1 温度字节与温度对应表水温读取函数的程序流程为首先初始化DS18B2

39、0,然后通过DS18B20写字节函数写命令字CC(跳过ROM匹配),再写命令字44(温度转换)。然后再初始化DS18B20,写命令字CC,写命令字BE(读暂存),通过DS18B20字节读取函数读取暂存的前2字节(0,1字节为温度字节)存入a,b两个变量中。低字节左移4位或上高字节右移4位得到温度整数部分存入用于存储水温的全局变量temp中。4. 水温比较函数通过设定的水温正常值范围(全局q4、p4,报警上限,水位上限,水位下限,报警下限)与当前变量dswd中存储的水温值进行比较判断加热器(hot为0时启动)的启停(hot为加热器工作状态标志)与异常报警。其程序流程图如图4-6所示。图 4-6

40、水温比较函数的程序流程图4.3.5 水位监控相关函数水位监控相关函数包括:水位读取比较函数,延时函数,报警函数,外部设备停止函数。通过在主函数中对这些函数的调用实现程序对水位的控制。1. 水位读取比较函数水位读取比较函数的程序流程图如图4-7所示:图 4-7 水位读取比较函数的程序流程图读取水位值在水位比较函数中比较。由于本次水位传感器所搭建的电路是0和1的输出信号,只需要通过采集3位信号是0还是1即可判断水位状态。首先判断水位是否超过上限报警水位(A点水位),如果超过则启动上限报警。否则再判断水位是否超过停止供水水位(B点水位),如果超过则供水停止。否则再判断水位是否超过加水水位(C点水位)

41、,如果超过则启动供水。否则再判断水位是否低于下限报警水位(D点水位),如果低于则启动下限报警。4.3.6 异常处理函数在水温、水位出现异常时会首先停止/关闭相应外部设备(加热器,注水电磁阀和储水箱中的抽水水泵),再根据所得参数的不同显示不同指示灯,并使蜂鸣器进行长鸣,作为报警提示音。4.4 本章小结本次设计的软件部分是采用C语言编写。本章用文字、流程图等方式,对系统中各功能模块的软件程序设计进行了详细论述。通过本章的阅读,可以完整的了解本系统的软件总体设计思想和各模块的详细设计。其中几个主要函数的程序流程图清晰的说明了其工作流程,并且详细的说明了完成的功能。第5章 系统调试5.1 硬件调试通过

42、WAVE仿真器与WAVE上位机软件模拟AT89C51芯片,编写简单程序调试硬件电路。5.1.1 显示模块及键盘输入模块调试显示模块选用LCD1602液晶显示器,采用示例程序调试,经验证全部正常。键盘输入模块调试:将按键所接的P2.7、P2.6、P2.5、P3.4、P3.5定义为keykey4,编写一个循环扫描下压键的小程序,单步运行察看未按按键时keykey4的状态为true,按住key键时,单步运行检测key下压的语句后,key的状态为false.依此方法再检查key1key4,全部正常。5.1.2 温度检测电路调试DS18B20接线简单,GND接地,VCC接+5V,DQ接P2.3并上拉一4

43、.7K电阻,根据电路图检测电路无误。通过温度检测程序调试无法正常显示室内温度,在更换过2只DS18B20后仍无法正常显示温度,经多次确认硬件连接无误发现由于其时序工作方式,温度检测方面的主要问题出在软件方面。经过几次的软件修改能正常显示室温,确认DS18B20硬件电路正确,DS18B20可以正常工作。以热溶胶密封后长时间置与水中仍能正常工作。5.1.3 水位检测电路调试将带+5V电的导线置与水槽中,再将4条水位感应线逐条置于水中,导通后驱动继电器将对应P口一位拉低,发现从水中出来的电流太小无法驱动继电器,经1级放大后驱动继电器仍不稳定。后对其进行2次放大,可以正常驱动继电器将P口一位拉低。再次

44、通过水位检测程序调试,水位检测电路工作稳定,确认其电路无误。5.1.4 控制外设的继电器和报警模块调试通过和p2.4向各控制外部设备的继电器和蜂鸣器送有效信号,蜂鸣器长鸣,继电器发出“嗒”声,用万用表测试常开触点和公共端,两端以导通。将外部设备连接到继电器上,并通220V电,再使继电器敞开触点与公共端导通,外部设备可以正常启动,稳定工作。确认各控制外设的继电器接口和蜂鸣器电路无误,可以正常稳定工作。5.2 软件调试根据系统实现的功能和设计的硬件电路,通过WAVE仿真器和WAVE上位机软件,进行软件仿真和硬件仿真,通过调试程序来验证程序编写的正确性。5.2.1 调试的主要方法和技巧(1) 跟踪调

45、试:跟踪应用程序用户能够在运行应用程序时,看到PC指针在代码程序中的确切位置。跟踪仅执行一行语句程序,有利于观察变量。如果调用函数,则进入函数中,有利于察看所调用函数中的错误。通过跟踪可以察看程序运行的每一步,清晰的了解整个程序的运行过程,方便修改其中出现的错误。(2) 单步调试:单步调试同样是执行一行,但不会进入到程序中调用的其他函数中。适合察看某单一函数,对其调试。如过确认错误就在此函数内而不在起调用的函数内,则使用此调试方法比跟踪调试更省时省力。(3) 断点调试:在程序代码某行设置断点,全速运行时遇到断点会停止。适合程序整体调试时对某一段进行定位调试。(4) 查看变量: 观察窗口、数据窗

46、口以及鼠标直接放于程序中要察看的变量上(可直接看到当前变量内的值)。通过添加观察项菜单可以将用户希望观察的变量添加到观察窗口及数据窗口观察。在设计过程中常用观察窗口观察程序中的变量,修改程序中的错误。5.2.2 调试中遇到的问题和解决方法P2口的使用冲突:软件设计将P2口全部做输出,在调试中发现,影响了的值,干扰了键盘的扫描。因此将其修改为单独按位使用P2口,键盘扫描就可以正常工作了。DS18B20工作中的时序匹配问题:起初由于时序不匹配,造成DS18B20初始化失败,无法工作。后来编写了准确的延时函数,通过所给参数控制延时时间,正确按照DS18B20的时序要求进行延时。使DS18B20可以正

47、常工作。5.3 综合调试对各个模块调试后,进行了综合调试。在硬件调试的基础上,根据各部分的功能和特性,完成了软件的调试,整个系统基本上能够实现预定的功能。在综合调试过程中尤其注意了各函数之间的调用、返回,使程序设计结构清晰、合理、易懂。5.4 本章小结本章将硬件调试与软件调试分开叙述,并对调试过程中出现的问题作了详细的分析,阅读本章可对供水控制系统的整个调试过程了解得很全面。结 论本文设计题目 “储水箱供水控制系统”。根据应实现的功能设计了所需的硬件电路,以AT89C51单片机为主控中心,DS18B20芯片等共同组成了本系统的硬件电路。根据硬件电路设计了相应的软件程序,本次设计主要完成了以下功

48、能:小区供水控制系统的主要功能为对平衡水箱的水温、水位的实时检测、显示、控制及异常报警。系统的详细功能如下:(1) 自动注水功能:系统启动后对平衡水箱和储水箱的注水,通过水泵将平衡水箱与储水箱间形成循环水流。(2) 水温的实时检测、显示、控制功能:正常水温范围设定,系统初始化时水温范围为20-30度。可对下限和上限水温及上限报警和下限报警进行设定。当水温低于温度下限时开始加热,到达温度上限时停止加热。(3) 水位的实时检测、显示、控制功能:当水位低于加水水位时开始加水,水位大于等于上限水位时停止加水。(4) 系统自动报警功能:水温异常处理,当水温高于温度上限报警温度和低于下限温度时报警并显示错

49、误指示灯。水位超过或者低于报警水位时,报警并显示错误指示灯。通过对系统的软硬件调试,实现了全部设计功能。该系统能够实时检测和显示水温、水位信息,根据信息做出相应处理(注水、加热、报警)。该系统的后继发展应该针对不同需要,扩展数据内容、增加表现方式,从而更好的为广大用户服务,扩大用户群体。致 谢本次毕业设计已经接近尾声,作为一个本科生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及一起工作的同学们的支持,想要完成这个设计是难以想象的。在这里首先要感谢我的导师崔文华老师。崔文华平日里工作繁多,但在我做毕业设计的每个阶段,从调研到查阅资料,设计方案的确定和修改,中

50、期检查,后期详细设计,系统调试等整个过程中都给予了我悉心的指导。我的设计较为复杂烦琐,但是老师仍然细心地纠正其中的错误。除了敬佩崔文华老师的专业水平外,她的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。 然后还要感谢大学四年来所有的老师,为我们打下计算机专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。参考文献1. 李群芳,黄建.单片微型计算机与接口技术.电子工业出版社,20022. 何英. Protel99入门与实用. 机械工业出版社,1999.123. 曹琳琳,曹巧媛.单片机原理及接口技术.国防科技大学出版社,

51、20004. 高明.单片微机接口与系统设计.哈尔滨工业大学出版社,19955. 唐朔飞.电子数字计算机原理.哈尔滨工业大学出版社,19996. 何立民. 单片机高级教程北京航空航天大学出版社,20017. 潘新民.微型计算机控制技术.人民邮电出版社,1999.68. 朱定华.单片机原理及接口技术学习辅导.电子工业出版社,2001.89. 胡汉才.单片机原理及其接口技术.第2版,清华大学出版社,2004.210. 李广第.单片机基础北京航空航天大学出版社,199911. 夏继强.单片机实验与实践教程.北京航空航天大学出版社,2001 12. 王建校,杨建国.51系列单片机及C51程序设计.科学出

52、版社,2004.413. AT89C51 DATA SHEEP .Philips. Semiconductors. 1999.dec14. C51 Compiler Users Guide. Keil Elektronik. GmbH.andKeil Software.199915. ATMEL.B-bit Microcontroller with 4K Bytes Flash AT89C51.2000附录1Featuresl Compatible with MCS-51 Productsl 4K Bytes of In-System Programmable(ISP) Flash Memor

53、y Endurance:1000 Write/Erase Cyclesl 4.0V to 5.5V Operating Rangel Fully Static Operation: 0Hz to 33MHzl Three-level Program Memory Lockl 128 x 8-bit Internal RAMl 32 Programmable I/O Linesl Two 16-bit Timer/Countersl Six Interrupt Sourcesl Full Duplex UART Serial Channell Low-Power ldle and Power-d

54、own Modesl Interrupt Recovery from Power-down Model Watchdog Timerl Dual Data Pointerl Power-off Flagl Fast Programming Timel Flexible ISP Programming(Byte and Page Mode)DescriptionThe AT89S51 is a low-power, high-performance CMOS 8-bit microcontroller with 4K bytes of in-system programmable Flash m

55、emory. The device is manufactured using Atmels high-density nonvolatile memory technology and is compatible with the industry-standard 80C51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conventional nonvolatile memory programmer. By com

56、bining a versatile 8-bit CPU with in-systern programmable Flash on a highly-flexible and cost-effective solution to many embedded control applications.The AT89S51 provides the following standard features: 4K bytes of Flash, 128bytes of ram, 32i/o lines, Watchdog timer, two data pointers, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator, and clock circuitry. In addition, the AT90S51 is designed with static logic for operation down to z

温馨提示

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

评论

0/150

提交评论