单片机毕设分享 智能窗户系统(源码+硬件+论文)

2023-05-16

文章目录

  • 0 前言
  • 1 主要功能
  • 2 硬件设计(原理图)
  • 3 核心软件设计
  • 4 实现效果
  • 5 最后


0 前言

🔥
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩 毕业设计 基于单片机的智能窗户系统(源码+硬件+论文)

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:4分

🧿 项目分享:

https://gitee.com/sinonfin/sharing

在这里插入图片描述

1 主要功能

主要功能:一款基于单片机的智能窗户设计,主要可以实现烟雾、光照、温湿度采集。当烟雾超标、温湿度超标时,会自动打开窗户、风扇通风。当光线过暗(晚上)会自动关闭窗户,光线过亮时(白天)会自动打开窗户。还可以进行手动开关窗户。

  • 1.使用STC89C52RC单片机做主控制器。

  • 2.使用LCD1602显示温湿度、烟雾、光照值。

  • 3.使用MQ-2检测烟雾值。

  • 4.使用DHT11检测温湿度。

  • 5.使用光敏电阻检测光照值。

  • 6.使用E18-D80NK检测人体触发情况。

  • 7.使用继电器带动风扇通风。

  • 8.当在手动打开窗户的时候,人体传感器检测到人时,会自动报警且关窗。

  • 9.按键具有手动开关窗、阀值设定灯作用。

在这里插入图片描述

2 硬件设计(原理图)

在这里插入图片描述

PCB图

在这里插入图片描述

仿真效果

在这里插入图片描述

3 核心软件设计

控制程序,根据解码得到的结果去执行需要的操作,开窗户、关窗户、停止移动、调节实时时间、调节开窗户时间、调节关窗户时间、时间增加、时间减少、显示电路、实时时间显示。主程序流程如图

在这里插入图片描述

关键代码

#include <reg52.h>//库函数
#include <dht11.h> //库函数//#include <adc0832.h> //AD转换库函数
#define uchar unsigned char//宏定意
#define uint  unsigned int//宏定意
#define ulong unsigned long//宏定意
bit s=1;
sbit rs=P2^0;//LCD 1602引脚定意		
sbit rd=P2^1;//LCD 1602引脚定意		
sbit lcden=P2^2;//LCD 1602引脚定意
sbit menu=P2^5;	//主功能键	
sbit add=P2^4;//加键		
sbit dec=P2^3;//减键
sbit open=P2^6;//手动 开
sbit close=P2^7;//手动 关	 
sbit IR=P3^5; //红外感 应
sbit BEEP=P3^1;// 报警
sbit pf=P3^0;//排风
#define MOTORSTEP P1 //宏定义,定义P1口为步进电机驱动端口
uchar  dsflj,kval,lofl,menusw,con,befl,zhenfl,fanfl,brigfl;// 各种变量标记 正返转标记
uint sudu,dwbrigfl,humfl; //电机速度 //光度下限/湿度标记
uchar count0,second,zhenzhuan,fanzhuan,timeflg,opensw,closesw,keysw;//时钟变量 正反转 变量	
uint adc0,adc1;
uint upbrig,dwbrig,kwbrig,uphum,uptemp,upsmo; // 下限 亮度 上限湿度// 上限温度
uint hour,minit,secon,DSdat,VAldat ,time;//时钟变量
uint ONhour,ONminit,ONsecon; //开窗时间变量
uint OFhour,OFminit,OFsecon; //关窗时间变量
uchar   U8T_data_H,U8RH_data_H;
#define Imax 14000 //此处为晶振为11.0592时的取值, 
#define Imin 8000 //如用其它频率的晶振时,
#define Inum1 1450 //要改变相应的取值。
#define Inum2 700 
#define Inum3 3000 

