✨哈喽大家好,这里是@每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~
🐱🐉这是51单片机毕业设计100篇系列的第35篇:基于51单片机的水位检测系统
💻项目相关说明:
- 代码量:322行
- 报告字数:5015字
- 含代码、仿真、原理图、报告、器件清单、常见问题(实物、lw可另外定制)
🎈项目分享:见文末!
1、主要功能
该系统由AT89C51/STC89C52单片机+LCD1602显示模块+水位传感器+继电器+LED、按键和蜂鸣器等模块构成。适用于水位监测、水位控制、水位检测相似项目。
可实现功能:
1、LCD1602实时显示水位高度
2、水位传感器采集水位高度
3、按键可设置水位的下限
4、按键可手动加水
5、当水位传感器检测到水位过低时,声光报警,同时水泵继电器自动闭合进行加水
2、仿真
proteus仿真使用8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)
3、代码
部分代码,仅供参考,注释齐全。
//-----------------------------------------------------------------
// 头文件包含
//-----------------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
//-----------------------------------------------------------------
// 数据类型宏定义
//-----------------------------------------------------------------
#define uchar unsigned char
#define uint unsigned int
//-----------------------------------------------------------------
// 定义LCD使用的IO口
//-----------------------------------------------------------------
sbit rs=P2^2; //寄存器选择端口
sbit rw=P2^1; //读写选择端口
sbit ep=P2^0; //使能信号端口
//-----------------------------------------------------------------
// 定义按键和蜂鸣器使用的IO口
//-----------------------------------------------------------------
sbit KEY1=P1^0; //手动设置按键设置
sbit KEY2=P1^1; //手动增加按键设置
sbit KEY3=P1^2; //手动减少按键设置
sbit KEY4=P1^3; //手动加水按键设置
sbit KEY5=P1^4; //手动停止加水按键设置
sbit LED1=P1^5; //led报警设置
sbit BUZZER=P1^6; //蜂鸣器设置
sbit WATER=P1^7; //加水继电器控制
//-----------------------------------------------------------------
// 定义ADC0832数据口
//-----------------------------------------------------------------
sbit cs = P3^2;//片选使能,低电平有效
sbit clk = P3^3;//芯片时钟输入
sbit dio = P3^4;//数据输入DI与输出DO
int Threshold[] = {20};//临界值初始化设置,水位下限
uint water_value;//水位数值
uchar flag=0;//手动模式标志位
4、原理图
使用AD21绘制(不是嘉立创哦
5、参考报告
内含5k字,16页相关报告一份,纯手打~
6、演示视频
含51s的演示视频,将该项目的功能都展示了一遍,如果还有不清楚的地方,欢迎后台私聊!
7、常见问题
8、资源获取
扫描如下二维码,回复"51水位检测"获取本项目所有文件!
希望可以对你有所帮助~