資源簡介
基于51單片機(jī)的水箱/水塔水位檢測系統(tǒng)。分為自動和手動兩種模式,手動模式可以通過按鍵實(shí)現(xiàn)水泵抽水,自動模式可以通過按鍵設(shè)置最高水位和最低水位,當(dāng)前水位高于最高水位時(shí)候會報(bào)警提示,低于最低水位時(shí)會啟動水泵抽水。當(dāng)前水位通過水位傳感器檢測并由數(shù)碼管顯示。內(nèi)含電路圖、程序源碼帶詳細(xì)注解、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()
*?功能?:?延時(shí)1ms函數(shù)
*?輸入?:?q
*?輸出?:?無
***********************************************************************/
void?delay_ms(uint?q)
{
uint?ij;
for(i=0;i for(j=0;j<110;j++);
}
/***********************************************************************************************************
按鍵檢測相關(guān)函數(shù)
***********************************************************************************************************/
//按鍵
sbit?Key1=P1^4; ?
sbit?Key2=P1^5; ?
#define?KEY_SET? 1
#define?KEY_ADD 2
//========================================================================
//?函數(shù):?u8?Key_Scan()
//?應(yīng)用:?temp=u8?Key_Scan();
//?描述:?按鍵掃描并返回按下的鍵值
//?參數(shù):?NONE
//?返回:?按下的鍵值
//?版本:?VER1.0
//?日期:?2015-05-29
//?備注:?該函數(shù)帶松手檢測按下鍵返回一次鍵值后返回0直至第二次按鍵按下
//========================================================================
u8?Key_Scan()
{ ?
static?u8?key_up=1;//按鍵按松開標(biāo)志
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; ? //
?/**********主函數(shù)******************/
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];
}
} ?
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????5593??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測
?????文件???????3180??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.c
?????文件???????1377??2018-10-30?00:22??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.hex
?????文件?????????48??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.lnp
?????文件???????6663??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.LST
?????文件???????7931??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.M51
?????文件???????5972??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.OBJ
?????文件???????1400??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.plg
?????文件??????71996??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.uvgui.Zhang?Liqiang
?????文件??????72015??2018-10-30?00:21??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.uvgui_Zhang?Liqiang.bak
?????文件???????5051??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.uvopt
?????文件??????13430??2018-10-30?00:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋\水位檢測.uvproj
?????文件?????184185??2018-12-16?22:38??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\proteus仿真\Last?Loaded?仿真圖.DBK
?????文件?????189247??2018-12-23?00:36??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\proteus仿真\仿真圖.DSN
?????文件????????742??2019-05-24?16:17??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\proteus仿真\仿真圖.PWI
?????文件???????1377??2018-10-30?00:22??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\proteus仿真\水位檢測.hex
?????文件??????57257??2018-11-01?22:23??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖\Copy?of?硬件電路.sch
?????文件?????576605??2018-11-01?22:23??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖\word版.docx
?????文件??????60309??2019-10-23?12:40??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖\__Previews\Copy?of?硬件電路.schPreview
?????文件??????61265??2019-10-23?12:40??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖\__Previews\硬件電路.SchDocPreview
?????文件?????303669??2018-11-01?22:23??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖\硬件電路.pdf
?????文件?????253440??2018-11-01?22:22??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖\硬件電路.SchDoc
?????文件????????304??2016-03-05?13:08??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖\說明.txt
?????文件????1324461??2018-11-01?23:24??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\實(shí)物圖(傳感器看不清的淘寶上找)\IMG_20181031_145637_副本_副本.jpg
?????文件?????941625??2018-11-01?23:25??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\實(shí)物圖(傳感器看不清的淘寶上找)\IMG_20181031_145811_副本_副本.jpg
????...D.H.?????????0??2019-10-23?12:42??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖\__Previews
?????目錄??????????0??2019-10-23?12:44??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\c程序+注釋
?????目錄??????????0??2019-10-23?12:43??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\proteus仿真
?????目錄??????????0??2019-10-23?12:42??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\原理圖
?????目錄??????????0??2019-10-23?12:46??基于51單片機(jī)的水箱、水塔水位檢測系統(tǒng)(數(shù)碼管顯示)\實(shí)物圖(傳感器看不清的淘寶上找)
............此處省略4個(gè)文件信息
評論
共有 條評論