uchar f=0;
uchar Im[4]={0x00,0x00,0x00,0x00}; //遥控码存储空间
uchar show[2]={0,0}; //变量申明
ulong m,Tc;	//变量申明
uchar IrOK;	//变量申明
void delay(uint z);//开窗时间变量
void write_rvalue(); //显示函数
//以下是各种字幕提示语数组
uchar code logo1[]= "Welcome to use ";
uchar code logo2[]="window system ";
uchar code logo3[]="S=253T=85oCU=85%";
uchar code logo4[]="Br= 12:00:00 ";
uchar code logo5[]="window open ";
uchar code logo6[]="window close ";
uchar code logo7[]="GWbrig= LUX ";
uchar code logo8[]="UP-Hum= % ";
uchar code logo9[]="Please input... ";
uchar code logo10[]="Please wait... ";
uchar code logo11[]="UP-TEM= oC ";
uchar code logo12[]="SEtime 12:00:00";
uchar code logo13[]="ONtime12:00:00";
uchar code logo14[]="OFtime 12:00:00";
uchar code logo15[]="UP-SMO= ";
uchar code logo16[]="KWbrig= LUX ";
void delaymoto() //步进电机每一步间延迟函数
{  	
	uint y=sudu;
	while(y--);
}
uchar code FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //步进电机驱动值数组
uchar code REV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //步进电机驱动值数组
xdata num1 [4] = {0x00,0x00,0x00,0x00,};				
xdata num2 [4] = {0x00,0x00,0x00,0x00,};			 
xdata num3 [4] = {0x00,0x00,0x00,0x00,};		   
xdata num4 [4] = {0x00,0x00,0x00,0x00,};	// AD转换变量组组
xdata num5 [4] = {0x00,0x00,0x00,0x00,};	// AD转换变量组组
void delaylog(uint z)//延时函数
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=500;y>0;y--);
}
void delay(uint z)//延时函数
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=10;y>0;y--);
}
void SETP_MOTOR_FFW() //反转
{
 	uint i=0;
	for(i=0;i<8;i++) //8步一个循环
	{
		MOTORSTEP=FFW[i]; //取值赋给P1驱动口
		delaymoto(); 
	}
 }
void SETP_MOTOR_REV() //正转
{
    uint i=0;
	for(i=0;i<8;i++) //8步一个循环
	{
		MOTORSTEP=REV[i]; //取值赋给P1驱动口
		delaymoto(); 
	}
}
void write_com(uchar com) //LCD 1602写指令
{
	rs=0;
	lcden=0;
	P0=com;
	delay(5);
	lcden=1;
	delay(5);
	lcden=0;	
}
void write_date(uchar date)//LCD 1602写数据
{
	rs=1;
	lcden=0;
	P0=date;
	delay(5);
	lcden=1;
	delay(5);
	lcden=0;	
}
void init1602()//LCD 1602初始化
{
	uchar num;
	rd=0;
	lcden=0;
	write_com(0x38);
	write_com(0x0c);
	write_com(0x06);
	write_com(0x01);
	write_com(0x80);
	for(num=0;num<16;num++)
		{
			write_date(logo1[num]);//开机字幕
			delay(2);
		}
	write_com(0x80+0x40);
	for(num=0;num<16;num++)
		{
	write_date(logo2[num]);//开机字幕
	delay(2);
		}

	delaylog(200);

    write_com(0x80);
   for(num=0;num<16;num++)//开机字幕
		{
			write_date(logo6[num]);
			delay(2);
		}
	write_com(0x80+0x40);
	for(num=0;num<16;num++)
		{
			write_date(logo10[num]);//开机字幕
			delay(2);
		}
}
void write_sfm() // 拆分个位十位显示
{	
	uchar shi ,ge;
	shi=DSdat/10;
	ge=DSdat%10;
	write_date(0x30+shi);
	write_date(0x30+ge);	
}

4 实现效果

在这里插入图片描述

5 最后

包含内容

在这里插入图片描述

🧿 项目分享:

