加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

基于51单片机智能窗帘仿真设计( proteus仿真+程序+设计报告+讲解视频)

2小时前
123
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
  • 方案介绍
    • 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单片机芯片。

img

2. 讲解视频:

讲解视频包含仿真运行讲解和代码讲解

3. 仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602显示温湿度和光照强度

img

开机默认是自动模式,自动模式指示灯点亮。可以通过按键切换自动/手动模式。手动模式下可以通过按键切换开/关窗帘。

imgimg

如果光照强度大于阈值,说明自然光足够亮,不需要开窗帘。当光线强度超过60lux时,窗帘关闭以保持室内适宜亮度;当光线强度低于30(假设单位为lux)时,窗帘自动开启以便充分利用自然光照明。

4. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

img

温湿度模块代码

#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字设计报告,内容包括硬件设计软件设计、软硬件框图、调试等

img

随着现代科技的飞速进步和物联网技术的广泛应用,智能家居已经成为未来生活的重要趋势之一。在这一背景下,智能窗帘作为智能家居系统中的关键一环,不仅极大地提升了家居生活的便捷性和舒适度,而且对于实现节能环保、优化室内环境品质具有不可忽视的意义。智能窗帘可以根据外界环境的变化自动调节开闭状态,有效控制室内光照强度和温度,从而降低空调和照明设备的能耗,营造出更为宜人的居住环境。

本课程设计项目正是针对这一领域的需求,以51系列单片机为核心控制器,借助功能强大的Proteus仿真平台进行设计与模拟实现。我们计划开发一款具备双模式切换功能的智能窗帘控制系统,该系统能够灵活地在自动模式和手动模式之间切换,以适应用户在不同场景下的使用需求。

6. 原理图

AD格式原理图。

img

7. 设计资料内容清单

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

img

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

  • 设计资料获取联系方式.doc

相关推荐

电子产业图谱