资源简介
基于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个文件信息
相关资源
- 基于51单片机的数字电压表.rar
- 汇编程序测控51单片机超声波测距16
- 多波形发生器设计
- 51单片机课程设计及报告
- LED点阵广告牌课程设计C51单片机含报
- COMP51编译器
- 基于51单片机的指南针
- 51单片机太阳追踪系统
- 多功能小车 51单片机控制 超声测距
- AT89C51单片机程序以及原理图
- 51单片机初级实验篇
- 51单片机时钟电路LCD1602显示完整源码
- 基于51单片机的光控模块 含原理图、
- HOT51单片机开发板详尽资料
- 基于AT89C51单片机的水位检测计的设计
- 51单片机应用从零开始[课件]
- 51单片机与PC串口通信的protues仿真的工
- 51单片机最齐全的辅助开发工具.rar
- 基于单片机的温度和门铃系统课程设
- 51单片机大量源码.zip
- 51单片机100例 汇编
- 045 密码锁 51单片机 proteus仿真 电子密
- 基于51单片机控制RC522的设计
- 基于51单片机的智能光控路灯
- 51单片机100个例程加仿真图
- 51单片机实现TB6560步进电机驱动的原理
- 51单片机通过DS1302进行时钟显示,并在
- 51单片机开发板全套资料
- BPC中国电波钟解码程序基于51单片机
- 51单片机设计的篮球计分器
评论
共有 条评论