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

news2024/11/25 4:21:20

基于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单片机芯片。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1632685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学习周报:文献阅读+Fluent案例+有限体积法理论学习

目录 摘要 Abstract 文献阅读&#xff1a;基于物理信息神经网络的稀疏数据油藏模拟 文献摘要 文章讨论|结论 各方程和原理简介 PINN简介 域分解 实验设置 单相油藏问题 油水两相问题 Fluent实例&#xff1a;Y型弯管中的流体混合分析 几何建模部分 网格划分 求解器设…

举个栗子!Tableau 技巧(272):学做曲线面积图(Sigmoid area charts)

曲线面积图&#xff08;Sigmoid area charts&#xff09;是区域图的一种创新变形&#xff0c;呈现数据随时间变化的情况&#xff0c;也可用于对数据总值趋势的洞察。 如何在 Tableau 中具体实现呢&#xff1f;今天的栗子&#xff0c;一睹为快吧&#xff01; 本期《举个栗子》…

相关运算及实现

本文介绍相关运算及实现。 相关运算在相关检测及数字锁相放大中经常用到&#xff0c;其与卷积运算又有一定的联系&#xff0c;本文简要介绍其基本运算及与卷积运算的联系&#xff0c;并给出实现。 1.定义 这里以长度为N的离散时间序列x(n),y(n)为例&#xff0c;相关运算定义如…

2024 年 6 款最佳高清屏幕录像机,用于录制和共享

为了获得令人惊叹和详细的视频&#xff0c;一个优秀的高清屏幕 录像机是必不可少的。高清录像机广泛用于录制研讨会、会议、培训课程&#xff0c;甚至视频游戏。顶屏摄像头通常包含视频编辑、动画和 4K 录制等尖端功能和高端效果。 市场上有大量适用于 Windows 和 Mac 的屏幕录…

冯喜运:4.29黄金原油多空争夺,今日操作建议走势分析

【黄金消息面分析】&#xff1a;周一&#xff08;4月29日&#xff09;亚市早盘&#xff0c;现货黄金窄幅震荡&#xff0c;目前交投于2328美元/盎司。金价上周五反弹受阻&#xff0c;收报2337.36美元/盎司&#xff0c;此前数据显示美国物价升幅符合预期&#xff1b;随着中东危机…

认识及创建线程(Thread)

1 概念 1.1线程是什么 线程是CPU调度的基本单位&#xff0c;它是在进程内部运行的执行流&#xff0c;线程比进程粒度更细&#xff0c;调度成本更低 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多…

git 命令怎么回退到指定的某个提交 commit hash 并推送远程分支?

问题 如下图&#xff0c;我要回退到 【002】Babel 的编译流程 这一次提交 解决 1、先执行下面命令&#xff0c;输出日志&#xff0c;主要就是拿到提交 commit 的 hash&#xff0c;上图红框即可 git log或者 vscode 里面直接右击&#xff0c;copy sha 2、执行下面命令回退 g…

AOMEI Partition Assistant傲梅分区助手技术员版:专业级的硬盘分区利器

在数字化时代&#xff0c;数据存储和管理变得愈发重要。对于电脑技术员而言&#xff0c;一款功能强大、操作简便的分区工具无疑是提高工作效率的得力助手。而傲梅分区助手技术员版&#xff08;AOMEI Partition Assistant&#xff09;正是这样一款备受赞誉的专业级硬盘分区软件。…

9种单片机常用的软件架构

长文预警&#xff0c;加代码5000多字&#xff0c;写了4个多小时&#xff0c;盘软件架构&#xff0c;这篇文章就够了! 可能很多工程师&#xff0c;工作了很多年&#xff0c;都不会有软件架构的概念。 因为我在做研发工程师的第6年&#xff0c;才开始意识到这个东西&#xff0c;在…

【Linux】对信号产生的内核级理解

一、键盘产生信号 键盘产生信号这里就要涉及一个重要的概念了&#xff0c;叫硬件中断。我这里会粗粒度地说一下键盘产生信号&#xff0c;以及信号被上层软件读到的过程&#xff0c;只是说一下我自己的理解。 1.1、硬件中断 硬件中断是计算机中的一种机制&#xff0c;它允许硬件…

