✨哈喽大家好,这里是@每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~
🐱🐉这是51单片机毕业设计100篇系列的第13篇:基于51单片机的智能加湿器
💻项目相关说明:
- 代码量:375行
- 报告字数:3771字
- 含代码、仿真、原理图、报告、器件清单、常见问题(实物、lw可另外定制)
🎈项目分享:见文末!
1、主要功能
该系统由AT89C51/STC89C52单片机+LCD1602显示模块+DHT11湿度传感器模块+继电器等模块构成。适用于智能自动加湿器、湿度保持等相似项目。
可实现功能:
1、LCD1602液晶屏实时显示湿度信息
2、DHT11采集湿度
3、按键可以调节适宜人体湿度的阈值范围,湿度过低会自动打开加湿器,湿度过高会自动打开风扇。
4、液位传感器检测加湿器液位,液位过低时,加湿器关闭,无法加湿(仿真时液位用按键模拟)
5、LED灯实时显示,如当前湿度状态和液位状态。
2、仿真
proteus仿真使用8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)
3、代码
部分代码,仅供参考,注释齐全。
// 1602初始化,请参考1602的资料
void L1602_init(void)
{
enable(0x01);
enable(0x38);// 设置16*2显示,5*7点阵,8位数据接口
enable(0x0c);//开显示
enable(0x06);//读写一字节后地址指针加1
enable(0xd0);
}
//改变液晶中某位的值,如果要让第一行,第五个字符显示"b" ,调用该函数如下 L1602_char(1,5,'b')
void L1602_char(uchar hang,uchar lie,char sign)
{
uchar a;
if(hang == 1) a = 0x80;
if(hang == 2) a = 0xc0;
a = a + lie - 1;
enable(a);
write(sign);
}
//改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下L1602_string(1,5,"ab cd ef;")
void L1602_string(uchar hang,uchar lie,uchar *p)
{
uchar a;
if(hang == 1) a = 0x80;
if(hang == 2) a = 0xc0;
a = a + lie - 1;
enable(a);
while(1)
{
if(*p == '\0') break;
write(*p);
p++;
}
}
4、原理图
使用AD21绘制(不是嘉立创哦
5、参考报告
内含3.7k字,17页相关报告一份,纯手打~
6、常见问题
7、资源获取
扫描如下二维码,回复"51智能加湿器"获取本项目所有文件!
希望可以对你有所帮助~