基于51单片机智能窗帘仿真设计
基于51单片机智能窗帘仿真设计( proteus仿真+程序+设计报告+讲解视频)
1. 主要功能:
基于51单片机的智能窗帘控制器proteus仿真
1、系统分为自动模式和手动模式,通过按键切换模式;
2、自动模式下检测光照和温度,如果温度高于25则打开窗帘通风;
3、电机顺时针转动是正转开窗帘,逆时针转动是反转关窗帘;
4、温度低于25则根据光线判断,如果光线强度低于30打开窗帘,光线强度高于60关闭窗帘;
5、手动模式下通过2个按键控制窗帘开启和关闭;
6、设置一个停止键,用于停止窗帘动作;
需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
以下为本设计资料展示图:
2. 讲解视频:
讲解视频包含仿真运行讲解和代码讲解
3. 仿真设计
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602显示温湿度和光照强度。
开机默认是自动模式,自动模式指示灯点亮。可以通过按键切换自动/手动模式。手动模式下可以通过按键切换开/关窗帘。
如果光照强度大于阈值,说明自然光足够亮,不需要开窗帘。当光线强度超过60lux时,窗帘关闭以保持室内适宜亮度;当光线强度低于30(假设单位为lux)时,窗帘自动开启以便充分利用自然光照明。
4. 程序代码
使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。
温湿度模块代码
#include "DHT11.h" unsigned char dht11_dat[5];//湿度高低+温度高低+和校验void delay1ms(unsigned int i) //延时函数
{
unsigned char j; while(i--){for(j=0;j<110;j++);}
}void dht11_recive()//接收
{
unsigned char j,k,m;
unsigned int i;SDA=0;delay1ms(30);//开始信号20msSDA=1;for(i=0;i<1000;i++)//等待响应{if(!SDA)break;}if(i==1000){ SDA=1;return;//如果没有响应,返回}for(i=0;i<1000;i++)//等待响应结束{if(SDA)break;}if(i==1000){SDA=1;return;//如果响应超时,返回}for(i=0;i<1000;i++)//等待开始{if(!SDA)break;}if(i==1000){ SDA=1;return;//如果没有响应,返回}
for(k=0;k<5;k++) //接收5个数据{for(j=0;j<8;j++)//接收8位{ m<<=1;//===========================for(i=0;i<1000;i++)//等待0信号结束{if(SDA)break;}if(i==1000){ SDA=1;return;//如果超时,返回}//===========================for(i=0;i<1000;i++)//等待开始信号{if(!SDA)break;}if(i==1000){SDA=1;return;//如果超时,返回}if(i<5)m++;}dht11_dat[k]=~m;}delay1ms(1);
}
mian.c代码
#include<reg51.h>
#include "DHT11.h"
#include "lcd1602.h"
#include "ADC0832.h"
完整代码见文章后面下载链接
sbit AA=P1^0;//电机
sbit BB=P1^1;
sbit CC=P1^2;
sbit DD=P1^3;
sbit test=P3^6;
sbit k1=P3^0;//切换
sbit k2=P3^1;//正转
sbit k3=P3^2;//反转
sbit k4=P3^3;//停止
sbit led=P3^7; //手动模式指示灯
sbit led1=P3^6; //自动模式指示灯
uchar time=0;
uchar wen=0,shi=0,guang=0;//温度湿度光照
uchar xian1[]="wen=00C shi=50%"; //温度湿度显示
uchar xian2[]="light=0000Lux";//光照
uchar mode=0,flag=0;
uchar start=1;//开始
uchar endflag=0;//停止
void delay(uint i)
{while(i--){// key_scan();}
}
//开窗
void open()
{uchar i;for(i=0;i<10;i++){BB=1;delay(1000);//正转AA=0;delay(10000);CC=1;delay(10000);BB=0;delay(10000);DD=1;delay(10000);CC=0;delay(10000);AA=1;delay(10000);DD=0;delay(10000);if(!k4)break;}flag=1;
}
//关窗
void close()
{uchar i;for(i=0;i<10;i++){DD=1;delay(10000);//反转AA=0;delay(10000);CC=1;delay(10000);DD=0;delay(10000);BB=1;delay(10000);CC=0;delay(10000);AA=1;delay(10000);BB=0;delay(10000);if(!k4)break;}flag=0;
}
//主函数
void main()
{TMOD|=0X01;//定时器设置TH0=0X3C;TL0=0XB0; ET0=1;EA=1;TR0=1;init_1602();AA=1;BB=0;CC=0;DD=0;if(mode) //点亮模式指示LED{led=0;}else {led1=0;}while(1){if(!k1)//模式切换{delay(1000);//防抖if(!k1){mode=!mode;if(mode) //点亮LED{led=0;led1=1;}else{led=1;led1=0;}start=1;while(!k1);}}if(start)//启动检测{if(mode==0)//自动模式{if(wen<25)//温度小于25{if((guang<30)&&(flag==0)){open();//开窗}if((guang>60)&&(flag==1)){close();//关窗}}else//温度高于25,正转{//正转if(flag==0)open();}}else //手动模式{if(!k3){//反转close();}if(!k2){ //正转open();} }}}
}
void Timer0() interrupt 1
{ if(time<10)time++;else{time=0;dht11_recive();//读取温湿度.wen=dht11_dat[2];shi=dht11_dat[0];guang=ADC();//读取光照xian1[4]=wen/10+0x30;xian1[5]=wen%10+0x30;xian1[13]=shi/10+0x30;xian1[14]=shi%10+0x30;xian2[7]=guang/100+0x30;xian2[8]=guang%100/10+0x30;xian2[9]=guang%10+0x30;write_string(1,0,xian1);//显示write_string(2,0,xian2);}TH0=0X3C;TL0=0XB0;
}
5. 设计报告
8104字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试等
随着现代科技的飞速进步和物联网技术的广泛应用,智能家居已经成为未来生活的重要趋势之一。在这一背景下,智能窗帘作为智能家居系统中的关键一环,不仅极大地提升了家居生活的便捷性和舒适度,而且对于实现节能环保、优化室内环境品质具有不可忽视的意义。智能窗帘可以根据外界环境的变化自动调节开闭状态,有效控制室内光照强度和温度,从而降低空调和照明设备的能耗,营造出更为宜人的居住环境。
本课程设计项目正是针对这一领域的需求,以51系列单片机为核心控制器,借助功能强大的Proteus仿真平台进行设计与模拟实现。我们计划开发一款具备双模式切换功能的智能窗帘控制系统,该系统能够灵活地在自动模式和手动模式之间切换,以适应用户在不同场景下的使用需求。
6. 原理图
AD格式原理图。
7. 设计资料内容清单&&下载链接
资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读!!!!
1、程序
2、proteus仿真
3、功能要求
4、软硬件流程图
5、开题报告
6、设计报告
7、原理图
8、讲解视频
Altium Designer 安装破解
KEIL+proteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url
资料下载链接:
链接:https://pan.baidu.com/s/1iwRTCoFf0TLfMZRgMbOGmw?pwd=yssk
提取码:yssk