Python 自定义日志输出

Python 有着内置的日志输出模块&#xff1a;logging 使用也很方便&#xff0c;但我们今天不说这个&#xff0c;我们用文件读写模块&#xff0c;实现自己的日志输出模块&#xff1b;这样在项目中&#xff0c;可以存在更高的自由度及更高的扩展性&#xff1b; 先来看看日志输出…

道路积水检查与报警

文章目录 模型训练积水图像数据集yolo训练流程 图像采集图像预处理模型训练参数设置积水检测与分类数据存储界面制作 模型训练 积水图像数据集 收集积水图像&#xff0c;制作数据集。每张图像对应的标注信息&#xff0c;通常包括目标的类别、边界框坐标等。标注数据可以通过标…

SAP的生成式AI

这是一篇openSAP中关于SAP生成式AI课程的笔记&#xff0c;原地址https://open.sap.com/courses/genai1/ 文章目录 Unit 1: Approaches to artificial intelligence概念三种范式监督学习非监督学习强化学习 Unit 2: Introduction to generative AI生成式AI基础模型关系基础模型有…

软件物料清单(SBOM)生成指南 .pdf

如今软件安全攻击技术手段不断升级&#xff0c;攻击数量显著增长。尤其是针对软件供应链的安全攻击&#xff0c;具有高隐秘性、追溯难的特点&#xff0c;对企业软件安全威胁极大。 同时&#xff0c;软件本身也在不断地更新迭代&#xff0c;软件内部成分安全性在持续变化浮动。…

报错:测试报错postman(测试接口)

报错如下 c.e.exception.GlobalExceptionHandler : 异常信息&#xff1a; Content type multipart/form-data;boundary--------------------------952399813172082093419475;charsetUTF-8 not supported 解决&#xff1a; 异常信息 Content type multipart/form-data;boundary…

STM32使用PWM控制舵机

系列文章目录 STM32单片机系列专栏 C语言术语和结构总结专栏 文章目录 1. 舵机简介 2. 硬件连接 3. 代码实现 3.1 PWM.c 3.2 PWM.h 3.3 Servo.c 3.4 Servo.h 3.5 main.c 3.6 完整工程文件 PWM和OC输出详解&#xff1a; STM32定时器的OC比较和PWM​​​​​​​ 1. …

树莓派学习笔记--树莓派终端基本操作与系统备份(全卡备份,压缩备份)

树莓派终端基本操作 sudo su #切换为超级用户身份 su lyh #切换回普通用户lyh&#xff08;用户名&#xff09;#目录切换命令 pwd #显示当前所在目录 cd ~ #切换到主目录&#xff08;/home/用户名&#xff09;,~也可省略不写 cd dir …

python程序设计语言超详细知识总结

Python 首先 python 并不是简单&#xff0c;什么语言都有基础和高级之分&#xff0c;要想掌握一门语言&#xff0c;必须把高级部分掌握才行。 HelloWorld helloWorld.py print(hello, world)数据类型与变量 变量的数据类型数据类型描述变量的定义方式整数型 (int)整数&…

OpenVINO安装教程 Docker版

从 Docker 映像安装IntelDistribution OpenVINO™ 工具套件 本指南介绍了如何使用预构建的 Docker 镜像/手动创建镜像来安装 OpenVINO™ Runtime。 Docker Base 映像支持的主机操作系统&#xff1a; Linux操作系统 Windows (WSL2) macOS(仅限 CPU exectuion) 您可以使用预…

微软最新季度业绩结果充分说明了云和AI的增长、谷歌和AWS的竞争

微软最新的季度业绩超出了华尔街的各种预期&#xff0c;但对其服务合作伙伴来说&#xff0c;最重要的是这家科技巨头的预期&#xff1a;人工智能不仅能够增长&#xff0c;而且其云产品尚未达到稳定状态——人工智能是云的潜在增长加速器。 周五的一份分析师报告称&#xff0c;…