资源简介

基于51单片机的水箱/水塔水位检测系统。分为自动和手动两种模式,手动模式可以通过按键实现水泵抽水,自动模式可以通过按键设置最高水位和最低水位,当前水位高于最高水位时候会报警提示,低于最低水位时会启动水泵抽水。当前水位通过水位传感器检测并由数码管显示。内含电路图、程序源码带详细注解、proteus仿真文件。

资源截图

代码片段和文件信息

#include
#include 
/*****************宏定义******************/
#define uint unsigned int
#define uchar unsigned char
#define u8 unsigned char
/***********位操作端口定义**************/

sbit speak=P0^4;   //   蜂鸣器
sbit JK2=P1^6;  //   水位继电器

sbit led3=P0^2;   //3/4水位指示灯
sbit led2=P0^1;   //1/2水位指示灯
sbit led1=P0^0;  //1/4水位指示灯

sbit SW041=P1^0; //1/4水位
sbit SW021=P1^1; //1/2水位
sbit SW043=P1^2; //3/4水位
sbit SW01=P1^3; //满水位
uchar bianma[]={0xc00xf60xa10xa40x96};
/********************************************************************
* 名称 : delay_1ms()
* 功能 : 延时1ms函数
* 输入 : q
* 输出 : 无
***********************************************************************/
void delay_ms(uint q)
{
uint ij;
for(i=0;i for(j=0;j<110;j++);
}


/***********************************************************************************************************
按键检测相关函数
***********************************************************************************************************/
//按键
sbit Key1=P1^4;  
sbit Key2=P1^5;  

#define KEY_SET  1
#define KEY_ADD 2


//========================================================================
// 函数: u8 Key_Scan()
// 应用: temp=u8 Key_Scan();
// 描述: 按键扫描并返回按下的键值
// 参数: NONE
// 返回: 按下的键值
// 版本: VER1.0
// 日期: 2015-05-29
// 备注: 该函数带松手检测按下键返回一次键值后返回0直至第二次按键按下
//========================================================================
u8 Key_Scan()
{  
static u8 key_up=1;//按键按松开标志
if(key_up&&(Key1==0||Key2==0))
{
delay_ms(10);//去抖动 
key_up=0;
if(Key1==0) return 1;
else if(Key2==0)return 2;
}
else if(Key1==1&&Key2==1)
key_up=1;      
  return 0;// 无按键按下
}


uchar Mode=0;   //

 /**********主函数******************/
void main()
{
u8 j=0;
u8 key;
u8 sd=0;
while(1)
{
key=Key_Scan(); //按键扫描
if(key==KEY_SET)
{
sd=1;
}
if(key==KEY_ADD)
{
sd=0;
}
if(Mode)
{
if(sd==1)
JK2=0;
if(sd==0)
JK2=1;
}
 
 if((SW01==1)&&(SW043==1)&&(SW021==1)&&(SW041==1)) //0水位 指示 启动水泵加水
 {
led1=0; 
led2=1; 
led3=1; 
JK2=0;
j++;
if(j<100)
{
speak=1;
}
else if(j<200)
{
speak=0;
} //
else j=0;
Mode=0;//禁止手动浇水
P2=bianma[0]; 
delay_ms(3);
}

if((SW01==1)&&(SW043==1)&&(SW021==1)&&(SW041==0)) //1/4水位指示
 {
led1=1; 
speak=1;
led2=0; 
led3=1; 
Mode=1;//允许手动浇水

P2=bianma[1]; 
}
if((SW01==1)&&(SW043==1)&&(SW021==0)&&(SW041==0))  //1/2水位指示
 {
led1=1; 
speak=1;
led2=0; 
led3=1; 
Mode=1;//允许手动浇水
P2=bianma[2]; 
}
if((SW01==1)&&(SW043==0)&&(SW021==0)&&(SW041==0)) //3/4水位指示
 {
led1=1; 
speak=1;
led2=0; 
led3=1; 
Mode=1;//允许手动浇水
P2=bianma[3]; 
}
if((SW01==0)&&(SW043==0)&&(SW021==0)&&(SW041==0)) //如果水满了 指示灯指示 停止加水
 {
led1=1; 
speak=1;
led2=1; 
led3=0; 
Mode=0;//禁止手动浇水
JK2=1; 
P2=bianma[4];
}
}  

}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5593  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测

     文件       3180  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.c

     文件       1377  2018-10-30 00:22  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.hex

     文件         48  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.lnp

     文件       6663  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.LST

     文件       7931  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.M51

     文件       5972  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.OBJ

     文件       1400  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.plg

     文件      71996  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.uvgui.Zhang Liqiang

     文件      72015  2018-10-30 00:21  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.uvgui_Zhang Liqiang.bak

     文件       5051  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.uvopt

     文件      13430  2018-10-30 00:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释\水位检测.uvproj

     文件     184185  2018-12-16 22:38  基于51单片机的水箱、水塔水位检测系统(数码管显示)\proteus仿真\Last Loaded 仿真图.DBK

     文件     189247  2018-12-23 00:36  基于51单片机的水箱、水塔水位检测系统(数码管显示)\proteus仿真\仿真图.DSN

     文件        742  2019-05-24 16:17  基于51单片机的水箱、水塔水位检测系统(数码管显示)\proteus仿真\仿真图.PWI

     文件       1377  2018-10-30 00:22  基于51单片机的水箱、水塔水位检测系统(数码管显示)\proteus仿真\水位检测.hex

     文件      57257  2018-11-01 22:23  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图\Copy of 硬件电路.sch

     文件     576605  2018-11-01 22:23  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图\word版.docx

     文件      60309  2019-10-23 12:40  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图\__Previews\Copy of 硬件电路.schPreview

     文件      61265  2019-10-23 12:40  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图\__Previews\硬件电路.SchDocPreview

     文件     303669  2018-11-01 22:23  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图\硬件电路.pdf

     文件     253440  2018-11-01 22:22  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图\硬件电路.SchDoc

     文件        304  2016-03-05 13:08  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图\说明.txt

     文件    1324461  2018-11-01 23:24  基于51单片机的水箱、水塔水位检测系统(数码管显示)\实物图(传感器看不清的淘宝上找)\IMG_20181031_145637_副本_副本.jpg

     文件     941625  2018-11-01 23:25  基于51单片机的水箱、水塔水位检测系统(数码管显示)\实物图(传感器看不清的淘宝上找)\IMG_20181031_145811_副本_副本.jpg

    ...D.H.         0  2019-10-23 12:42  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图\__Previews

     目录          0  2019-10-23 12:44  基于51单片机的水箱、水塔水位检测系统(数码管显示)\c程序+注释

     目录          0  2019-10-23 12:43  基于51单片机的水箱、水塔水位检测系统(数码管显示)\proteus仿真

     目录          0  2019-10-23 12:42  基于51单片机的水箱、水塔水位检测系统(数码管显示)\原理图

     目录          0  2019-10-23 12:46  基于51单片机的水箱、水塔水位检测系统(数码管显示)\实物图(传感器看不清的淘宝上找)

............此处省略4个文件信息

评论

共有 条评论