• 大小: 30KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-09-13
  • 语言: 其他
  • 标签:

资源简介

智能水位控制系统,高水位抽水,低水位进水,同时伴随警报系统,高报警与低报警跟随,水位档位可以通过数码管显示1-4之间。

资源截图

代码片段和文件信息

//水位0报警,加营养液	水位1,低水位,加营养液		水位2正常水位,无需动作
//水位3高水位3高水位,抽水 水位4,警戒位,抽水 p1.3接继电器3 p1.4接继电器4
#include    //52系列头文件
#include 
#define uchar unsigned char    //宏定义uchar
#define uint  unsigned int  //宏定义uint
uchar flagwei;
sbit D=P2^0;
sbit C=P2^1;
sbit b=P2^2;
sbit A=P2^3;
sbit led1=P1^0;    //低水位指示灯
sbit led2=P1^1;    //正常水位指示灯
sbit led3=P1^2;    //高水位指示灯
//sbit jdq=P1^4;    //继电器控制IO口
sbit beep=P3^4;    //蜂鸣器控制IO口
sbit jdq1=P1^3;    //继电器控制IO口水位低加水。3停止
sbit jdq2=P1^4;    //继电器控制IO口水位高降水.3停止
uchar code table[]=
 {
  0xc00xf90xa40xb00x99
  0x920x820xf80x800x90
  }; //共阳数码管段码表 没有小数点 0~9

void delay(uchar z)   //延时函数
{
  uchar ab;
  for(a=z;a>0;a--)
   for(b=110;b>0;b--);
}
void didi()   //滴滴声音
{
 beep=0;   //蜂鸣器响
 delay(100);   //延时
 beep=1; //蜂鸣器关
 delay(100); //延时
}
void  shuiwei() //水位检测部分
{
 if(A==1&&b==1&&C==1&&D==1)   //ABCD都为高电平 水位为4
 {
  wei=4;
  jdq1=1;          //低水位停止加水
  jdq2=0;           //高水位抽水
 
 }
 if(A==0&&b==1&&C==1&&D==1)
 {
  wei=3;
  jdq1=1;          //低水位停止加水
  jdq2=0;           //高水位抽水
 }
 if(A==0&&b==0&&C==1&&D==1)
 {
  wei=2;
  jdq1=1;          //低水位停止加水
  jdq2=1;           //高水位停止抽水
 }
 if(A==0&&b==0&&C==0&&D==1)
 {
  wei=1;
  jdq1=0;          //低水位加水
  jdq2=1;           //高水位停止抽水
 
 }
 if(A==0&&b==0&&C==0&&D==0)
 {
  wei=0;
  jdq1=0;          //低水位加水
  jdq2=1;           //高水位停止抽水
  
 }
}
void kongzhi()
{
   if(wei<1)   //当前水位显示1
   {

led1=0;    //低水位灯亮
    led2=1;    //正常水位灯不亮
    led3=1;    //高水位灯不亮
flag=0;    //准备进入上升状态
    didi();    //滴滴报警

   }

   if((flag==0)&&(wei>=1)&&(wei<4))  //水位 正常   水位上升状态
   {

led1=1;    //低电平指示灯灭
    led2=0;    //正常水位灯亮
    led3=1;    //高水位灯灭
    beep=1;    //蜂鸣器不报警
   }
   if((flag==1)&&(wei>=1)&&(wei<4))   //水位 正常   水位下降状态
   {

led1=1; //低水位灯灭
    led2=0;  //正常水位指示灯亮
    led3=1;  //高水位指示灯灭
    beep=1;   //蜂鸣器不报警
   }  
   if(wei>=4)  //水位超限
   {

    flag=1;  //准备进入下降状态
led1=1;   //低水位指示灯灭
    led2=1;   //正常水位指示灯灭
    led3=0;   //高水位指示灯亮
didi();    //报警
   }
  

}

void main() //主函数
{
 
  while(1)
  {
   shuiwei();  //水位监测部分
   kongzhi();  //控制
   P0=table[wei];   //对应数码管显示
   
  }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-09-09 09:13  水位程序\
     目录           0  2017-09-09 09:13  水位程序\程序  keil软件打开\
     文件        6376  2009-05-07 14:37  水位程序\程序  keil软件打开\STARTUP.A51
     文件       14050  2016-10-02 23:35  水位程序\程序  keil软件打开\STARTUP.LST
     文件         749  2016-10-02 23:35  水位程序\程序  keil软件打开\STARTUP.OBJ
     文件        5233  2016-10-02 23:36  水位程序\程序  keil软件打开\main
     文件        5953  2016-10-02 23:36  水位程序\程序  keil软件打开\main.LST
     文件        8579  2016-10-02 23:36  水位程序\程序  keil软件打开\main.M51
     文件        5219  2016-10-02 23:36  水位程序\程序  keil软件打开\main.OBJ
     文件        2684  2016-10-02 23:45  水位程序\程序  keil软件打开\main.c
     文件         770  2016-10-02 23:36  水位程序\程序  keil软件打开\main.hex
     文件          56  2016-10-02 23:36  水位程序\程序  keil软件打开\main.lnp
     文件         184  2017-03-08 21:40  水位程序\程序  keil软件打开\main.plg
     文件       70642  2017-03-24 13:41  水位程序\程序  keil软件打开\main.uvgui.Administrator
     文件        5991  2017-03-24 13:41  水位程序\程序  keil软件打开\main.uvopt
     文件       13943  2017-03-24 13:41  水位程序\程序  keil软件打开\main.uvproj
     文件       56192  2016-10-02 23:45  水位程序\程序  keil软件打开\main_uvopt.bak
     文件           0  2014-09-19 15:48  水位程序\程序  keil软件打开\main_uvproj.bak

评论

共有 条评论

相关资源