基于AT89C52的数显水位控制器
2012-04-29吴明波
吴明波
摘要:该电路用于公共场所供水控制的一种电路,工作人员可根据用水人数的多少来选择功能开关,合理的控制用水,能达到节水的目的。该电路由水位探测、水深选择、单片机、数字显示、继电器控制等5部分组成。四个常开型干簧管H1-H4分别置于水箱里的四个不同的位置,作为水位探测电路;三个开关S1,S2,S3为功能选择开关,进行水深的选择;数码管用来显示水位的高低;单片机的一个端口.做为继电器控制端,控制水泵的抽水。该电路要求水位为最低时,水泵开始抽水,抽到水位为最高为止,水泵才停止工作;当水位下降时,水位未到最低点水泵不抽水,直到水位降到最低时水泵才开始抽水,抽到水位为最高为止,如此反复进行。
关键词:数显水位控制器;水位探测传感器;干簧管水深选择;单片机;数字显示;继电器;水泵
中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)02-0469-02
AT89C52 Based Digital Water Level Controller
WU Ming-bo
(Changsha City School of Electronics Industry, Changsha 410008, China)
Abstract:This electric circuit is used to control the water supply in public places . Staff workers can choose the functional switches accord? ing to the number of people using the water to control the water using reasonably to save water. This electric circuit consists of five parts : detection of water level, selection of water depth, MCU, digital display and replay control. Four normal-on reed switches H1-H4 are put in four different places in the water tank and used as water lever detection circuit. Three switches S1,S2, S3 are used as functional switches to choose the depth of the water. The nixie tube is used to show the high-low of the water level. One port of the MCU is used as the end of replay control to control the pumping. This circuit requires that when the water level reaches the lowest point, the water pump begin to pump and it wont stop until the water level has reached the highest point. On the contrary, when the water level drops to the lowest point, the pump begins to pump (not when the water level isnt the lowest) till the water level reaches the highest point and the cycle will be repeated continuously .
Key words: digital controller of water level; water level detection sensor; reed switch; single chip microcomputer; digital display depth se? lection; relay; water pump
该电路可用于宾馆、酒店、工厂、学校等单位根据用水人数进行供水控制,从而达到节水的目的。该电路采用的水位探测传感器是用紫铜管、常开型干簧管和带磁铁的塑料浮漂制作而成,经久耐用、不腐蚀、不电解水。
1电路结构
该电路由水位探测、水深选择、单片机、数字显示、继电器控制等5部分组成。四个常开型干簧管H1-H4分别置于水箱里的四个不同的位置,作为水位探测电路;三个开关S1,S2,S3为功能选择开关,作为可控水深选择电路;S1的功能是设置水位在H1-H4之间进行高水位自动检测控制;S2的功能是设置水位在H1-H3之间进行中水位自动检测控制;S3的功能是设置水位在H1-H2之间进行低水位自动检测控制。将AT89C52的p1口通过限流电阻与一个共阳极数码管相连,用来显示水位的高低,p3.6.做为继电器控制端,继电器的常开触点作水泵的电源控制开关,常开触点闭合时,水泵通电给水箱灌水。
2电路的工作原理
上电后,芯片自动复位并从0000H单元开始执行程序。初始化以后,芯片循环检测P3.4,P3.5,P3.7口,即检测功能开关S1-S3的状态,若哪个端口被检测为低电平,则执行相应的水位检测程序。功能开关S1-S3的闭合和断开会出现如下几种情况:
1)当用水人数很多时,闭合S1,程序循环检测水箱里不同高度的四只常开型干簧管H1-H4的状态。当水位降低到最低位置时,H1闭合,数码管显示“1”,P3.6口输出低电平,三极管导通,继电器线圈得电,常开触点闭合,水泵得电开始抽水;当水位上升到H2的位置时,H2闭合,数码管显示“2”,P3.6口保持低电平,继电器触点保持闭合,水泵继续抽水;当水位上升到H3的位置时,H3闭合,数码管显示“3”,P3.6口保持低电平,继电器触点保持闭合,水泵继续抽水;当水位上升到H4的位置时,H4闭合,数码管显示“4”,P3.6口输出高电平,继电器触点断开,水泵停止抽水。水箱里的水位下降时与上述情况相反。即水位下降在H4与H1之间时,P3.6口输出高电平,水泵不抽水,直到水位下降到H1时,P3.6口才输出低电平,三极管导通,继电器线圈得电,常开触点闭合,水泵得电开始抽水。
2)当用水人数比较多时,闭合S2,程序循环检测水箱里不同高度的三只常开型干簧管H1-H3的状态。与S1闭合时相似,当水位降低到最低位置时,H1闭合,数码管显示“1”,P3.6口输出低电平,水泵得电开始抽水;此后水泵继续抽水,直到水位上升到H3的位置时,H3闭合,数码管显示“3”,P3.6口输出高电平,继电器触点断开,水泵停止抽水。水箱里的水位下降时与上述情况相反。
3)当用水人数比较少时,闭合S3,程序循环检测水箱里不同高度的两只常开型干簧管H1-H2的状态。当水位降低到最低位置时,H1闭合,数码管显示“1”,P3.6口输出低电平,水泵得电开始抽水;当水位上升到H2的位置时,H2闭合,数码管显示“2”,P3.6口输出高电平,水泵停止抽水。水箱里的水位下降时与上述情况相反。
4)当S1,S2,S3中有两个或三个闭合,则属于误操作,数码管显示“E”,P3.6口输出高电平,继电器触点断开,水泵不抽水。
参考程序:#include
sbit H1=P3^0;
sbit H2=P3^1;
sbit H3=P3^2;
sbit H4=P3^3;
sbit S1=P3^4;
sbit S2=P3^5;
sbit S3=P3^7;
sbit shuibeng=P3^6;
void main(void)
{ unsigned char i;
P1=0xff; P3=0xff;
while(1)
{if((S1==0 && S2==0) || (S1==0 && S3==0 )|| (S2==0 && S3==0 ) )
{
shuibeng=1;
P1=0x06;
}
else
{
P1=i;
if(H1==0 && (S1==0 || S2==0 || S3==0))
{shuibeng=0;
i=0xf9;
}
if(H2==0 && (S1==0 || S2==0 || S3==0))
{ i=0xa4;
if(S3==0) shuibeng=1;
}
if(H3==0 && (S1==0 || S2==0 ))
{
i=0xb0;
if(S2==0) shuibeng =1;
} if(H4==0 && S1==0)
{ i=0x99;
shuibeng=1;
} } } }
图1
图2水位传感器
参考文献:
[1]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:高教出版社,2004.
[2]彭伟.单片机C语言程序设计与实训100例[M].北京:电子工业出版社,2009.