https://gitee.com/sinonfin/sharing

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单片机毕设分享 智能窗户系统(源码+硬件+论文) 的相关文章

  • 关于Mysql1251解决办法

    问题 xff1a 相信有些小伙伴在用Navicat连接Mysql时 xff0c 都遇到了这样的情况 xff0c 这其实是8 0以后的加密规则问题 解决办法 xff1a 1 我们打开以管理员身份打开cmd管理器 2 输入cdC Program
  • vue-router4路由报“[Vue Router warn] No match found for location with path“

    这里出现该问题的原因 xff1a 在路由配置了参数路径 但是 xff0c 跳转的路径没有参数 xff1a 因此控制台出现了 xff1a
  • Chrome(谷歌浏览器)安装Vue插件vue-devtools(图文详细教程)

    使用Vue开发项目时 xff0c 常会用到一款谷歌浏览器插件 xff0c vue devtools 安装成功后 xff0c 运行本地Vue项目 xff0c 打开浏览器控制台就如下 xff1a 其中可以便捷的查看vueX的数据以及组件结构等
  • 你不能错过的单片机课程-1.1.第1季第1部分-朱有鹏-专题视频课程

    你不能错过的单片机课程 1 1 第1季第1部分 3111人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第1个课程 xff0c 旨在对整个课程体系 学习方法和思路 配套开发板等进行介绍 xff0c 学习完本课程将对整个
  • redis如何设置密码

    密码设置 这里简单介绍一下redis如何设置密码 redis密码设置有两种方式 xff0c 一种需要重启redis服务 xff0c 一种不需要重启redis服务 首先 xff0c 介绍一下需要重启redis服务的设置方式 即找到redis的
  • linux 查看IP地址

    参考资料整理 一 在 linux 下可以通过两个命令来查看本机的 IP 地址 xff1a 1 支持包括 Linux 在内的所有 Unix 系统 sbin ifconfig 2 对于Linux 而言 xff0c 也可以使用 ip 命令查看 x
  • Docker 查看镜像信息

    本文中 xff0c 我们将需要学习 Docker 如何查看镜像信息 xff1f 一 images 命令列出镜像 通过使用如下两个命令 xff0c 列出本机已有的镜像 xff1a docker images 或 xff1a docker im
  • Google Chrome(谷歌浏览器)安装使用

    谷歌浏览器官网https www google cn chrome Chrome是由Google开发的一款简单便捷的网页浏览工具 谷歌浏览器 Google Chrome 可以提帮助你快速 安全的搜索到自己需要的内容 xff0c 功能强大 x
  • IDEA创建一个JavaWeb项目详细步骤

    刚好最近在写数据库大作业任务书 xff0c 留了一份 xff0c 发在博客上 提前说明 使用IDEA 43 Html5 43 CSS 43 JavaWeb 43 MySql开发 并使用Tomcat部署在本地服务器上 其中JDK版本为1 8
  • Nacos集群配置以及在springboot中使用

    1 下载nacos 官方地址为https github com alibaba nacos 2 将nacos解压 最好不要有中文路径 将cluster conf example文件改名为cluster conf 添加如下配置127 0 0
  • Windows下安装Nginx

    一 引言 Nginx 是一个很强大的高性能Web和反向代理服务 也是一种轻量级的Web服务器 可以作为独立的服务器部署网站 应用非常广泛 特别是现在前后端分离的情况下 而在开发过程中 我们常常需要在window系统下使用Nginx作为Web
  • Linux安装curl完整步骤

    文章目录 1 安装步骤 1 安装步骤 下载curl安装包 xff1a wget http curl haxx se download curl 7 38 0 tar gz 解压 xff1a tar xzvf curl 7 38 0 tar
  • 前端案例:简易计算器的实现(dom操作、target、eval函数、try catch、switch-case)

    目录 一 案例效果 二 涉及要点 三 完整代码 43 详细注释 一 案例效果 二 涉及要点 1 文本域标签 的 readonly 属性用于设置文本域文字为只读 xff1b 2 DOM 获取元素 xff0c getElementById 获取
  • 单片机到底是个什么东西-1.2.第1季第2部分-朱有鹏-专题视频课程

    单片机到底是个什么东西 1 2 第1季第2部分 2575人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第2个课程 xff0c 用通俗易懂的语言讲了很多和单片机有关的技术概念 xff0c 如CPU ROM RAM 外设
  • Requirement already satisfied解决办法

    遇到的问题 xff1a 当使用电脑中安装的Python 3 7的IDLE去运行某一个python文件时 xff0c 会出现ModuleNotFoundError No module named 39 numpy 39 的报错 xff0c 需
  • 高校学籍管理系统(SQL Server数据库课程设计)

    目录 1 概述 1 1数据库设计选题背景1 2功能要求1 3系统功能解决的问题 2 需求分析3 概念结构设计 3 1抽象出系统的实体3 2设计实体属性图3 3全局E R图 4 逻辑结构设计5 数据库物理设计与实施 5 1数据库关系图5 2表
  • JVM原理之完整的一次GC流程

    JVM 的 GC 是指垃圾回收 xff0c 主要是对堆内存的回收 本文将介绍 JVM 中一次完整的 GC 流程是怎样的 xff0c 首先抛出第一个问题 xff0c 什么样的对象会是 JVM 回收的目标 xff1f 一 可达性分析算法 xff
  • Linux进入root权限的两种方法

    进入root权限的两种方法 第一种方法 xff1a sudo xff08 暂时的 xff09 xff1a 使用root权限而不是直接进入 xff0c sudo 43 lt 指令 gt 第二种方法 xff1a root xff08 非暂时的
  • java.lang.reflect.InvocationTargetException null,依赖版本,配置文件的地址都对了。但还是出现这个错误。

    一 问题描述 在启动微服务时总是报java lang reflect InvocationTargetException null 错误 经检查 xff0c 发现是nacos 配置管理的 spring cloud starter aliba
  • nginx 配置域名映射到本地IP

    需求背景 项目需求需要在不同的域名下 xff0c 判断展示不同的内容 xff0c 为了模拟线上的正式域名 xff0c 有以下几种方案 xff1a 方案一 xff1a 配置host 1 找到host的文件地址 xff08 不会的百度 xff0

