基于51单片机智能窗帘仿真设计( proteus仿真+程序+设计报告+讲解视频)
基于51单片机智能窗帘仿真设计
- 1. 主要功能:
- 2. 讲解视频:
- 3. 仿真设计
- 4. 程序代码
- 5. 设计报告
- 6. 原理图
- 7. 设计资料内容清单
- 资料下载链接:
仿真图proteus8.9及以上
程序编译器:keil 4/keil 5
编程语言:C语言
设计编号:S0084
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);//开始信号20ms
SDA=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://docs.qq.com/doc/DS1VnVFJLRWFReGZ6