完整word版基于单片机液位控制的设计.docx
《完整word版基于单片机液位控制的设计.docx》由会员分享,可在线阅读,更多相关《完整word版基于单片机液位控制的设计.docx(22页珍藏版)》请在冰豆网上搜索。
完整word版基于单片机液位控制的设计
单片机原理与应用
课程设计报告
题目:
基于单片机的液位控制器设计
学院:
xxxxxxxxxxxxxxxxxx
班级:
xxxxxxxxxxxx
学号:
xxxxxx
姓名:
xxx
联系方式:
xxxxxxxx
指导教师:
xxxxxxxxxx
报告成绩:
xx年xx月xx日
摘要
该设计是由单片机AT89C51控制的锅炉水位控制器,它主要有硬件和软件部分共同完成控制系统功能。
其中硬件部分主要由水位检测电路、驱动电路、夜位指示电路以及压力自动控制模拟和手动控制等部分组成;软件部分主要由汇编语言所编写的程序组成。
本系统可实现液位报警、控制和压力控制等功能,并对液位进行数字显示。
电路主要实现功能是液位检测和报警,然后控制水泵的启停。
液位控制主要的控制的对象是水泵,容器是锅炉,液位的检测可根据探测器探测得到。
液位正常情况下控制在一定测量点距离段之间,当液位低于或高于正常水位段下限和上限是进行光报警,若液位在正常液位时,则解除报警。
当液位低于液位下限时,水泵一直注水,而高于上限实则关闭水泵,并且当液位处于不同探测电时,可显示相应数字来显示液位。
压力检测主要由一个开关来模拟压力的高低,并用指示灯的亮灭来模拟风机的运行和停止,另设手动操作按钮,用以人为启动水泵和风机。
关键词:
单片机控制检测报警
ABSTRACT
ThedesignofboilerwaterlevelcontrolleriscontrolledbysinglechipmicrocomputerAT89C51,itmainlyarepartofthecompletecontrolsystemhardwareandsoftwarefunctions.Thehardwarepartismainlycomposedofwaterlevelindicationcircuitdetectioncircuit,drivecircuit,nightandpressurepartssuchassimulationofautomaticcontrolandmanualcontrol;Softwarepartismainlycomposedofprogramswritteninassemblylanguage.Thissystemcanrealizethefunctionsuchasliquidlevelalarm,controlandpressurecontrol,andtheliquidleveldigitaldisplay.
Circuitfunctionalityislargelyliquidleveldetectionandalarm,andthencontrolthepumpstart-up.Liquidlevelcontrolofmaincontrolobjectisthewaterpump,acontainerisboiler,liquidleveldetectioncanbeobtainedaccordingtothedetector.Liquidlevelcontrolinacertainperiodofmeasurementpointdistancebetweennormal,whentheliquidlevelislessthanorhigherthanthenormalwaterlevelislowerlimitandupperlimitalarmlight,iftheliquidlevelinthenormallevel,cancelthealarm.Whentheliquidlevelislessthanlevellowerlimit,thepumphasbeenflooding,abovetheceilingactuallyshutdownpumps,andwhentheliquidlevelindifferentdetectingelectric,itcandisplaythecorrespondingnumbertodisplayliquidlevel.Pressuretestingismainlycomposedofaswitchtosimulatethestressofhighandlow,anddestroythelightoflightstosimulatetheoperationofthefanandstop,theotheramanualbutton,tostartthepumpandfan.
Keywords:
singlechipmicrocomputercontroldetectionalarm
第一章绪论
我国燃烧锅炉的现象很普遍而且数量众多,因此耗煤量巨大,十分浪费资源。
并且大多数锅炉处于能耗大、浪费大、环境污染严重的工作状态。
锅炉微机控制,是近年来新开发的一项新技术,它是微型计算机软件、硬件、自动控制、锅炉节能等几项技术紧密结合的产物,工业锅炉采用的是微机控制和原有的仪表控制,微机控制有以下明显优势:
1)可以直观地显示锅炉的运行参数,显示液位、压力等状态。
2)在运行中可以修改各种各样的运行参数的初始值以及系统的控制参数,还可以很方便的改变液位、压力。
3)可以提高锅炉的热效率,节约能源,符合国家的节能减排政策,有利于我国经济的可持续发展。
4)锅炉系统中包含鼓风机和水泵等大型电动机,采用微机控制更加节约电能,可以节约成本。
5)作为锅炉控制系统装置,其主要任务是保证锅炉的安全、稳定、经济运行,减少劳动人员的劳动强度。
综合以上的种种优点可以预见采用计算机控制系统是行业的大势所趋。
单片机是在一块芯片上集成了一片微型计算机所需的cpu、存储器、输入、输出等部件。
单片机自问世以来,性能不断提高和完善,体积小、速度快、功耗低的特点使它的应用领域非常广泛。
在现代社会中,随着工业的发展,居民生活区的集中热力供应量的需求量越来越大,蒸汽锅炉的容量不断高,对操作过程的要求也更加严格,锅炉的液位控制直接影响人们自身和设备的安全。
液位过低可能使锅炉出现干烧现象,液位过高则又会使锅炉蒸汽压力过高发生危险。
传统的液位控制自动化程度低,调节精度差等缺点,而且单靠人工操作已不能适应控制系统改造的必要性。
随着科学技术的不断进步,被控对象越来越复杂,人们对控制精度的要求越来越高。
随着单片机技术和自动控制技术的发展,利用单片机及外围芯片实现锅炉液位控制已经成为一种趋势,单片机体积小,安装方便,功能齐全,性价比好,应用前景广,本系统即是基于AT89C51单片机设计的,简单易行并且有着较高的实用价值和优越性。
第二章系统总体设计
2.1设计思路:
电路主要实现功能是液位检测和报警,然后控制水泵的启停。
液位控制主要的控制的对象是水泵,容器是锅炉,液位的检测可根据探测器探测得到。
液位正常情况下控制在一定测量点距离段之间,当液位低于或高于正常水位段下限和上限是进行光报警,若液位在正常液位时,则解除报警。
当液位低于液位下限时,水泵一直注水,而高于上限实则关闭水泵,并且当液位处于不同探测电时,可显示相应数字来显示液位。
压力检测主要由一个开关来模拟压力的高低,并用指示灯的亮灭来模拟风机的运行和停止,另设手动操作按钮,用以人为启动水泵和风机。
(1)当液位低至给定的下限液位时,启动水泵对锅炉进行加水,同时光报警器和声报警器都报警。
(2)当液位高至给定上限的液位时,停止水泵对锅炉进行加水,同时报警灯亮起。
(3)当液位高于上上限水位时,停止水泵加水,报警灯亮起并且声报警器蜂鸣器开始鸣叫。
2.2系统框图
系统框图如图2.1所示:
图1.1系统框图
2.3设计原理分析
S1、S2、S3、S4为四个开关,用来传递液位变化的情况,其中S4表示下限液位,S2表示上限液位,S3表示处于正常液位,S1表示上限液位,在这里四个开关表示的是四个光电液位传感器,如下图1.2开关模拟电路。
图1.2开关模拟电路
光电液位传感器是利用光在两种不同介质界面发生反射折射原理而开发的新型接触式点液位测控装置。
它具有结构简单,定位精度高;没有机械部件,不需调试;灵敏度高及耐腐蚀;耗电少;体积小等诸多优点而受到市场的逐渐认可,广泛应用液位控制系统中。
1、由于液位的输出只与光电探头是否接触液面有关,与介质的其它特性,如温度、压力、密度、电等参数无关,所以光电液位传感器检测准确、重复精度高;响应速度快,液面控制非常精确,并且不需调校,就可以直接安装使用。
2、由于光电液位传感器探头体积相对小巧,可分开安装在狭小空间中适合特殊罐体或容器中使用。
另外还可以在一个测量体上安装多个光电探头制成多点液位传感器、变控器。
3、由于对传感器内部的所有元器件进行了树脂浇封处理,传感器内部没有任何机械活动部件,因此光电液位传感器可靠性高、寿命长、免维护。
液位的情况则可以通过数码管显示出来,当液位为下限时,数码管显示为1,当液位为上限时数码管显示为3,当液位为正常液位时数码管显示为2,当液位为上上限水位时,数码管显示为4,从而根据不同的关系来控制输出电路其具体逻辑关系如下表1.3所示。
表1.1工作原理表
P1.0
P1.1
P1.2
P1.3
光报警(P1.5)
声报警(P1.7)
数码管显示(P2)
上上限
0
1
1
1
报警
报警
4
上限
0
0
1
1
报警
不报警
3
正常
0
0
0
1
不报警
不报警
2
下限
0
0
0
0
报警
报警
1
通过数码管显示的数值,人们可以清楚地知道锅炉的液位状况,方便工作人员时刻监控锅炉的运行情况,再加上声报警和光报警装置的配合,则会使工作更加得心应手,从而避免事故的发生,保证人们的生命财产安全。
2.4电路工作原理
当通电后系统开始工作,调整开关模拟电路,当数码管显示为1时,表示水位到达水位下限,此时光报警并且声报警;当数码管显示为2时,表示水位正常;当数码管显示为3时,表示水位到达水位上限,此时光报警声不报警;当数码管显示为4时,表示水位到达水位上上限,此时光报警并且声报警。
第三章系统硬件设计
3.1驱动电路设计
驱动电路用开关来模拟实现,当开关S5按下时电动机开始工作,即水泵开始抽水,表示水泵在工作;当开关没有被按下时,电动机则会根据液位的变化选择工作或者不工作,即水泵抽水还是不抽水,如下图3.1所示。
图3.1模拟驱动电路
3.2报警电路设计
本系统用到两个报警电路。
光报警电路通过89C51输出端口的报警信号驱动一只红色的发光二极管进行光报警它使用低电平驱动。
当锅炉内液位不正常时,即液面过低或过高,发光二极管LED就会亮起,工作人员通过该发光二极管是否点亮,就可以知道锅炉内的液位状况,既而知道是否需要对锅炉进行人工加水,从而保证锅炉的正常运行,避免财产损失,如下图3.2所示。
图3.2光报警电路
声报警电路它是用一个晶体三极管驱动P1.7接晶体基极输入端当P1.7输出高电平1时晶体管导通压电蜂鸣器两端获得约+5V的电压而鸣叫;当P1.7输出低电平0时三极管截止蜂鸣器停止发声,如下图3.3声报警电路图。
图3.3声报警电路
3.3液位指示电路设计
LED显示器是一种由发光二极管显示字段的显示器件,也可称为数码管。
单片机系统中通常使用8段LED数码显示器,8段LED显示器由8个发光二极管组成。
其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,通过不同的组合可用来显示各种数字,包括A~F在内的部分英文字母和小数点“.”等字样。
LED显示器有两种不同的形式:
一种是8个发光二极管的阳极都连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阳极通过电阻与输入端相连。
当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时不点亮。
称为共阳极LED显示器;另一种是8个发光二极管的阴极都连在一起构成公共阴极,使用时公共阴极接地,每个发光二极管的阴极通过电阻与输入端相连。
当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时不点亮。
称为共阴极LED显示器。
LED数码管显示器的显示段码:
为了显示字符,要为LED显示器提供显示段码(或称字形代码),组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED显示器的显示段码为1个字节。
各段码位的对应关系如下表3.1所示:
表3.1段码位关系表
段码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
a
共阳结构的LED显示器各笔划段名和安排位置:
当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合从而显示各种字符。
8个笔划段dpgfedcba对应于1B(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就可以表示欲显示字符的字形代码,如下表3.2所示。
表3.2共阳极常用字形表
如下图3.4所示,是使用输出端口的信号来驱动共阳极数码管显示,根据信号的不同,即光电式液位传感器所反馈回来的信号,也就是锅炉内液面的高度,数码管将显示不同的数字:
1,2,3,4,从而表示锅炉的液位状态是否正常。
通过数码管显示的数字,工作人员就可以轻松地知道锅炉的运行状态,减轻工作人员的负担,进而提高工作效率。
图3.4数码管显示电路图
3.4压力自动控制模拟和手动操作控制电路设计
如图3.5可用开关S7模拟高低压,而风机开关S6代替手动操作部分设置一控制按钮图,D4代表压力报警。
当按下开关S7时,表示锅炉内压力过高,此时LED4会点亮,进行压力报警,如图3.6所示。
从而引起工作人员的注意,及时检查故障并排除,从而保证锅炉的正常运行。
按下开关S6时,则代表风机开始工作,为锅炉的燃烧提供保障。
图3。
5压力模拟电路
图3.6压力报警电路
3.5晶振电路
电路中的晶振即石英晶体震荡器。
由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。
通过基准频率来控制电路中的频率的准确性。
同时,它还可以产生振荡电流,向单片机发出时钟信号。
下图是单片机的晶振电路。
片内电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。
片内振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~24MHz之间选取。
C1、C2是反馈电容,其值在20pF~100pF之间选取,典型值为30pF。
本电路选用的电容为30pF,晶振频率为12MHz。
振荡周期=
;
机器周期
指令周期=
。
XTAL1接外部晶体的一个引脚,XTAL2接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
采用外部振荡器时,对HMOS单片机,该引脚接外部振。
在石英晶体的两个管脚加交变电场时,它将会产生一定频率的机械变形,而这种机械振动又会产生交变电场,上述物理现象称为压电效应。
一般情况下,无论是机械振动的振幅,还是交变电场的振幅都非常小。
但是,当交变电场的频率为某一特定值时,振幅骤然增大,产生共振,称之为压电振荡。
这一特定频率就是石英晶体的固有频率,也称谐振频率。
石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,以便使89C51片内的OSC电路按石英晶振相同频率自激振荡。
通常,OSC的输出时钟频率fOSC为0.5MHz-16MHz,典型值为12MHz或者11.0592MHz。
电容C1和C2可以帮助起振,典型值为30pF,调节它们可以达到微调fOSC的目的,如图3.7所示。
图3.7晶振电路
3.6复位电路
复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上加大于2个机器周期的高电平。
复位后的单片机地址初始化为0000H,然后继续从0000H单元开始执行程序。
在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信号。
但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,以防在按键过程中引起的抖动而影响复位,如图3.8所示。
第四章系统软件设计
4.1软件设计说明
软件组要有主程序和液位控制程序两部分组成,通过数码管显示检测到的状态,不同的状态执行不同的功能,从而达到控制液位的目的。
4.2程序流程图
系统开始后进行初始化,然后系统去检测并开始接受检测信号,如果信号没有越过我们设定的报警限,那么系统会显示检测到的液面值,并判断现在所处于哪一种状态,去执行每种状态所对应的功能并继续检测,如下图4.1所示。
图4.1主程序流程图
4.3液位控制程序流程图
如果信号越过报警限则开始报警,若锅炉液面低于下限,此时数码管显示的数字为1,则电动机马上开始工作,即水泵开始向锅炉加水;若锅炉液面高于上限,此时数码管显示的数字为3,则电动机马上停止工作,不再像锅炉加水;如果电动机继续工作,导致锅炉内液面继续上升,此时数码管显示的数字为4,并且声报警和光报警都启动,关闭电动机,即停止向锅炉加水,随后锅炉液面显示正常,数码管显示的数字将变为2,系统进行正常运作状态,如此循环下去,并时刻检测信号,如下图4.2所示。
图4.2液位控制程序流程图
第五章设计的效果
点击开始数码管显示为0
点击开关S4数码管显示为1
(水位下限此时光报警并且声报警)
点击开关S3数码管显示为2
此时水位正常不发警报
点击开关S2数码管显示为3
水位到达水位上限此时光报警声不报警
点击开关S1数码管显示为4
水位到达上上限此时光报警并且声报警
点击S5恢复到正常状态
点击6D3灯亮风力机开始正常工作
点击S7炉内压力过高LED4亮压力报警
点击S8给两个Tp的高电平电路复位
第六章结论
本系统主要介绍了锅炉的液位检测控制,还介绍了对压力的检测控制,介绍了89C51单片机在锅炉控制系统中的应用,介绍了它的引脚和在系统中的电路图,本设计还采用了多种传感器来对液位和压力的信号采集,利用数码管来进行信号的输出显示,本系统的硬件系统的结构简化,系统精度高,具有良好的人机交互功能,并设有光报警和声报警,有问题立即就能发现,能使问题或故障得到及时的处理与解决。
通过自动调节控制液位并实现锅炉内温度和水位的报警,液位控制在设定值上正常运行不需要人工干预,操作人员劳动强度小。
采用单片机设计出的工业锅炉控制器,能够针对水位的不同状态和不同外界条件进行控制,水位运行稳定、控制品质良好、控制效果明显改善;系统结构简单,同时大大提高了控制系统的抗干扰能力,保证了工业锅炉的稳定运行。
控制装置具有成本低、抗干扰能力强、控制性能好等优点,且系统硬、软件维护简单方便,尤其适用于工业控制现场,具有良好的应用前景。
本系统所采用的传感器性能稳定,测量准确,大大简化现场安装,具有较高的性价比,有较大的工程应用价值,并且利用计算机单片机技术对锅炉生产过程进行自动控制有着重要的意义。
其次,锅炉控制过程的自动化处理以及监控软件良好的人机界面,操作人员在监控计算机上能根据控制效果及时修运行参数,这样能有效地减少工作人员的疲劳和失误,提高生产过程的实时性、安全性。
综述,本系统硬件电路简单,系统稳定性强,性能很可靠;软件编写也很方便,能对液位的初始值进行修改;能够很好地做到对液面的控制,调试与维修也很容易、方便,因此本系统就有较高的实用价值。
附录
源程序:
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVP1,#0FFH
MOVP1,#7FH
MOVP2,#0C0H
MOVP3,#07H
LOOP1:
JNBP1.0,LOOP2
JNBP1.1,LOOP3
JNBP1.2,LOOP4
JNBP1.3,LOOP5
JNBP3.0,FOUR
JNBP3.1,ONE
JNBP3.2,LOOP4
LJMPLOOP1
LOOP2:
CLRP1.5;//4
CLRP1.4
SETBP1.7
MOVP2,#99H
LJMPLOOP1
LOOP3:
CLRP1.5;//3
CLRP1.4
CLRP1.7
MOVP2,#0B0H
LJMPLOOP1
LOOP4:
SETBP1.5;//2
CLRP1.4
CLRP1.7
MOVP2,#0A4H
LJMPLOOP1
LOOP5:
CLRP1.5;//1
CLRP1.4
SETBP1.7
MOVP2,#0F9H
LJMPLOOP1
FOUR:
CLRP3.0
LJMPLOOP1
ONE:
CLRP1.6
LJMPLOOP1
END