随机推荐

  • zookeeper应用实战之分布式锁

    1 什么是分布式锁 我们先来看这样一个场景 如下图所示 两个用户同时去抢购秒杀商品 当秒杀服务同时收到秒杀请求时 都去进行库存扣减 此时在没有做任何处理的情况下 就会导致库存数量变成负数从而导致超卖现象 这种情况下如果是单体项目 我们一般会
  • nvm管理node版本 nodenpm不是内部或外部命令,也不是可运行的程序

    最近 xff0c 有新老项目一起开发 xff0c node版本太高 xff0c 老项目起不来 xff1b node版本太低 xff0c 新项目还搭不起来 所以 xff0c 一个nvm就显得很有必要了 这几个坑掉的 xff0c 摔的我差点起不
  • hdfs分布式文件系统 默认数据存放路径、及相关配置属性详细解析

    hdfs默认数据存放路径 1 默认存放路径 xff1a hadoop tmp dir 61 tmp hadoop user name 即 xff1a gt tmp hadoop hyxy xff0c 注意 xff1a tmp是临时存放文件的
  • 关于Linux系统之VM安装配置(每一个步骤都超级详细的哦!)

    目录 Linux简介 VM虚拟机的介绍及安装 VM简介 VM安装 xff08 详细步骤 xff0c 根据图片一步一步进行安装 xff09 查看IP配置IP 换源 1 xff09 备份Linux自带的EPEL源 2 xff09 生成阿里源 3
  • 单片机有很多种-1.3.第1季第3部分-朱有鹏-专题视频课程

    单片机有很多种 1 3 第1季第3部分 1864人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第3个课程 xff0c 主要讲了单片机的发展史 xff0c 各种主流单片机的各自特点 xff0c STC51单片机的各系列
  • 如果还不会这几个工具,那你白混了

    大家好 xff0c 我是加摩斯 xff0c 觉得文章有帮助的小伙伴 xff0c 记得一键三连哟 xff5e 申明 xff1a 原创 xff0c 转载前请与我沟通 如何高效的描述问题 xff1f 我们现在这个时代 xff0c 不缺乏有能力的人
  • 软考——软件工程——软件生存周期

    目录 1 xff0c 软件生存周期 2 xff0c 软件过程 3 xff0c 瀑布模型 4 xff0c 增量模型 5 xff0c 演化模型 6 xff0c 螺旋模型 7 xff0c 喷泉模型 8 xff0c 统一过程 9 xff0c 敏捷过
  • Java基础面试题(史上最全、持续更新、吐血推荐)

    Java概述 何为编程 编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码 xff0c 并最终得到结果的过程 为了使计算机能够理解人的意图 xff0c 人类就必须要将需解决的问题的思路 方法 和手段通过计算机能够理解的形式告诉
  • 基于stm32单片机甲醛烟雾温湿度检测仪设计

    目录 第1章 绪论 1 1 引言 1 1 1甲醛的特性及危害 1 1 2甲醛的来源 1 2甲醛检测仪的种类 第 xff12 章 概述 2 1系统总概述 2 2总体方案设计 2 3硬件设计 2 4软件设计 第3章 硬件设计 3 1 硬件设计主
  • 二叉树的前中后序遍历

    作者 xff1a 渴望力量的土狗 博客主页 xff1a 渴望力量的土狗的博客主页 专栏 xff1a 手把手带你刷牛客 工欲善其事必先利其器 xff0c 给大家介绍一款超牛的斩获大厂offer利器 牛客网 点击免费注册和我一起刷题吧 目录 二
  • 国内云桌面架构有哪些?为什么VDI能成为主流

    中国 云电脑 基础架构可划分为VDI架构 IDV架构 VOI架构 xff0c 不同的服务厂商通常会在各自架构中进行一定程度上的定制化 VDI架构 xff08 virtual desktop infrastruscture 虚拟桌面基础架构
  • 【STM32 基础实验蜂鸣器发声】

    文章目录 一 认识蜂鸣器 xff08 1 xff09 蜂鸣器 xff08 2 xff09 蜂鸣器分类 二 基于stm32f10c8t6 基础实验蜂鸣器发声 xff08 1 xff09 本实验蜂鸣器型号说明 xff08 2 xff09 蜂鸣器
  • docker安装

    一 安装前准备 根据不同系统准备安装docker的安装包 xff0c 准备符合docker安装需求的Centos Ubuntu系统 二 Centos系统 安装前准备 1 系统要求 要在 CentOS 上安装 Docker xff0c 最低的
  • Python3入门教程||Python3 正则表达式||Python3 CGI 编程

    Python3 正则表达式 在 Python3 中正则表达式是一个特殊的字符序列 xff0c 它能帮助你方便的检查一个字符串是否与某种模式匹配 Python 自1 5版本起增加了re 模块 xff0c 它提供 Perl 风格的正则表达式模式
  • 树莓派安装qq最新版本 kali安装qq最新版本

    前几天我一个linux老用户看到摆烂摆了4年多的qq for linux竟然更新了 xff0c 必须给我树莓派炫一个 不多说 xff0c 开搞 首先 xff0c 要安装的就是依赖 xff1a sudo apt install libgtk2
  • 玩转你的开发板-1.4.第1季第4部分-朱有鹏-专题视频课程

    玩转你的开发板 1 4 第1季第4部分 1586人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第4个课程 xff0c 主要内容是带领大家玩转课程配套开发板 xff0c 包括 xff1a 开发板的整体配件认识 检测 程
  • Invalid <param> tag: Cannot load command parameter [robot_description]: command [[‘/opt/ros/noetic/l

    Ubuntu20 04 运行LIO SAM遇到这个错误 xff0c 一直解决不掉 xff0c 好像是xacro文件的问题 xff0c 有大佬帮忙看一下吗 xff1f 求求了
  • MDK5 Debug调试方法总结

    常见的Debug方法 连接好硬件DAP之后 xff0c 需要进行一些设置 Debug调试按钮分别对应的功能 按钮1 gt reset复位按钮 按钮2 gt run按钮 xff0c 程序运行按钮 按钮3 gt stop按钮 xff0c 程序停
  • 51单片机(DHT11温湿度传感器)

    一 产品介绍 1 运用场景 xff08 温湿度检测系统 xff09 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器 xff0c 应用领域 xff1a 暖通 空调 xff1b 汽车 xff1b 消费品 xff1b 气
  • 单片机毕设分享 智能窗户系统(源码+硬件+论文)

    文章目录 0 前言1 主要功能2 硬件设计 原理图 3 核心软件设计4 实现效果5 最后 0 前言 x1f525 这两年开始毕业设计和毕业答辩的要求和难度不断提升 xff0c 传统的毕设题目缺少创新和亮点 xff0c 往往达不到毕业答辩的要