基于51单片机的SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

news2024/12/27 18:10:19

51单片机SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

  • 讲解视频
  • 1.主要功能:
  • 2.仿真
  • 3. 程序代码
  • 4. 原理图
  • 5. 设计报告
  • 6. 设计资料内容清单&下载链接

51单片机SHT11温湿度上下限LCD12864显示报警仿真设计( proteus仿真+程序+原理图+报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0043

讲解视频

51单片机SHT11温湿度上下限LCD12864显示报警proteus仿真设计

1.主要功能:

运用所学知识,制作一个 51单片机温湿度上下限LCD12864显示报警仿真

1、测量SHT11温湿度,通过12864显示;

2、可以通过按键设置温湿度上下限,温湿度测量值过限报警;

3、温湿度偏离正常值越大,蜂鸣器频率越高。

4、默认的温度阈值下限是10℃,温度上限是40.00℃。湿度的下限默认30%,上限模式60%。

需注意仿真中51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:

2.仿真

开始仿真

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

img

仿真中通过按键调整SHT11温湿度模块的值改变显示数值。

img

img上下箭头用于改变温度/湿度的值。下箭头调低数值,上箭头调高数值。img通过这个箭头改变调整的值是温度还是湿度。

img改图标显示的是湿度和温度的值,湿度的值在第一行,温度的值在第二行。

开始仿真后,按下设置/切换按键调整上下阈值,默认的温度阈值下限是10℃,温度上限是40.00℃。湿度的下限默认30%,上限模式60%。

img

开始仿真后,调整湿度超过湿度上限阈值60%后,蜂鸣器报警,超过湿度上限的值越大,蜂鸣器报警声越尖锐,LCD12864显示过限。

img

开始仿真后,调整湿度低于湿度下限阈值30%后,蜂鸣器报警,低于湿度下限的值越大,蜂鸣器报警声越尖锐,LCD12864显示过限。

img

开始仿真后,调整温度超过温度上限阈值40℃后,蜂鸣器报警,超过温度上限的值越大,蜂鸣器报警声越尖锐,LCD12864显示过限。需注意的是,调整温度的时候,SHT11的湿度会受温度补偿的影响,数值会发生改变,实际应用上是修正湿度参数的,仿真中未能体现,所以仿真中的湿度值会出现和SHT11模块显示误差大的情况,这是正常的。

img

开始仿真后,调整温度低于温度下限阈值10℃后,蜂鸣器报警,低于温度下限的值越大,蜂鸣器报警声越尖锐,LCD12864显示过限。

img

3. 程序代码

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

img

主函数代码

void main()
{
    uchar i=0;
	lcd_init();                 // 初始化
    lcd_clear(0);               // 清屏
    lcd_set_line(0);             // 设置起始行为0

 	TMOD|=0X01;
	TH0=0X3C;
	TL0=0XB0;	
	ET0=1;//打开定时器0中断允许
	EA=1;//打开总中断
	TR0=1;//打开定时器
    while (1)
	{
		//按键检测
		if(!k1)//设置
		{
			if(mode<4)
				mode++;
			else
				mode=0;
			while(!k1);
		}
		if(mode==1)//设置温度下限
		{
			if(!k2)
			{
				if(wen_set1<wen_set2)
					wen_set1+=1;
				while(!k2);
			}
			if(!k4)
			{
				if(wen_set1<wen_set2)
					wen_set1+=0.1;
				while(!k4);
			}
			if(!k3)
			{
				if(wen_set1>-81.11)
					wen_set1-=1;
				while(!k3);
			}
			if(!k5)
			{
				if(wen_set1>-81.11)
					wen_set1-=0.1;
				while(!k5);
			}

		}
		if(mode==2)//设置温度上限
		{
			if(!k2)
			{
				if(wen_set2<81.11)
					wen_set2+=1;
				while(!k2);
			}
			if(!k4)
			{
				if(wen_set2<81.11)
					wen_set2+=0.1;
				while(!k4);
			}

			if(!k3)
			{
				if(wen_set2>wen_set1)
					wen_set2-=1;
				while(!k3);
			}
			if(!k5)
			{
				if(wen_set2>wen_set1)
					wen_set2-=0.1;
				while(!k5);
			}
		}
		if(mode==3)//设置湿度下限
		{
			if(!k2)
			{
				if(shi_set1<shi_set2)
					shi_set1+=1;
				while(!k2);
			}
			if(!k4)
			{
				if(shi_set1<shi_set2)
					shi_set1+=0.1;
				while(!k4);
			}

			if(!k3)
			{
				if(shi_set1>1.1)
					shi_set1-=1;
				while(!k3);
			}
			if(!k5)
			{
				if(shi_set1>1.1)
					shi_set1-=0.1;
				while(!k5);
			}

		}
		if(mode==4)//设置湿度上限
		{
			if(!k2)
			{
				if(shi_set2<81)
					shi_set2+=1;
				while(!k2);
			}
			if(!k4)
			{
				if(shi_set2<81)
					shi_set2+=0.1;
				while(!k4);
			}

			if(!k3)
			{
				if(shi_set2>shi_set1)
					shi_set2-=1;
				while(!k3);
			}
			if(!k5)
			{
				if(shi_set2>shi_set1)
					shi_set2-=0.1;
				while(!k5);
			}

		}
		//蜂鸣器
		if(beep_time>0)
		{
			if(sec<beep_time)
			{
			 	sec++;
				delay(15);
			}
			else
			{
				sec=0;
				beep=!beep;
			}
		}
	}
}

4. 原理图

原理图使用AD绘制,可供实物链接参考,仿真不同于实物,经验不足不要轻易搞实物。新手制作实物会犯很多低级错误,耗费大量时间,本设计不提供实物制作答疑。

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

img

元器件清单如下:

元件 型号 数量

单片机 AT89C51 1

电容 10uf 1

电容 30pf 2

晶振 12MHZ 1

电阻 10k 1

按钮 6

温湿度传感器 SHT11 1

电位器 1k 1

电阻 1k 1

三极管 PNP 1

蜂鸣器 无源 1

显示器 LCD12864 1

排阻 10k 1

5. 设计报告

7386字设计报告,内容包含设计框图,引言,硬件设计介绍,软件设计介绍,仿真调试,总结和参考文献。

img

6. 设计资料内容清单&下载链接

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

0、常见使用问题及解决方法–必读!!!!

1、仿真图

2、程序源码

3、开题报告

4、原理图

5、元器件清单

6、取模工具及使用

7、软硬件流程框图

8、功能要求

9、设计报告

Altium Designer 软件资料

KEIL软件资料

Proteus软件资料

单片机学习资料

答辩技巧

设计报告常用描述

鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

img

资料下载链接(可点击):

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

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

相关文章

实现跨境电商测评和采退、LU卡、LU货最安全的系统方案

首先你要有一个稳定的测评环境系统&#xff0c;这个是做自养号退款、撸货、撸卡的基础。测评环境系统有很多&#xff0c;从早期的虚拟机&#xff0c;模拟机&#xff0c;云手机&#xff0c;VPS等等。这些系统方案先不说成本高&#xff0c;最重要的是成功率很低&#xff0c;所以一…

Git和Github的基本用法

目录 背景 下载安装 安装 git for windows 安装 tortoise git 使用 Github 创建项目 注册账号 创建项目 下载项目到本地 Git 操作的三板斧 放入代码 三板斧第一招: git add 三板斧第二招: git commit 三板斧第三招: git push 小结 &#x1f388;个人主页&#xf…

基于单片机的串行通信发射机设计

一、项目介绍 串行通信是一种常见的数据传输方式&#xff0c;允许将数据以比特流的形式在发送端和接收端之间传输。当前实现基于STC89C52单片机的串行通信发射机&#xff0c;通过红外发射管和接收头实现自定义协议的数据无线传输。 二、系统设计 2.1 单片机选择 在本设计中&…

黑马 大事件项目 笔记

学习视频&#xff1a;黑马 Vue23 课程 后台数据管理系统 - 项目架构设计 在线演示&#xff1a;https://fe-bigevent-web.itheima.net/login 接口文档: https://apifox.com/apidoc/shared-26c67aee-0233-4d23-aab7-08448fdf95ff/api-93850835 接口根路径&#xff1a; http:/…

系统架构技能之设计模式-抽象工厂模式

一、上篇回顾 上篇我们主要讲述了简单工厂模式和工厂模式。并且分析了每种模式的应用场景和一些优缺点&#xff0c;我们现在来回顾一下&#xff1a; 简单工厂模式&#xff1a;一个工厂负责所有类型对象的创建&#xff0c;不支持无缝的新增新的类型对象的创建。 工厂模式&…

系统架构技能之设计模式-工厂模式

一、开篇 本文主要是讲述设计模式中最经典的创建型模式-工厂模式&#xff0c;本文将会从以下几点对工厂模式进行阐述。 本文将会从上面的四个方面进行详细的讲解和说明&#xff0c;当然会的朋友可以之处我的不足之处&#xff0c;不会的朋友也请我们能够相互学习讨论。 二、摘…

学习心得06:Halcon

据说实际场景中&#xff0c;使用Halcon的多。功能上跟OpenCV差不多&#xff0c;轮廓&#xff0c;线条&#xff0c;边缘&#xff0c;连通&#xff0c;滤波&#xff0c;深度学习等。 需要了解的是&#xff0c;如何与其他语言对接。这当然也不难&#xff0c;人家早就考虑好了。 看…

企业架构LNMP学习笔记4

企业服务器LNMP环境搭建&#xff1a; 常见的软件架构&#xff1a; 1&#xff09;C/S: client/server 2&#xff09;B/S: browser/server 不管是C还是B&#xff0c;都是属于客户端属于前端。那么运维人员主要是负责和管理的Server端&#xff0c;也统称为服务器端。为了快速的…

[标注工具]rolabelImg旋转框标注工具安装和使用教程

rolabelImg是一个专门用于标注旋转框的工具&#xff0c;目前最新版本是3.0版本&#xff0c;rolabelImg是python编写的&#xff0c;为了避免安装python环境和配置。我们可以直接使用安装包安装&#xff0c;首先我们打开安装包 双击打开安装包 选择安装路径&#xff0c;不要是中文…

Linux-Centos7安装Docker

文章目录 一、前言二、Docker安装1、Docker及系统版本2、Docker的自动化安装3、Docker手动安装3.1、卸载Docker&#xff08;可选&#xff09;3.2、设置源仓库3.3、Docker安装3.4、Docker启动3.5、验证是否安装成功3.5.1、拉取镜像3.5.2、查看镜像3.5.3、运行镜像 3.6、删除Dock…

Spring-Cloud-Openfeign如何传递用户信息?

用户信息传递 微服务系统中&#xff0c;前端会携带登录生成的token访问后端接口&#xff0c;请求会首先到达网关&#xff0c;网关一般会做token解析&#xff0c;然后把解析出来的用户ID放到http的请求头中继续传递给后端的微服务&#xff0c;微服务中会有拦截器来做用户信息的…

一,表单标签

一,表单标签 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>常用标签</title></head><body><!-- 1.表单标签:比表格多了数据提交的功能1.1, 要求:必须使用form标签 必须有提交按钮 必须配置name属…

springcloud3 注册中心以及cloud启动原理总结(含面试)

一 Springcloud微服务面试题 1.1 为何使用注册中心 1)问题描述 在多个单体微服务之间&#xff0c;可以直接通过http请求进行通信&#xff0c;但是存在以下问题&#xff1a; 1.调用服务提供者时需要写ip和端口&#xff0c;如果出现ip和端口进行了修改&#xff0c;没有及时告…

