✨哈喽大家好,这里是@每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~
🐱🐉这是51单片机毕业设计100篇系列的第42篇:基于51单片机的智能衣柜
💻项目相关说明:
- 代码量:669行
- 报告字数:6937字
- 含代码、仿真、原理图、报告、器件清单、常见问题(实物、lw可另外定制)
🎈项目分享:见文末!
1、主要功能
该系统由AT89C51/STC89C52单片机+LCD1602显示模块+光照传感器+时钟模块+温湿度传感器+继电器+按键、LED等模块构成。适用于智能衣柜、智能衣橱、紫外线定时消毒等相似项目。
可实现功能:
1、LCD1602实时显示北京时间、温湿度和开关门状态
2、时钟模块DS1302采集时间
3、光照传感器采集光照强度信息,如果打开衣柜的时候光照强度较低,则自动打开柜内照明灯
4、温湿度传感器DHT11采集柜内温湿度信息,如果湿度过高,则自动闭合除湿继电器,开始除湿
5、按键可设置消毒时间
6、按键开关衣柜门
2、仿真
proteus仿真使用8.10版本,由于该软件版本迭代原因,不能确保其他版本软件能够正常运行,请安装好对应软件(版本一致或者高于这个版本都可以)

消毒时间可设置:

3、代码
部分代码,仅供参考,注释齐全。
objectivec
/*******************************************************************************
* 函 数 名 : Ds1302Write
* 函数功能 : 向DS1302命令(地址+数据)
* 输 入 : addr,dat
* 输 出 : 无
*******************************************************************************/
void Ds1302Write(uchar addr, uchar dat)
{
uchar n;
RST = 0;
_nop_();
SCLK = 0;//先将SCLK置低电平。
_nop_();
RST = 1; //然后将RST(CE)置高电平。
_nop_();
for (n=0; n<8; n++)//开始传送八位地址命令
{
DSIO = addr & 0x01;//数据从低位开始传送
addr >>= 1;
SCLK = 1;//数据在上升沿时,DS1302读取数据
_nop_();
SCLK = 0;
_nop_();
}
for (n=0; n<8; n++)//写入8位数据
{
DSIO = dat & 0x01;
dat >>= 1;
SCLK = 1;//数据在上升沿时,DS1302读取数据
_nop_();
SCLK = 0;
_nop_();
}
RST = 0;//传送数据结束
_nop_();
}
/*******************************************************************************
* 函 数 名 : Ds1302Read
* 函数功能 : 读取一个地址的数据
* 输 入 : addr
* 输 出 : dat
*******************************************************************************/
uchar Ds1302Read(uchar addr)
{
uchar n,dat,dat1;
RST = 0;
_nop_();
SCLK = 0;//先将SCLK置低电平。
_nop_();
RST = 1;//然后将RST(CE)置高电平。
_nop_();
for(n=0; n<8; n++)//开始传送八位地址命令
{
DSIO = addr & 0x01;//数据从低位开始传送
addr >>= 1;
SCLK = 1;//数据在上升沿时,DS1302读取数据
_nop_();
SCLK = 0;//DS1302下降沿时,放置数据
_nop_();
}
_nop_();
for(n=0; n<8; n++)//读取8位数据
{
dat1 = DSIO;//从最低位开始接收
dat = (dat>>1) | (dat1<<7);
SCLK = 1;
_nop_();
SCLK = 0;//DS1302下降沿时,放置数据
_nop_();
}
RST = 0;
_nop_(); //以下为DS1302复位的稳定时间,必须的。
SCLK = 1;
_nop_();
DSIO = 0;
_nop_();
DSIO = 1;
_nop_();
return dat;
}
4、原理图
使用AD21绘制(不是嘉立创哦

5、参考报告
内含6.9k字,27页相关报告一份,纯手打~

6、演示视频
含1min11s的演示视频,将该项目的功能都展示了一遍,如果还有不清楚的地方,欢迎后台私聊!

7、常见问题


8、资源获取

扫描如下二维码,回复**"51智能衣柜"**获取本项目所有文件!
希望可以对你有所帮助~