资源简介

水位控制系统实时监测水位并显示,手动设置最大最小值,带报警功能。分自动和手动两种模式来实现水箱、水塔内的水位控制。文件包含源代码(简单易懂带详细注解)、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个文件信息

评论

共有 条评论