电子技术专业课程设计-贮水水管液位与水泵控制装置.doc

上传人:西安人 文档编号:5026035 上传时间:2020-01-29 格式:DOC 页数:23 大小:494.50KB
返回 下载 相关 举报
电子技术专业课程设计-贮水水管液位与水泵控制装置.doc_第1页
第1页 / 共23页
电子技术专业课程设计-贮水水管液位与水泵控制装置.doc_第2页
第2页 / 共23页
电子技术专业课程设计-贮水水管液位与水泵控制装置.doc_第3页
第3页 / 共23页
电子技术专业课程设计-贮水水管液位与水泵控制装置.doc_第4页
第4页 / 共23页
电子技术专业课程设计-贮水水管液位与水泵控制装置.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《电子技术专业课程设计-贮水水管液位与水泵控制装置.doc》由会员分享,可在线阅读,更多相关《电子技术专业课程设计-贮水水管液位与水泵控制装置.doc(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。当进行

15、一次测量的A/D转换值。每个通道的数码管显示时间在1s左右。主程序在调用显示程序和测试程之间循环。(3) 控制程序当设置好水位的上限和下限值后,单片机将不断检测水位状态,若发现水位到达最低水位,则使继电器闭合,启动水泵电机,同时声光报警。若发现水位到达最高水位,则使继电器断开,停止水泵工作,同时声光报警,如图5所示。(4) 数转换测量子程序模数转换测量子程序是用来控制对ADC0809 八路模拟输入电压的A/D转换,并将对应的数值移入70H72H内存单元,其程序流程如图6所示。 (5)显示子程序采用动态扫描法实现四位数码管的数值显示。测量所得的A/D转换数据放在70H72H内存单元中。测量数据在

16、显示时需经过转换成为十进制BCD码放在76H79H中,其中7BH存放通道标志数。寄存器R3用来作3路循环控制,R0用作显示数据地址指针,其流程图如7所示到最低水位否Y开 始初 始 化超过最高水位否声光报警NYN水泵停止工作水泵工作有水泵出否声光报警NY图5水泵控制流程图Fig-5 the flow chart of the pump controlling开 始启 动 测 试数模转换结束?P3.7=1?取数据(P2.5=1)0809地址加1取 上 限 值取 下 限 值地址数小于3?结 束图6 数模转换测量程序流程图YN Fig-6 the flow chart of the A/D trans

17、verse measurement 开 始初始化调用显示子程序调用A/D转换子程序图7 显示流程图Fig-7 the flow chart of the monitoring(6)系统软件抗干扰程序为防止因电磁干扰而造成程序的“跑飞”,在程序设计当中加入了软件陷阱,既每段程序后加入两个空操作NOP,若程序“跑飞”则程序被软件陷阱捕获,被抗干扰程序处理,返回复位状态,重新启动系统。第四章 测试方法与实验数据1、测试仪器万用表、51系列仿真器、8051仿真头、89C2051仿真头以及SUPERPRO/Z编程器。2、 硬件调试注意事项(1)硬件调试时,可先检查印制板及焊接的质量是否符合要求,有无虚焊

18、点及线路间有无短路、断路。然后用万用表测试或通电检测,检查无误后,可通电检查数码显示器亮度情况。(2)LM339与单片机相连的只有4根线,很容易检查,主要检查其与管脚是否连接好。3、软件调试软件调试是在WAVE G6000软件模拟器下进行,源程序编译及仿真调试应分段或以子程序为单位逐个进行,最后结合硬件实时调试。子程序调试包括:(1)ADC0809信号采集程序;(2)显示液位高度子程序;(3)声光报警程序; 本系统使用伟福V5/S仿真器进行程序仿真,在仿真过程中,因仿真头对输入电压有非常严格的要求,因此必须严格检查仿真头40脚输入电压是否超过5V,程序仿真成功后方可烧入单片机。4、测试结果分析

19、(1)启停水位及报警水位的测试分析经过实验,本设计小组选取了10cm、25cm、35cm等水位进行测试,实验结果表明:在10-25cm间,显示误差小于0.5cm。在35cm时误差为1 cm。测试通过(2)液位小于10cm时自动启停水泵测试本小组首先将水箱中的水全部排除,系统通电后,水泵自动进水,同时蜂鸣器报警,指示灯闪亮,表明水位低于10cm。测试通过(3)液位在高于上限值报警测试本小组选择40cm水位报警,测试结果表明,当水位到达40cm时,声光报警装置启动,误差值在1cm以内。(4)液位在高于上限时停水测试本小组选择了35cm和40cm两个位置作为上限高度,实验结果表明在两个位置,系统能实

20、现自动停水功能,误差在1cm以内。(5)显示测试本小组选择了10cm、25cm、35cm以及40cm四个位置进行显示,测试结果表明:此四个位置所显示值误差小于0.5cm。测试通过(6)电机工作但液位不变化报警测试本小组首先使水泵工作,在系统正常工作后,将水管拔除,系统报警。将水管接好后,报警解除。由于所采用的ADC0809为8位,其计时精度相对设计要求而言已经足够,测量水位高度较为准确,误差在1cm以内。第五章 收获和总结经过紧张的四三联单天的奋力拼搏,与小组其他成员通力协作,团结互助,终于完成了实验项目。首先,我们小组全体成员感谢主持本次竞赛的主委会和全体评审老师以及我们的辅导老师,谢谢你们

21、给了我们一个提高自己和展现自己的舞台,让我们在以后的人生中更加自信和坚定。回想这四天三夜,短暂而充实,就我们而言,我们在许多方面都有了明显进步和收获,无论是拼搏精神还是团队精神都是对我一生都是一笔丰富的财富。所以这次竞赛无论能否取得成功,我们都不会有遗憾,我们会继续发扬这四天三夜的精神,在以后的日子里更加努力地提高自己、充实自己。同时,我们希望在这四天三夜的努力有所肯定,希望我们能站在领奖台上。参考文献1胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,19962徐爱钧,彭秀华.单片机高级C51应用程序设计M.北京:电子工业出版社,20003李建忠.单片机原理及应用M.西安:西安电子科技

22、大学出版社,19994李群芳.单片微型计算机与接口技术M北京:电子工业出版社,20015楼然苗,李光飞.51系列单片机设计实例M.北京:北京航空航天大学出版社,2003附件一 AT89C2051控制程序#include #include #include #include #include /*/#define uchar unsigned char#define uint unsigned int#define ulong unsigned long/*/*定义全局变量*/sbit JS=P17; /点火线通断继电器控制口sbit CS=P16; /过限蜂鸣器报警控制口sbit SB=P15

23、; /发动机启动信号输入口sbit XB=P14; /发动机冷却水水位传感器输入口输出sbit SX=P30; /发动机水温传感器输入口sbit XX=P31; /发动机机油压力传感器输入口sbit YBJ=P32;uchar BB=0;/*/*延时程序*/ void delay() /延时25秒 uchar i,j; for(i=0;i100;i+) for(j=0;j100;j+); /*IO口初始化*/void ioini() JS=1; CS=1; SB=1; XB=1; /MD=0; /SW=0;/*/*主函数*/void main() ioini(); /端口初始化 do #pra

24、gma ASM MOV P3,#0FFH #pragma ENDASM if(XX=1) while(!SX) #pragma ASM MOV P3,#0FFH #pragma ENDASM JS=0;BB=1; if(XX=1) XB=0; delay(); delay(); XB=1; delay(); delay(); else/JS=1; if(SX=1) SB=0; delay(); SB=1; delay(); #pragma ASM MOV P3,#0FFH #pragma ENDASMif(BB=1&YBJ=1) CS=0;else CS=1; else JS=1; BB=0;

25、 if(XX=1) XB=0; delay(); delay(); XB=1; delay(); delay(); if(SX=1) SB=0; delay(); SB=1; delay(); while(1);/*结束*/附件二 AT89S52单片机数据采集、转换及显示程序70H-72H存放采样值,76H-79H存放显示数据,依次为个位、十位、百位、通道标志;*;* *;* 主程序和中断程序入口 *;* *;*ORG 0000H ;程序执行开始地址LJMP START ;跳至START执行ORG 0003H ;外中断0中断入口地址RETI ;中断返回(不开中断)ORG 000BH ;定时器T

26、0中断入口地址RETI ;中断返回(不开中断)ORG 0013H ;外中断1中断入口地址RETI ;中断返回(不开中断)ORG 001BH ;定时器T1中断入口地址RETI ;中断返回(不开中断)ORG 0023H ;串行口中断入口地址RETI ;中断返回(不开中断)ORG 002BH ;定时器T2中断入口地址RETI ;中断返回(不开中断);*;* *;* 初始化程序中的各变量 *;* *;*CLEARMEMIO: CLR A ; MOV P2,A ;P2口置0 MOV R0,#70H ;内存循环清0(70H-79H) MOV R2,#06H ;LOOPMEM: MOV R0,A ; INC

27、 R0 ; DJNZ R2,LOOPMEM ; MOV A,#0FFH ; MOV P0,A ;P0、P1、P3端口置1 MOV P1,A ; MOV P3,A ; NOP NOP LJMP ERR RET ;子程序返回;*;* *;* 主 程 序 *;* *;*START: LCALL CLEARMEMIO ;初始化MAIN: SETB P3.4; LCALL DISPLAY ;显示数据一次 LCALL TEST ;测量一次 LCALL CON ;控制水泵动作 AJMPMAIN ;返回MAIN循环 NOP ;PC值出错处理 NOP ;空操作 NOP ;空操作 LJMPSTART ;重新复位起

28、动;DISPLAY: MOV R3,#03H ;3路信号循环显示控制 MOV R0,#70H ;显示数据初址(70H-72H) MOV 76H,#00H ;显示通道路数(0-3)DISLOOP1: MOV A,R0 ;显示数据转为三位十进制BCD码存入SUBB A,#16HRRC A MOV B,#100 ;76H、77H、78H显示单元内 DIV AB ;显示数据除100 MOV 75H,A ;商入7AH MOV A,#10 ;A放入数10 XCH A,B ;余数与数10交换 DIV AB ;余数除10 MOV 74H,A ;商入79H MOV 73H,B ;余数入78H MOV R2,#0

29、FFH ;每路显示时间控制 4MS*255DISLOOP2: LCALL DISP ;调四位LED显示程序 DJNZ R2,DISLOOP2 ;每路显示时间控制 INC R0 ;显示下一路 INC 76H ;通道显示数值加1 DJNZ R3,DISLOOP1 ;3路显示未完转DISLOOP1再循环 NOP NOP LJMP ERR RET ;3路显示完子程序结束; LED共阳显示子程序,显示内容在78H-7BH,数据在P1输出,列扫描在P3.0-P3.3口DISP: MOV R1,#73H ;赋显示数据单元首址 MOV R5,#0FEH ;扫描字PLAY: MOV P1,#0FFH ;关显示

30、MOV A,R5 ;取扫描字 ANL P3,A ;开显示 MOV A,R1 ;取显示数据 MOV DPTR,#TAB ;取段码表首址 MOVC A,A+DPTR ;查显示数据对应段码 MOV P1,A ;段码放入P1口 LCALL DL1MS ;显示1MS INC R1 ;指向下一地址 MOV A,P3 ;取P3口扫描字 JNB ACC.3,ENDOUT ;四位显示完转ENDOUT结束 RL A ;扫描字循环左移 MOV R5,A ;扫描字放入R5暂存 MOV P3,#0FFH ;显示暂停 AJMP PLAY ;转PLAY循环ENDOUT: MOV P3,#0FFH ;显示结束,端口置1 MO

31、V P1,#0FFH ; NOP NOP LJMP ERRRET ;子程序返回;LED数码显示管用共阳段码表,分别对应0-9,最后一个是熄灭符TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH; 1MS延时子程序,LED显示用DL1MS: MOVR6,#19H ;DL1: MOVR7,#19HDL2: DJNZ R7,DL2 DJNZ R6,DL1 RET;模数转换测量子程序TEST: CLR A ;清累加器A MOV P2,A ;清P2口 MOV R0,#70H ;转换值存放首址 MOV R7,#03H ;转换8次控制 LCALL TESTART ;启动测试WAIT: JB P3.7,MOVD ;等A/D转换结束信号后转MOVD AJMP WAIT ;P3.7为0等待;TESTART: SETB P2.3 ;锁存测试通道地址 NOP ; 延时2微秒 NOP ; CLR P2.3 ;测试通道地址锁存完毕 SETB P2.4 ; 启动测试,发开始脉冲 NOP ; 延时2微秒 NOP ; CLR P2.4 ; 发启动脉冲完毕 NOP ;延时4微秒 NOP

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1