资源简介
水位控制系统实时监测水位并显示,手动设置最大最小值,带报警功能。分自动和手动两种模式来实现水箱、水塔内的水位控制。文件包含源代码(简单易懂带详细注解)、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软件界面及安装详解教程
- 下一篇:淘宝牛肉干评论评论数据集
相关资源
- 51单片机mpu6050读取六轴原始数据并L
- C51_温湿度传感器DHT11驱动_LCD1602显示程
- 基于89C51的等精度频率计LCD1602显示基
- 单片机C51-电子钟1 LCD1602显示 上电正常
- 基于51单片机和lcd1602的adc0804测电压电
- MSP430控制LCD1602显示
- adc0808简单的实验用lcd1602显示电压有仿
- DS18B20+lcd1602显示+LED数码管显示
- VHDL LCD1602显示程序
- 基于STC12C5A60S2的DS18B20温度显示工程
- 基于89C51的等精度频率计LCD1602显示1
- 解析GPS数据并用LCD1602显示
- 基于STC12C5616AD单片机的AD采集程序LC
- DS1302实时时钟,LCD1602显示,可调时间
- AD0809驱动 用LCD1602显示采集的模拟电压
- 基于STC15F2K60S2单片机的温湿度+CO2测量
- 89C52单片机通过LCD1602显示任意长度字
- DSP2812的LCD1602显示程序
- STC12C5A60S2内部AD+LCD1602显示
- 基于89c51的等精度频率计lcd1602显示
- 5Kg电子秤程序LCD1602显示
- 51单片机的步进电机控制,lcd1602显示
- LCD1602显示实时温度代码
- lcd1602显示时分秒
- 4×4矩阵键盘键值LCD1602显示汇编语言
- 51单片机驱动K型热电偶数字转换器M
- 51单片机Protues,仿真DS18b20温度传感器
- DS1302 LCD1602显示 protues仿真
- LCD1602显示代码,verilog HDL编写。
- ds1302时钟、温度、LCD1602显示,按键设
评论
共有 条评论