1、论文题目: 水箱水位单片机控制系统毕业设计(论文)进度计划表日 期工 作 内 容执 行 情 况指导教师签 字12月15日至12月25日选题12月26日至1月2日论文提纲写作1月3日至2月15日论文提纲写作2月15日至2月29日二稿写作3月1日至3月10日定稿并上交论文的电子文稿3月10日至3月15日做好论文评阅准备教师对进度计划实施情况总评 签名 年 月 日 本表作评定学生平时成绩的依据之一。摘 要在人们的日常生活中,浪费水资源的现象在现实生活中还时有发生。例如居民生活区楼层顶楼的水箱的浪费问题就很严重。不仅要安排人力去人为的检测水位,而且还测不准。不仅造成水资源的浪费还造成财力的浪费。所以我
2、们何不设计一个自动检测水位的系统呢,这样既不需要安排人力去检测,减少了财力的开支。房顶水箱水位大都未能实现自动控制,水箱中水位的高低常由水电管理人员进行控制。不仅浪费人力又会造成不必要的资源浪费。这在电厂中等大型厂房显得尤为突出。为了解决经常停水和有效的避免水资源的浪费,节约能源。设计了一个适用于电厂用水系统的水箱水位控制器。 本系统以8051单片机为核心控制,以电厂600立方米的水箱为例,实现了报警和手动、自动切换功能。该系统操作方便、性能良好,比较符合电厂生产用水系统控制的需要。本文还详细地给出了相关的硬件框架和软件流程图,并编制了相应的汇编语言程序。关键词:水箱水位、节约能源、自动化 A
3、bstractIn Peoples Daily life, the most water tank failed to achieve automatic control, water tank of water level by level often hydropower management control. Waste not only human and will cause unnecessary waste of resources. The power plant in medium large factory seems particularly outstanding. I
4、n order to solve usually stop water and effective avoid the waste of water resources, energy saving. Design a used in power plant water system of water tank controller.This system with 8051 single-chip processor core control, 600 cubic meters of water tank with power plant as an example, realize the
5、 alarm and manual, automatic switching function. The system operation is convenient, the performance good, more accord with the production water control system of power plant needs. This paper also presents detailed related hardware framework and software flow chart, and work out the corresponding a
6、ssembly language.Keywords: water tank, saving energy, automation目 录第一章 概述1第一节 水箱水位单片机控制系统概述1第二节 本设计任务和主要内容2第二章 系统主要硬件电路设计3第一节 单片机控制系统原理3第二节 单片机主机系统电路5第一小节 时序6第二小节 89C51引脚电路及其功能7第三章 系统的软件设计10第一节 系统主程序设计10第二节 自动模式子程序设计11第三节 手动模式子程序设计12第四节 延时1S子程序设计14第五节 延时6S子程序设计15第六节 有无键合子程序设计16结束语17谢词18参考文献19第一章 概述第
7、一节 水箱水位单片机控制系统概述 水是动植物体内和人的身体中不可缺少的物质,可以说,没有水就没有生命的存在。工农业生产中也不能离开水,水是工农业生产的重要原料。在农业生产中消耗的淡水量占人类消耗淡水总量的60%80%,工业上也要用大量的水进行生产。在自然界中淡水量不到水总量的1%。据21世纪城市水资源国际学术研讨会透露,联合国已经把我国列为世界上13个最缺水的国家之一,目前我国人均用水量是世界人均用水量的30%左右。人类现在用水量越来越大,且污染也越来越严重,这就要求我们要保护水资源。但是人民并没有意识到该问题的严重性,浪费水资源的现象在现实生活中还时有发生。例如居民生活区楼层顶楼的水箱的浪费
8、问题就很严重。不仅要安排人力去人为的检测水位,而且还测不准。不仅造成水资源的浪费还造成财力的浪费。所以我们何不设计一个自动检测水位的系统呢,这样既不需要安排人力去检测,减少了财力的开支。又加强了测量的精度,减少了水资源的浪费。第二节 本设计任务和主要内容本论文主要研究水箱水位控制器系统。实现了水位报警和手动、自动切换功能。操作方便、性能良好。主要内容如下: 当水箱水位低时,启动M1、M2给水,水位上升到90%,挺M1.当水箱水位低于50%时,同时启动M1、M2,当水位上升到50%以上70%以下时,停M2,M1继续运行到水位上升到90%才停止工作当水位高与90开度的时候,由传感器经变送器发送信号
9、,LG闭合,系统水位高报警。当水位低于75开度的时候,由传感器经变送器发送信号,LD闭合,系统水位低报警。当水位低与50开度的时候,由传感器经变送器发送信号,LDD闭合,系统水位低低报警。手动/自动模式转换控制如下:全自动模式下,系统自动判断水位的状况,选择不同的工作状态。在手动的模式下,两台给水泵的运行控制可由人工自己操作。 第二章 系统主要硬件电路设计 第一节 单片机控制系统原理系统电路示意图如下:图2-1 系统电路示意图系统结构设计图如下:图2-2 单片机控制系统结构图其中M1、M2为给水泵机组,LG、LD、LDD分别为水位高、水位低、水位低低浮球开关,当水位高(大于90开度)时,LG闭
10、合,当水位低(小于75开度)时,LD闭合,当水位低低(小于50开度)时,LDD闭合。800立方米水箱的控制器由8051系统构成。为避免电机的起停和电源波动时对电路的影响,输入输出均采用光电隔离。输出通过继电器,控制水泵机组的起停和报警,其电路图如下:图 2-3 单片机控制水泵起停报警图给水泵电机主控回路图如下:图2-4 给水泵电机主控回路图第二节 单片机主机系统电路目前,8051单片机在工业检测领域中得到了广泛的应用,因此我们可以在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出能力的综合应用系统,以增强人机对话的功能。89C51是Intel公司生产的一种单片机,在一小块芯片
11、上集成了一个微型计算机的各个组成部分。每一个单片机包括:一个8位的微型处理器CPU;一个256K的片内数据存储器RAM;片内程序存储器ROM;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率是12MHZ。以上各个部分通过内部总线相连接。下面简单介绍下其各个部分的功能。中央处理器CPU是单片微型计算机的指挥、执行中心,由它读人用户程序,并逐条执行指令,它是由8位算术逻辑运算部件(简称ALu)、定时控制部件,若干寄存器A、B、B
12、5w、5P以及16位程序计数器(Pc)和数据指针寄存器(DM)等主要部件组成。算术逻辑单元的硬件结构与典型微型机相似。它具有对8位信息进行+、-、x、/ 四则运算和逻辑与、或、异或、取反、清“0”等运算,并具有判跳、转移、数据传送等功能,此外还提供存放中间结果及执行的指令,共16位可对以K字节的程序存储器直接寻址c指令执行结束后,Pc计数器自动增加,指向下一条要执行的指令地址。CPU功能,总的来说是以不同的方式,执行各种指令。不同的指令其功自略异。有的指令涉及到枷各寄存器之间的关系;有的指令涉及到单片机核心电路内部各功能部件的关系;有的则与外部器件如外部程序存储器发生联系。事实上,cRJ是通过
13、复杂的时序电路完成不同的指令功能。所谓cRJ的时序是指控制器控照指今功能发出一系列在时间上有一定次序的信号,控制和启动一部分逻辑电路,完成某种操作。常用数据寄存器。控制器部件是由指令寄存器、程序计数器Pc、定时与控制电路等组成的。指令寄存器中存放指令代码。枷执行指令时,从程序存储器中取来经译码器译码后,根据不同指令由定时与控制电路发出相应的控制信号,送到存储器、运算器或Io接口电路,完成指令功能。程序计数器Pc程序计数器Pc用来存放下一条将要。第一小节 时序 时钟电路 M田51片内设有一个由反向放大器所构成的振荡电路,XTALI和XTAL2分别为振荡电路的输入端和输出端。时钟可以由内部方式产生
14、或外部方式产生。采用内部方式时,在C1和C2引脚上接石英晶体和微调电容可以构成振荡器, 振荡频率的选择范围为1212MHZ在使用外部时钟时,XTAL2用来输入外部时钟信号,而XTALI接地。 时序 MGL5l单片机的一个执器周期由6个状态(s1s6)组成,每个状态又持续2个接荡周期,分为P1和P2两个节拍。这样,一个机器周期由12个振荡周期组成。若采用12MHz的晶体振荡器,则每个机器周期为1us,每个状态周期为16us;在一数情况下,算术和逻辑操作发生在N期间,而内部寄存器到寄存器的传输发生在P2期间。对于单周期指令,当指令操作码读人指令寄存器时,使从S1P2开始执行指令。如果是双字节指令,
15、则在同一机器周期的s4读人第二字节。若为单字节指令,则在51期间仍进行读,但所读入的字节操作码被忽略,且程序计数据也不加1。在加结束时完成指令操作。多数Mcs51指令周期为12个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它们需4个机器周期。 对于双字节单机器指令,通常是在一个机器周期内从程序存储器中读人两个字节,但Movx指令例外,Movx指令是访问外部数据存储器的单字节双机器周期指令,在执行Movx指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。下面是51单片机的振荡电路图:图2-5 51单片机振荡电路图第二小节 89C51引脚电路及其功能 MCS51系列单片机的40
16、个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。下面按引脚功能分为4个部分叙述个引脚的功能。电源引脚Vcc和VssVcc(40脚):接+5V电源正端;Vss(20脚):接+5V电源正端。外接晶振引脚XTAL1和XTAL2XTAL1(19脚):接外部石英晶体的一端。在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。XTAL2(18脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对
17、于HMOS单片机,该引脚作为外部振荡信号的输入端。对于CHMOS芯片,该引脚悬空不接。控制信号或与其它电源复用引脚控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。(A)RST/VPD(9脚):RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。(B)ALE/ P (30脚):当访问外部存储器时,
18、ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在P0口的低(C)PSEN(29脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期PESN两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN信号将不出现。(D)EA/Vpp(31脚):EA为访问外部程序储器控制信号,低电平有效。当EA端保持高电平时,单片机访问片内程序存储器4KB(MS52子系列为8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当EA端保持低电平时,无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有EPROM的单片机,在
19、EPROM编程期间,该引脚用于接21V的编程电源Vpp。输入/输出(I/O)引脚P0口、P1口、P2口及P3口(A).P0口(39脚22脚):P0.0P0.7统称为P0口。当不接外部存储器与不扩展I/O接口时,它可作为准双向8位输入/输出接口。当接有外部程序存储器或扩展I/O口时,P0口为地址/数据分时复用口。它分时提供8位双向数据总线。对于片内含有EPROM的单片机,当EPROM编程时,从P0口输入指令字节,而当检验程序时,则输出指令字节。(B).P1口(1脚8脚):P1.0P1.7统称为P1口,可作为准双向I/O接口使用。对于MCS52子系列单片机,P1.0和P1.1还有第2功能:P1.0
20、口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P0口接收输入的低8位地址。(C).P2口(21脚28脚):P2.0P2.7统称为P2口,一般可作为准P2口用于高8位地址总线送出高8位地址。对于EPROM编程和进行程序校验时,P2口接收输入的8位地址。(D).P3口(10脚17脚):P3.0P3.7统称为P3口。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。附:89C51的引脚如图双向I/O接口。当接有外部程序存储器或扩
21、展I/O接口且寻址范围超过256个字节时。图2-6 51单片机引脚分布第三章 系统的软件设计第一节 系统主程序设计 ORG 0000HAJMP MAINORG 0060HMAIN: MOV P1, #FFH ;P1 P3口初始化置1MOV P3,#FFHJNB P1.3 , AUT ;若手动在自动位置,跳到自动模式子程序AJMP MEN ;否则转到手动模式子程序END主程序框架图如下:图3-1 主程序流程图第二节 自动模式子程序设计AUT:NOP ;空命令JNB P1.2 , LG ;水位高LGJB P1.1 LD , ;水位没低-LDCLR P3.1 ;水位低报警JB P1.0, LDD ;
22、水位未低低-LDDCLR P3.0 ;水位低低报警JNB 3.1 P1.6, Y1 ;M1已启动Y1CLR P1.4 ;否则启动M1Y1: JNB P1.7 ,Y2 ;M2已启动-Y2 CLR P1.5 ;否则启动M2Y2: ACALL DELAY ;延时1分钟 AJMP AUT ;返回自动模式LDD: JNB P1.6 ,Y3 ;单独运行M1(LDD水位LD)CLR P1.4Y3: JB P1.7 Y2SETB P1.5AJMP Y2LG: CLR P3.2 ;水位高报警LD: AJMP MAIN ;返回主程序自动模式子程序流程图如下:图 3-2 自动模式子程序流程图第三节 手动模式子程序设
23、计MEN: NOPJNB P1.1 , MAIN ;水位高返回主程序ACALL KEYCJNE A ,#FOH,NN ;有无键合AJMP MENNN: JNB ACC.4 ,HM1 JNB ACC.5, HM2JNB ACC.6 ,DM1JNB ACC.7 ,DM2AJMP MENHM1: JNB P1.6 ,MENCLR P1.4AJMP MENHM2: JNB P1.7, MEN CLR P1.5AJMP MENDM1: JB P1.6, MENSETB P1.4AJMP MENDM2: JB P1.7, MENSETB P1.5AJMP MENRET手动模式子程序流程图如下:图3-3 手
24、动模式子程序流程图第四节 延时1S子程序设计延时1S主程序:T1M1: MOV R1, #F0HL4: MOV R2, #08HL1: MOV R3, #FAHL2: MOV R4, #FAHL1: DJNZ R4, L1DJNZ R3, L2DJNZ R2, L3DJNZ R1, L4RET第五节 延时6S子程序设计延时6ms子程序:T1M3: MOV R4, #12MM: MOV R5, #248DJN2 R5, $ DJN2 R4, D3RET第六节 有无键合子程序设计有无键合子程序:KEY: ACALL KS1 ;有无闭合JNZ LK1ACALL TIMAJMP KEY ;无键闭合返回
25、LK1: ACALL TIMACALL TIMACALL KS1JNZ LK2 结束语通过这次单片机的课程设计,使我认识到单片机的应用领域确实很广泛,不仅培养了我自己的独立思考能力,还加深了对单片机应用的认识。但我也仅仅是掌握了其中的一小部分而已。所以设计过程中难免出现差错,以后我会继续学习,不断完善自己。 我所设计的这个系统主要是为了减少人员开支和节约水资源,采用了自动化的结构形式,实现对水箱水位的自动控制。 系统以单片机89C51为核心部件,单片机系统完成对水箱水位信号的采集、处理、等功能;运行程序该系统的主要特点是:1)工作运行稳定,抗干扰能力强。能在多种不同环境中运行。保证了该系统的可
26、靠性。2)在无需人工干预的情况下,能有效地进行水箱水位自动控制,减少了劳动力,减少了用电量,降低了成本。3)该控制器具有小巧、经济、可靠、实用和节能降耗的特点。虽然这次的单片机课程设计已经过去了,但接下来还有一次培养我们自己动手能力的更具挑战性的电子钟课程设计。我会按时参加本次设计安排的课程、认真查阅相关书籍、努力学习相关方面的知识,争取完成自己的第一个动手能力的课程设计,并努力将其完善。谢词在这次控制系统设计的大作业即水箱水位单片机控制系统设计与实践中我遇到了很多的问题。但我的指导老师在我完成这次作业中给予了我很大的帮助,如我在做水箱水位单片机控制系统的设计时不知道该怎么进行时,老师给我讲解了其设计的精髓和应该注意的问题,帮助我很好的完成了这次设计和实践。在此我深深的感谢老师你对我的帮助和指导。让我在社会实践的道路上有了新的认识和体会,更加深刻的理解和明白了机械设计的精髓。最后我对老师说一句:老师你辛苦了!参考文献