液位控制系统设计Word文档格式.docx
《液位控制系统设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《液位控制系统设计Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
单片机经过信息处理后,决定是否启动电机和报警
2.2方案比较
方案一结构简单,操作方便。
但是自动化程度低,精度不高,控制响应时间慢,且只能单独控制。
方案二结构简单,成本低廉。
但精度不高,无法显示,浪费资源,自动化程度低。
方案三不仅结构简单,成本低廉,而且准确度高,自动化高,节省人力资源,更重要的是利用单片机控制后,由于其拥有多个引脚,在为添加功能时更改电路方便快捷,而且部程序可以进行反复输入和擦除,在以后更改控制方法时只要更改程序容就可以达到相对应目的,省时省力,及其节约成本。
2.3方案确定
综合考虑以上方案的优缺点以及题目的基本要求和发挥要求,在本设计中,我采用了第三种方案,即采用单片机来实现液位控制的功能为我此次设计的方案。
主控制器AT89C51单片机与MCS51系列单片机产品兼容,部自带有4KB的Flash存储器及256KBRAM单元,不需另外扩展EEPROM及静态RAM,可以在线下载程序,易于日后的升级。
第3章 硬件设计
该系统硬件设计总体思想是以单片机为控制系统,接受感应信息并进行处理后,将控制指令传出,对各个系统进行对应操作。
硬件设计总体框图如图3-1所示。
复位、时钟系统
液位预选系统
图3-1硬件设计总体框图
控制系统:
根据输入信息进行处理,并将控制数据传出。
指示系统:
液位预选系统:
电机与报警控制电路:
3.1控制系统
该系统控制主要为单片机控制。
单片机是单片微型计算机的简称,是指集成在一个芯片上的微型计算机,它的各种功能部件,包括CPU、存储器、基本输入/输出接口电路、定时/计数器和终端系统等,都制作在一块集成芯片上,构成一个完整的微型计算机。
3.1.1AT89C51单片机
单片机实质上是一个芯片。
它具有结构简单、控制功能强、可靠性高、体积小、价格低等优点,单片机技术作为计算机技术的一个重要分支,广泛的应用于工业控制、智能化仪器仪表、家用电器、电子玩具等各个领域。
ATMEL公司生产的AT89C51单片机采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
其主要特点如下:
8KBFlashROM,可以擦除1000次以上,数据保存10年。
技术特点有:
256字节部RAM;
电源控制模式;
时钟可停止和恢复;
空闲/掉电模式;
6个中断源;
4个中断优先级;
4个8位I/O口;
全双工增强型TUAR;
3个16位定时/计数器:
T0、T1(标准80C51)和增加的T2(捕获和比较);
全静态工作方式:
0~24MHZ;
AT89C51单片机的基本结构请参见图3-2,各部分情况介绍如下:
中央处理器(CPU):
中央处理器是单片机的核心,完成运算和控制功能。
AT89C51的CPU能处理8位二进制数或代码。
部数据存储器(部RAM):
AT89C51芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。
因此通常所说的部数据存储器就是指前128单元,简称部RAM。
部程序存储器(部ROM):
AT89C51共有8KB掩膜ROM,用于存放程序、原始数据或表格,因此称之为程序存储器,简称部ROM。
定时器/计数器:
AT89C51共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
T0
CPU
时钟电路
ROM
定时/计数器
RAM
中断系统
并行接口
串行接口
P3
TxD
x
P
RxD
INT0
INT1
P2
P1
P0
T1
图3-2AT89C51单片机结构框图
并行I/O口:
AT89C51共有四个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入输出。
串行口:
AT89C51单片机有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。
该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
中断控制系统:
AT89C51单片机的中断功能较强,以满足控制应用的需要。
AT89C51共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。
全部中断分为高级和低级共二个优先级别。
时钟电路:
AT89C51芯片的部有时钟电路,但石英晶体和微调电容需外接。
时钟电路为单片机产生时钟脉冲序列。
系统允许的晶振频率一般为6MHZ和12MHZ。
从上述容可以看出,AT89C51虽然是一个单片机芯片,但作为计算机应该具有的基本部件它都包括,因此实际上它已是一个简单的微型计算机系统了。
3.1.2AT89C51的信号引脚
AT89C51是标准的40引脚双列直插式集成电路芯片,其引脚排列请参见图3-3。
引脚功能见表3-1。
引脚名称
引脚功能
P0.0~P0.7
P0口8位双向端口线
P1.0~P1.7
P1口8位双向端口线
P2.0~P2.7
P2口8位双向端口线
P3.0~P3.7
P3口8位双向端口线
ALE
地址所存控制信号
外部程序存储器读选通信号
访问程序存储控制信号
RST
复位信号
XTAL1和XTAL2
外部晶体引线端
Vcc
+5V电源
Vss
地线
表3-1AT89C51引脚功能
图3-3MCS–51引脚
ALE:
在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存器锁存起来,以实现低位地址和数据的隔离。
此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲使用。
:
外部程序存储器读选通信号。
在读外部ROM时
有效(低电平),以实现外部ROM单元的读操作。
访问程序存储控制信号。
当
信号为低电平时,对ROM的读操作限定在外部程序存储器;
而当
信号为高电平时,则对ROM的读操作是从部程序存储器开始,并可延至外部程序存储器。
RST:
复位信号。
当输入的复位信号延续2个机器周期以上高电平即为有效,用以完成单片机的复位初始化操作。
XTAL1和XTAL2:
外接晶体引线端。
当使用芯片部时钟时,此二引线端用于外接石英晶体和微调电容;
当使用外部时钟时,用于接外部时钟脉冲信号。
VSS:
地线。
VCC:
+5V电源。
由于工艺及标准化等原因,芯片的引脚数目是有限制的。
例如AT89C51系列把芯片引脚数目限定为40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就需要给一些信号引脚赋以双重功能。
如果把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。
最常用的是P3口线的第二功能详见表3-2。
表3-2P3口各引脚与第二功能表
第一功能
第二功能
第二功能信号名称
P3.0
RXD
串行数据接收
P3.1
TXD
串行数据发送
P3.2
外部中断0申请
P3.3
外部中断1申请
P3.4
定时器/计数器0的外部输入
P3.5
定时器/计数器1的外部输入
P3.6
外部RAM写选通
P3.7
外部RAM读选通
3.1.3单片机最小系统
单片机最小系统以AT89C51单片机为核心,由单片机、时钟电路、复位电路等组成如图3-4所示。
主要负责各个模块的初始化工作,读取并处理时间、按键响应、显示等。
单片机的工作就是执行用户程序、指挥各部分硬件完成既定任务。
单片机能够工作的最小电路还包括时钟和复位电路。
时钟电路位单片机工作提供基本始终,复位电路用于将单片机部各电路的状态恢复到初始值。
单片机是一个负载的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格的按时序进行工作。
时钟电路用于产生单片机工作所需要的时钟信号。
时钟电路是由XTAL1和XTAL2之间跨接的晶体振荡器和微调电容构成。
时钟电路中晶体振荡器的频率高则系统的时钟频率就高,所以该系统采用12MHz晶振,工作周期为1us。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
单片机复位是使CPU和系统中的其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。
本系统中采用的是12MHz晶振,时钟频率为12MHz,每个机器周期为1us,需要加上持续2us以上时间的高电平。
复位电路有两种形式:
手动按键复位和上电复位,在本系统中采用的是手动按键复位。
如图3-4所示,R1、C3和KEY1组成系统手动按键复位电路。
图3-4单片机最小系统
3.2感应系统
为了使单片机在液位情况不同时进行判定,从而决定工作情况,我们要给单片机传递液位的信息。
感应系统目的就是将感应到的液位的信息传递给单片机,所以需要在容器中放置能够感应出液位情况的感应器件,此系统中我们选用浮球液位计。
浮球液位计由浮球、插杆等组成。
根据排开液体体积相等原理浮于液面,当容器的液位变化时浮球也随着上下移动,由于磁性作用,浮球液位计的弹簧受磁性吸合,把液面位置变化成电信号,通过磁耦合作用,使传感器电阻成线性变化,由智能转换器将电阻变化转换成4~20mA标准电流信号,传供给控制系统可实现液位的自动检测、控制和记录。
该仪器适用于石油、化工、电力、轻工及医药等行业污水处理及各类常压和承压容器介质液位的测量,尤其对于地下贮槽、贮罐的液位测量最为理想。
通过浮球液位计所传出的电流信号,传递给单片机。
如图3-5所示,P1.0、P1.1、P1.2、P1.3为液位检测信号传递的接口。
P1.0端口接a位,P1.1端口b位,P1.2端口接c位,P1.3端口接d位。
图3-5信号传递系统
3.3指示系统
为了得知控制系统运转时的情况,我们需要给整个系统添加装置来明示,表明系统的进程、液体的位置,此系统中,采用连接指示灯来提供我们液位控制的必要的信息。
如图3-6所示,P0.0、P0.1、P0.2、P0.3、P0.4端口为单片机与液位位置和单片机工作指示灯的控制和通信的数据端口。
在单片机工作期间,除了表明工作进行的工作指示D5
会一直保持亮的状态,其它指示灯会为表明液位的情况相应变亮,如表3-3所示。
表3-3指示灯情况明示表
液位情况
亮状态指示灯
液体到达a位
D1
液体到达b位
D1,D2
液体到达c位
D1,D2,D3
液体到达d位
D1,D2,D3,D4
图3-6指示系统
3.4液位控制系统
在液位进入容器时,为了可以控制液体在容器液位的高度,选择P2.0、P2.1、P2.2为预定液位的控制端口,在P2.0端口、P2.1端口、P2.2端口接入三个开关分别限定液体到达a位、b位和c位,如图3-7所示。
开关闭合时单片机会进行判定,然后根据程序进行液位控制,使进入容器的液体停止在相应位置。
如果在单片机起动后没有开关闭合,那么液体直到d位才会停止。
图3-7液位控制系统
3.5电机与报警系统
单片机在接受和判断传输进来的信息后根据程序来控制电机的运转和警报的鸣响。
如图3-7,P3.0、P3.1为电机和报警器的控制端口,P3.0端口连接电机控制电路,在端口发出高电平时,会启动光耦合器,使电路中得电磁继电器闭合,导通电机电路,使电机转动将液体送入容器。
其工作状态如表3-4。
图3-7电机与报警系统图
表3-4电动机和报警器工作状态表
液位控制开关情况
电动机及报警状态
未检测到液体
无开关闭合
D6亮,电动机转,警报不响
a位开关闭合
D6灭,电动机停,警报响
b位开关闭合
c位开关闭合
D6亮,电动机转,警报响
第4章 软件设计
系统软件设计的程序编写容,可以监控液位的不同位置,在液位处于不同状态传递着不同信号而由程序控制指示灯、电机及报警器的状态。
系统设制了三个按键,是控制液位位置的。
整个系统的软件设计均采用C语言开发,采用查询的方式进行液位和按键状态进行扫描,确保系统的实时性。
系统框图如图4-1。
图4-1控制系统框图
4.1延时子程序
电路中我们用的12MHz的晶体振荡器,所以一个机器周期为1us,为了使电路中的报警器发出正常的鸣叫声,需要一个延时子程序。
容如下:
voiddelay(unsignedintz)
{
unsignedintx,y;
for(y=110;
y>
0;
y--);
for(x=z;
x>
x--);
}
其中Z为自定义函数,在调用时插入语句“delay(z)”即可启动延时,而其中的延时时间为Z×
110us。
4.2感应系统程序
由硬件系统可知,单片机的P1端口接入的是液位的感应端,由于感应端的关系,在感应高位的端口时低端的感应器一定感应到了液位,所以端口会由于液位上涨依次接收到电信号,相对应得函数程序,流程及其相应程序为:
P1==0xf0//液位无感应无信号。
P1==0xf1//a位有感应信号。
P1==0xf3//a位、b位有感应信号。
P1==0xf7//a位、b位、c位有感应信号。
P1==0xff//四个液位档均有感应信号。
图4-2液位感应流程图
4.3指示系统程序
液位和单片机工作指示灯的控制和通信的数据接入单片机的P0端口。
当端口处于高电平时指示灯就会变亮,而控制端口的高低电平就是单片机和其部的程序,当感应到液位信号后,作出对应指令。
P0.4端口的工作指示灯在单片机工作时一直都要保持亮的状态,所以我们需要P0.4一直为高电平。
P4端口的函数指令、流程及其相应程序如下:
液位到达a位
液位到达b位
液位到达c位
液位到达d位
系统启动
液位指示灯D1亮
液位指示灯D2亮
液位指示灯D3亮
工作指示灯D5亮
液位指示灯D4亮
if(P1==0xf0)//液位指感应无信号
P0=0xf0;
//只有工作指示灯亮
if(P1==0xf1)//a位有感应信号
P0=0xf1;
//a位指示灯亮
if(P1==0xf3)//a位、b位有感应信号
P0=0xf3;
//a位、b位指示灯亮
if(P1==0xf7)//a位、b位、c位有感应信号
P0=0xf7;
//a位、b位、c位指示灯亮
if(P1==0xff)//四个液位档均有感应信号
P0=0xff;
//四个液位指示灯全亮
图4-3指示灯系统流程图
4.4电机和警报系统程序
单片机的P3.0、P3.1为电机和报警器的控制端口,利用程序语言将这两个端口定义出来,更为方便简单的控制,例:
sbitP30=P3^0;
//电机端口,将P3.0接口定义为P30。
sbitP31=P3^1;
//报警器端口,将P3.1接口定义为P31。
相应端口为高电平时会导致电机启动,报警器鸣叫,系统流程图如下:
P30=1;
//电机指示灯D6亮,电机启动
P31=0;
//报警器不响
P30=0;
//电机指示灯D6灭,电机停
P31=1;
//报警器响
图4-4电机和警报系统流程图
4.5液位预选系统程序
P2.0、P2.1、P2.2为液位预选控制的数据传送端口,不同的感应端口接收到信号后,通过单片机控制电机和报警器。
流程图如下:
N
Y
电机转动
是否有按键按下
相应液位是否有液体感应
电机停止
图4-5液位控制系统流程图
a位控制:
if(P1==0xf1)//a位有感应信号
{
P0=0xf1;
//a位指示灯亮
if(P20==0)//a位预选开关按下
{
P30=0;
//电机停
P31=1;
//报警
}
b位控制:
if(P1==0xf3)//a位、b位有感应信号
{
P0=0xf3;
//a位、b位指示灯亮
if(P21==0)//b位预选开关按下
{
P30=0;
P31=1;
}
}
c位控制:
if(P1==0xf7)//a位、b位、c位有感应信号
P0=0xf7;
//a位、b位、c位指示灯亮
if(P22==0)//c位预选开关按下
{
液位达到d位时,点机会自动停止,报警器鸣叫,程序如下:
if(P1==0xff)//a位、b位、c位、d位均有感应信号
{
//a位、b位、c位、d位水指示灯全亮
{
//电机停
//报警
}
4.6系统主流程图
系统的软件主流程图如图4-6所示。
读取液位信息
指示灯显示
初始化
液位控制键位按下
是否液位达标
电机转
电机停
结束
开始
图4-6主程序流程图
系统程序详见附录2。
第5章 系统测试
本设计的核心是采用AT89C51单片机,外部连接电子电路,构成了一个多位控制的液位控制系统。
本系统的仿真采用PROTEUS软件,由于软件没有浮球等液位感应器,所以连接简单电路代替。
如图5-1所示,设有4个接地开关SW1-SW4,对液位进行仿真控制如果没有开关断开,就相当于液体低于a位,电机会自动运行。
但要注意,在液位处于高液位时液位肯定浸没过低液位,所以在表示高液位开关断开时,低于此液位的开关也要处于断开状态,对应仿真情况如表5-1。
图5-1信号传递仿
真系统
表5-1液位情况仿真表
开关状态
开关全部闭合
SW1断开,其他开关全闭合
SW1,SW2断开,其他开关闭合
SW4闭合,其他开关全断开
开关全部断开
5.1仿真测试过程
进行系统仿真。
运行系统,开始传感器无感应(如图5-1),P0.4端口保持高电平,D5会保持亮的状态说明系统正在运行(如图5-2所示),此时程序会使P3.0端口为高电平,P3.1端口为低电平,而当P3.1端口为高低电平,会使报警电路导通,才能使报警器会鸣叫。
图5-2系统运行工作指示灯D5亮
当P3.0端口为高电平,D6会变亮,会启动光耦合器,电流同过电路三极管后会被放大到足够大,以启动电磁继电器使开关吸合,使电机电路导通,如图5-3所示。
图5-3电机转动
当开关SW1断开时,P1.0端口为高电平(如图5-4),如果开关SW5于闭合状态下,会使P2.0端口为低电平,此时程序会使P3.0端口为低电平,P3.1端口为高电平,则电机会停止,报警器会鸣叫,如图5-5;
开关SW5于断开闭合状态下,会使P2.0端口为高电平,此时程序会使P3.0端口为高电平,P3.1端口为低电平,则电机会转动,报警器不会鸣叫。
图5-4模拟液位到达a位,SW1断开
图5-5a位控制开关闭合
当开关SW2断开时(SW1已处于断开),P1.1端口为高电平(P1.0端口已处于高电平)指示灯D1,D2会变亮,判断此时开关SW6状况,如果此时开关SW6处于闭合状态下,电机则会停止,报警器会鸣叫;
否则电机继续转动。
同理,在开关SW3断开时,指示灯D1,D2,D3会变亮,判断开关SW7的状况。
而在开关SW4断开时,液位指示灯会全亮,电机会自动停止且报警器鸣叫。
5.2仿真结果
系统通过仿真调试后,可以稳定运行,进行液位控置,且可以在系统进行时更改预设液位。
但要注意在运用电磁继电器时,要使电路有足够的电压启动它;
连接报警器时,要考虑单片机部时钟始终频率。
总 结
本设计以功能齐全适用于大众为指导思想,选取AT89C51单片机为控制核心。
通过外围元件构成了一个具有容器液位不同位置控制的液位控制系统。
系统拥有指示灯显示液位,键位预选液位,到目的液位的报警功能,软件程序采用均采用C语言编写,便于移植与升级。
整个系统是根据单片机对液位感应信号和液位控制端口的循环判断后