SAP_ABAP_接口技术_RFC远程函数实践总结

SAP ABAP顾问能力模型梳理_企业数字化建设者的博客-CSDN博客SAP Abap顾问能力模型&#xff0c;ALV/REPORT|SMARTFROM|SCREEN|OLE|BAPI|BDC|PI|IDOC|RFC|API|WEBSERVICE|Enhancement|UserExits|Badi|Debughttps://blog.csdn.net/java_zhong1990/article/details/132469977 SAP接…

[C/C++]天天酷跑超详细教程-中篇

个人主页&#xff1a;北海 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏✨收录专栏&#xff1a;C/C&#x1f91d;希望作者的文章能对你有所帮助&#xff0c;有不足的地方请在评论区留言指正&#xff0c;大家一起学习交流&#xff01;&#x1f9…

stable diffusion实践操作-hypernetworks

本文专门开一节写hypernetworks的内容&#xff0c;在看之前&#xff0c;可以同步关注&#xff1a; stable diffusion实践操作 一、hypernetworks是什么&#xff1f; 中文名字叫超网络&#xff0c;功能和embedding&#xff0c;lora类似&#xff0c;都是对生成的图片进行针对性…

Spring Cloud--从零开始搭建微服务基础环境【二】

&#x1f600;前言 本篇博文是关于Spring Cloud–从零开始搭建微服务基础环境【二】&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;…

02-Flask-对象初始化参数

对象初始化参数 前言对象初始化参数import_namestatic_url_pathstatic_foldertemplate_floder 前言 本篇来学习Flask中对象初始化参数 对象初始化参数 import_name Flask程序所在的包(模块)&#xff0c;传__name__就可以 _name_ 是一个标识 Python 模块的名字的变量&#x…

随记-多租户数据隔离

数据隔离 DataBase 隔离 ( 独立数据库 )Schema 隔离 ( 共享数据库&#xff0c;但隔离数据架构 )Table 隔离 ( 共享数据库&#xff0c;共享数据架构 ) DB 隔离 即一个租户一个数据库&#xff0c;这种方案的用户数据隔离级别最高&#xff0c;安全性最好&#xff0c;但成本较高 …

软件外包开发人员分类

在软件开发中&#xff0c;通常会分为前端开发和后端开发&#xff0c;下面和大家分享软件开发中的前端开发和后端开发分类和各自的职责&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 前端开发&…