資源簡介
水位控制系統實時監測水位并顯示,手動設置最大最小值,帶報警功能。分自動和手動兩種模式來實現水箱、水塔內的水位控制。文件包含源代碼(簡單易懂帶詳細注解)、protues仿真工程。

代碼片段和文件信息
#include ????????//頭文件
#include
#include“eeprom52.h“ ??????//STC89C52?EEPROM???程序文件
#define?uchar?unsigned?char ??//宏定義
#define?uint?unsigned?int
#define?LCD1602_dat?P0 ????????//LCD1602數據口宏定義
//sbit?LCD1602_rs=P2^7; ????????//LCD1602控制數據IO口
//sbit?LCD1602_rw=P2^4;
//sbit?LCD1602_e=P2^6;
sbit?LCD1602_rs=P1^0; ????????//LCD1602控制數據IO口
sbit?LCD1602_rw=P1^1;
sbit?LCD1602_e=P2^5;
sbit?beep=P1^6; ???? //蜂鳴器??IO
sbit?led_1=P3^0; //LED指示燈??IO
sbit?led_2=P3^1;
sbit?key_1=P1^5; //系統控制按鍵IO口
sbit?key_2=P3^3;
sbit?key_3=P3^4;
sbit?alarm_1=P2^5; //控制繼電器IO口
sbit?ADC0832_CS=P1^3; //ADC0832??控制IO口 ??使能口
sbit?ADC0832_CLK=P1^0; //時鐘IO口
sbit?ADC0832_DIO=P1^1; //數據輸入輸出IO口?
uint?sum; ?? //10次AD值的綜合變量
uchar?RHRH_H=12RH_L=8statemscs;??//當前水位,??水位上限,下限,??設置項變量,50ms變量???,cs?為計次數變量????,
bit?beep1zts1; ? ?//報警標志位,???工作模式標志位,???閃爍標志位
?
unsigned?int??A_D() ??? ?//ADC0832???讀值程序
{
uchar?i;
uchar?dat; ?
ADC0832_CS=1;?????//一個轉換周期開始
ADC0832_CLK=0;????//為第一個脈沖作準備
ADC0832_CS=0;?????//CS置0,片選有效
ADC0832_DIO=1;????//DIO置1,規定的起始信號??
ADC0832_CLK=1;????//第一個脈沖
ADC0832_CLK=0;????//第一個脈沖的下降沿,此前DIO必須是高電平
ADC0832_DIO=1;????//DIO置1,?通道選擇信號??
ADC0832_CLK=1;????//第二個脈沖,第2、3個脈沖下沉之前,DI必須跟別輸入兩位數據用于選擇通道,這里選通道RH0?
ADC0832_CLK=0;????//第二個脈沖下降沿?
ADC0832_DIO=0;????//DI置0,選擇通道0
ADC0832_CLK=1;????//第三個脈沖
ADC0832_CLK=0;????//第三個脈沖下降沿?
ADC0832_DIO=1;????//第三個脈沖下沉之后,輸入端DIO失去作用,應置1
ADC0832_CLK=1;????//第四個脈沖
for(i=0;i<8;i++)??//高位在前
{
ADC0832_CLK=1;?????????//第四個脈沖
ADC0832_CLK=0;?
dat<<=1;????????????//將下面儲存的低位數據向右移
dat|=(unsigned?char)ADC0832_DIO;? ?//將輸出數據DIO通過或運算儲存在dat最低位?
} ?? ????????
ADC0832_CS=1;??????????//片選無效?
return?dat; ??????????//將讀出的數據返回
}
/********************************************************************
*?名稱?:?delay()
*?功能?:?小延時。 ?
*?輸入?:?無
*?輸出?:?無
***********************************************************************/
void?delay(uint?T) ??//延時函數
{
while(T--);
}
/********************************************************************
*?名稱?:?LCD1602_write(uchar?orderdat)
*?功能?:?1602寫如數據函數
*?輸入?:?輸入的命令值
*?輸出?:?無
***********************************************************************/
void?LCD1602_write(uchar?orderdat) ??//1602?一個字節??處理
{
????LCD1602_e=0;
????LCD1602_rs=order;
????LCD1602_dat=dat;
????LCD1602_rw=0;
????LCD1602_e=1;
????delay(1);
????LCD1602_e=0; ?????
}
/********************************************************************
*?名稱?:?LCD1602_writebye(uchar?*prointer)
*?功能?:?1602寫入數據函數??指針式
*?輸入?:?輸入的命令值
*?輸出?:?無
***********************************************************************/
void?LCD1602_writebyte(uchar?*prointer) ???//1602?字符串????處理
{
????while(*prointer!=‘\0‘)
????{
????????LCD1602_write(1*prointer);
????????prointer++;
????}
}
/***********************************************************
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9915??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\C51.c
?????文件??????17530??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\C51.LST
?????文件??????19918??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\C51.OBJ
?????文件???????3059??2016-06-12?13:04??基于51單片機的水箱水位檢測系統\01__c程序+注釋\eeprom52.h
?????文件???????6376??2016-06-12?13:04??基于51單片機的水箱水位檢測系統\01__c程序+注釋\STARTUP.A51
?????文件??????14451??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\STARTUP.LST
?????文件????????758??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\STARTUP.OBJ
?????文件??????18587??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警
?????文件???????1037??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.build_log.htm
?????文件???????6632??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.hex
?????文件?????????50??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.lnp
?????文件??????26393??2019-07-13?22:55??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.M51
?????文件????????505??2018-04-18?05:57??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.plg
?????文件??????85653??2019-07-14?00:14??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.uvgui.36564
?????文件??????71986??2018-04-18?05:57??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.uvgui.Zhang?Liqiang
?????文件??????71986??2018-04-18?05:53??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.uvgui_Zhang?Liqiang.bak
?????文件???????5443??2019-05-14?20:08??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.uvopt
?????文件??????14025??2019-07-14?00:14??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警.uvproj
?????文件??????55619??2016-06-12?13:04??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警_uvopt(DESKTOP-Q0LHJSL--yang--2016-05-22-195256).bak
?????文件??????55619??2016-06-12?13:04??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警_uvopt(USER-20160523RL--Administrator--2016-05-24-090619).bak
?????文件??????55619??2016-12-17?21:24??基于51單片機的水箱水位檢測系統\01__c程序+注釋\水位上下限報警_uvopt.bak
?????文件?????200744??2018-04-18?05:52??基于51單片機的水箱水位檢測系統\02__proteus仿真\Last?Loaded?水箱水位檢測.DBK
?????文件??????66652??2018-05-31?01:13??基于51單片機的水箱水位檢測系統\02__proteus仿真\Word?版.docx
?????文件???????6611??2018-04-18?05:57??基于51單片機的水箱水位檢測系統\02__proteus仿真\水位上下限報警.hex
?????文件?????200744??2018-05-30?23:14??基于51單片機的水箱水位檢測系統\02__proteus仿真\水箱水位檢測.DSN
?????文件????????768??2019-05-22?15:01??基于51單片機的水箱水位檢測系統\02__proteus仿真\水箱水位檢測.PWI
?????目錄??????????0??2019-09-03?16:36??基于51單片機的水箱水位檢測系統\01__c程序+注釋
?????目錄??????????0??2019-09-03?16:36??基于51單片機的水箱水位檢測系統\02__proteus仿真
?????目錄??????????0??2019-09-03?16:36??基于51單片機的水箱水位檢測系統
-----------?---------??----------?-----??----
............此處省略2個文件信息
- 上一篇:NBU軟件界面及安裝詳解教程
- 下一篇:淘寶牛肉干評論評論數據集
評論
共有 條評論