《电子技术专业课程设计贮水水管液位与水泵控制装置》由会员分享,可在线阅读,更多相关《电子技术专业课程设计贮水水管液位与水泵控制装置(23页珍藏版)》请在金锄头文库上搜索。
1、2002级电子技术专业课程设计设计题目:贮水水管液位与水泵控制装置摘要本单片机系统设计的目的是应用单片机控制技术,以89S52单片机为核心控制水箱的水位,通过水位信号的采集模块采集信号,单片机对信号进行处理,控制水泵的启停,并实现了报警和手动、自动切换功能。用数码管显示液位高度与体积,并可以实现液面高度自动调整(液面高度可以人为的调整).该系统操作方便、性能良好,比较符合家禽用水系统控制的需要。本文还详细的给出了相关的硬件框图和软件流程图,并编制了该汇编语言程序.关键词:单片机 水泵驱动模块 显示屏 信号采集模块ABSTRACTThis task is to control the water
2、 level of tank by micro-controller, the micro-controller always inspect the water level. And then control the water pump to add the water to tank. The digital led gives the water level and vol. the system should easy to operate, easy to use. adapt to family animal drink automatically. This article i
3、llustrate how to design hardware and software. At the same time, it also gives their drawing and script. KEYWORDS: Micro-controller pump drive digital tube signal aquire. 目 录第一章 方案论证11、 控制单元的选择12、信号产生方案的选择13、水泵的选择24、显示方案25、声光报警电路设计26、水泵工作但无水供出方案的选择3第二章 硬件设计41、系统总体设计42、系统各模块电路设计7第三章 系统软件设计9第四章 测试方法与实
4、验数据13第五章 收获和总结15附件一 AT89C2051控制程序16附件二 AT89S52单片机数据采集、转换及显示程序19附件三 电路PCB图24第一章 方案论证根据题目的设计要求,本设计主要实现水泵在液位下限时给水管补水,液位到达上限的时候停止供水,并在高于上限或低于下限的时候发出声光报警。同时显示水位的高度。其系统方案框图如图1所示。为实现各模块功能,提出了几种设计方案并进行论证。控制器模块AT89S52AT89C2051水泵驱动模块声光报警模块扩展模块旋钮输入信号产生模块显示模块信号采集调理模块 图1 系统方案图 Fig-1 the system plan diagram 1、 控制
5、单元的选择方案一:采用16位单片机SPCE061A作为的控制中。SPCE061A具有丰富的资源:RAM,ROM,空间大、指令周期短 运算速度快等特点,尤其是可以进行复杂的数学运算,精度很高,但16位的汇编语言较为复杂。方案二:采用ATMEL89S52型8位单片机作为显示控制系统,同时考虑到芯片的扩展对系统稳定性能会造成一定影响,因此另外采用AT89C2051对水泵进水进行控制。这两种芯片价格便宜,功能强大,在本设计中其运算速度足以达到要求,同时其片内的ROM及RAM容量足以满足要求。综合各方面考虑,最终选择了第二套方案2、信号产生方案的选择方案一:采用触点式开关产生信号,具体为:在水箱外用一根
6、小的透明管与水箱连通,透明管内置浮子,浮子通过一根线使滑轮与滑动触点相连接,通过水箱液面高度的变化使浮子带动移动触点开关运动。移动触点开关与固定触点接触时输出高电平,通过触点的移动,将产生一系列的脉冲信号,反馈给单片机后,单片机对信号进行计数判断,然后控制水泵。但由于触点在相互接触时,产生的信号出现抖动,影响单片机对信号的计数,从而导致控制精度不高。 方案二 :采用滑动变阻器产生信号。在滑动变阻器上装一个滑轮,在一个比较重的小铁球和有浮性的胶球用一根线连接,将其装在滑轮上。通过液面高度的变化,在浮力的作用下,带动小球浮动,从而引起滑动变阻器阻值变化。滑动变阻器阻值的变化将引起其电压变化,将此信
7、号输入到单片机AT89C2051后,进而由单片机控制水泵的运转和启停。综合各方面,最终选择了第二套方案。3、水泵的选择方案一:用直流12V电压驱动的雨刮水泵。其工作的电压底,出水量少,而水管的体积很大,要使水贮满水管需要很长的时间。而且泵水的高度也有点难以达到水管的高度要求。方案二:用交流220V电压驱动的JP022型8W的小型水泵。其出水量合适,泵水的高度也能达到设计的要求。综上分析,选择方案二。4、显示方案方案一:采用LCD液晶显示器。LCD液晶显示器即能显示数字又能显示文字,功能很大的,但其价格要比较贵,且控制较为困难。方案二:采用四位一体DG-E40561IP共阳数码管。这种数码管外形
8、小、结构简单、使用方便,本设计只要用一个四位一体的数码管就可以实现显示要求。综合各项因素,选择方案二。5、声光报警电路设计方案一:报警电路由电压比较器LM339、固态继电器、蜂鸣器、发光二极管和旋扭式可调电阻等组成。电压比较器LM339从传感器采集到的电压值与设置的上限报警值比较再通过从输出管输出。(1)当传感器采集到的信号电压比设置的上限电压值高时,输出管饱和,输出管截止,相当于输出端接低电平。(2)当设置的上限报警值比传感器采集到的信号电压高时,输出管截止,相当于输出端开路。通过电源驱动,蜂鸣器发出声音报警信号,同时使发光二极管发出光报警信号。方案二:采用语音芯片,在超过水位上下限时能够通
9、过语音进行报警,其人机交互友好,但控制复杂,成本较高。综合各项因素,选择方案一。6、水泵工作但无水供出方案的选择方案一:在出水口处加入一触点,若有水流出则触点导通,此时信号将输入给单片机使其识别。此种方案安装简单,但其是否导通受水的导电性影响。方案二:在出水口位置安装一水流开关,在有水流出时,开关断开;无水流出时,开关闭合以提供给单片机一开关信号。综合各项因素考虑,选择方案二。第二章 硬件设计1、系统总体设计系统电路连接及硬件资源分配,本系统硬件电路连接图见图2。AT89S52 旋钮传感器模块数码管显示模块声光报警装置 水流开关旋 钮水泵控制模块AT89C2051 图2 系统电路原理图 Fig
10、-2 the diagram of the system circuit theory本系统信号产生模块时刻检测水位的高低,并把这个信号通过ADC0809转换为数字信号后输送给单片机,系统中的旋钮可以修改极限的上下限,极限值决定是否应该启动水泵给储液罐加水或停止供水,水泵功率为10W,通过单片机控制继电器的断闭得以实现。数码管显示模块时刻显示水位、容积和极限值的大小。本系统的电路图如图3所示。图3 系统电路连接图Fig-3 the diagram of the system circuit2、系统各模块电路设计(1) 电源电路本系统中采用外部开关电源直接供电方式,所提供电压为5V,电流为0.5
11、A。 (2) 晶振电路所选择AT89S52单片机的晶振频率应低于33MHZ,考虑到在程序设计中指令时间计算的便利,我们采用12MHz晶振,一个机器周期为1s。(3)显示电路设计本系统中,利用DG-E40561IP共阳数码管来显示水位的高度和体积及上下限的水位高度。LED显示电路由自制液位传感器采集信号,后输入ADC0809经过A/D转换后,从单片机AT89S52的P0口输入,由单片机进行BCD码转换后,显示水位值。由单片机的P1口控制四位LED数码管显示当前水位及设定的上下限。(4) 报警模块设计本系统采用旋钮式可调电阻进行水位上下限的控制,并通过LM339对输入的水位进行判断,若过高或过低,
12、则通过发光二极管和蜂鸣器进行声光报警。(5)水泵控制模块电路本设计采用的是220V的JP022小型水泵,由于其工作的电压高,故在电路中用欧姆龙G3MB-202P固态继电器对其220V电路进行控制。当水位处于高低水位之间时,水泵工作。继电器在单片机控制下,处于常闭状态。若水位过高或过低,则继电器控制220V电路断开,如下图4所示。图4 继电器控制原理Fig-4 the controlled theory of the relay(6) 模数转换电路设计本系统模数转换电路原理为:从ADC0809端模拟输入信号地址线(23-25)可决定对哪一路模拟输入作为A/D转换22脚锁址控制,当输入为高电平时,
13、对地址信号进行锁存:6脚为测试控制,当输入一个宽电平脉冲时,就开始A/D转换:7脚 为A/D转换结束的标志,当A/D转换结束时,7脚输出高电平:9脚为A/D数据输出允许控制,当OE脚为高电平时A/D转换数据从端口输出:10脚为0809的时钟输入端,利用单片机30脚的六分频晶振信号再通过4024二分频得到。(7)供水水位不足报警电路设计为防止出现供水水位不足但水泵仍工作的现象,在系统设计当中加入了报警装置,该装置的设计为:在水管的出水口处,加入一水流开关,当水泵工作且有水流出时,开关断开,警告灯灭;水泵工作而无水流出时时,警告灯亮,系统处于报警状态。第三章 系统软件设计软件设计是本系统的重要组成
14、部分,因显示功能与控制功能由不同的单片机控制,为此程序设计分为两部分,考虑到汇编语言对显示控制编译的便利性以及Keil C语言对运算编译的便利性,系统使用汇编语言对AT89S52进行编程,使用Keil C语言对AT89C2051进行编程(程序详见附件一与附件二)。本系统的软件设计共分为六个部分,分别为初始化程序设计部分、主程序设计部分、显示主程序设计部分、摸数转换测量子程序部分、水泵启停控制部分、供水水位不足报警部分等组成。(1) 初始化程序系统上电时,将70H72H内存单元清零,P2口置零。(2) 主程序在刚上电时,因70H72H内存单元的数据为0,则每一通道的数码管显示值都为000。当进行一次测量的A/D转换值。每个通道的数码管显示时间在1s左右。主程序在调用显示程序和测试程之间循环。(3) 控制程序当设置好水位的上限和下限值后,单片机将不断检测水位状态,若发现水位到达最低水位,则使继电器闭合,启动水泵电机,同时声光报警。若发现水位到达最高水位,则使继电器断开,停止水泵工作,同时声光报警,如图5所示。(4) 数转换测量子程序模数转换测量子程序是用来控制对ADC0809 八路模拟输入电压的A/D转换,并