51单片机数字温度报警器_DS18B20可调上下限(仿真+程序+原理图)

数字温度报警器

  • 1 **主要功能:**
    • ***\*资料下载链接(可点击):\****
  • 2 **仿真图:**
  • 3 **原理图:**
  • 4 **设计报告:**
  • 5 **程序设计:**
      • 主函数
      • 外部中断函数
      • DS18B20驱动
  • 6 讲解视频
  • 7 **资料清单:**

51单片机数字温度报警器_DS18B20可调上下限(仿真+程序+原理图+报告+讲解)

原理图:Altium Designer

仿真版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

1 主要功能:

1、实时温度测量及显示,超出温度范围声光报警,上下限温度可通过按键设定等功能;

2、温度测量范围0到99.9摄氏度,精度为0.1摄氏度;

3、可设置上下限报警温度,默认上限报警温度为38℃、默认下限报警温度为5℃(通过程序可以更改上下限值);

4、报警值可设置范围:最低上限报警值等于当前下限报警值,最高下限报警值等于当前上限报警值。将下限报警值调为0时为关闭下限报警功能。

*使用说明:*

1、开机:打开电源,机器进入初始化状态,此时数码管显示 - - - -;片刻即开始显示当前温度。

2、查看当前上下限温度范围:按下【S1】键(设置键),数码管闪烁显示Hxxx,H表示上限温度,再次按下【S1】键,数码管闪烁显示Lxxx, L表示下限温度。再按【S1】键时退出设置,数码管显示当前实时温度。

3、重新设定上下限温度范围:按下【S1】键一次,数码管闪烁显示Hxxx时,此时是设定上限温度,按【S3】键加温度,【S2】键减温度。再按下【S1】键一次,此时是设定下限温度,数码管闪烁显示Lxxx时,按【S3】键加温度,【S2】键减温度。再按下【S1】键一次,设置成功并退出设置。

4、报警:当检测到当前实时温度高于上限温度值,或者低于下限温度值,系统会自动发出报警,报警为红灯一直闪烁且蜂鸣器随着灯的频率响。除非重设上下限温度范围,否则报警一直持续。

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

https://docs.qq.com/doc/DS05hcVFmSVZVdE5P

2 仿真图:

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。机器进入初始化状态,此时数码管显示 - - - -;片刻数码管显示当前温度值。

img

查看当前上下限温度范围:按下【S1】键(设置键),数码管闪烁显示Hxxx,H表示上限温度,再次按下【S1】键,数码管闪烁显示Lxxx, L表示下限温度。再按【S1】键时退出设置,数码管显示当前实时温度。

重新设定上下限温度范围:按下【S1】键一次,数码管闪烁显示Hxxx时,此时是设定上限温度,按【S3】键加温度,【S2】键减温度。再按下【S1】键一次,此时是设定下限温度,数码管闪烁显示Lxxx时,按【S3】键加温度,【S2】键减温度。再按下【S1】键一次,设置成功并退出设置。

img

img

报警:当检测到当前实时温度高于上限温度值,或者低于下限温度值,系统会自动发出报警,报警为红灯一直闪烁且蜂鸣器随着灯的频率响。除非重设上下限温度范围,否则报警一直持续。

imgimg

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

img

img上下箭头用于改变温度的值。下箭头调低数值,上箭头调高数值。img改图标显示的是温度的值

3 原理图:

img

使用AD绘制。

元器件清单

Comment元器件Pattern名称Quantity数量Components元器件编号
按键KEY1K1
自弹开关SW61S1
电阻10KR-DIP2R14, R16
排阻10KSIP91RP1
电容10uFC1001C1
晶振12MHzJZ1Y1
电阻2.2KR-DIP6R9, R10, R11, R12, R13, R15
电容30ufC012C2, C3
数码管4-LEDLED-41U3
三极管9012PNP5Q1, Q2, Q3, Q4, Q5
按键ADDKEY1K4
LED灯ALAMLED1D2
单片机AT89C51DIP401U1
按键DECKEY1K3
DS18B20DS18B201U2
DC接口POWERDC2.11P1
按键SETKEY1K2
蜂鸣器SPEAKERSPEAKER1LS1

4 设计报告:

提供开题报告和论文报告

img

设计报告目录如下

摘要

1、引言

2 设计内容及性能指标

3 系统方案比较、设计与论证

3.1 主控制器模块

3.2 温度测量

3.3 设置温度

3.3 显示模块

4 系统器件选择

5 硬件实现及单元电路设计

5.1 主控制模块

5.2 显示模块电路

5.3 数码管显示驱动电路

图6 驱动电路

5.4 温度传感器(DS18B20)电路

5.4.1 DS18B20基本介绍

5.4.2 DS18B20控制方法

5.4.3 DS18B20供电方式

5.6 蜂鸣器、发光二极管报警电路

6 系统软件设计

6.1 程序结构分析

6.2 系统程序流图

6.2.1 DS18B20初始化程序流程图

6.2.2 读温度子程序流程图

7 系统的安装与调试

仿真调试

系统调试

仿真结果

总结与展望

参考文献

5 程序设计:

image-20220903205414446

主函数

void main(void)
{uint z;InitTimer();    //初始化定时器EA=1;      //全局中断开关TR0=1;ET0=1;      //开启定时器0IT0=1;        IT1=1;check_wendu();check_wendu();for(z=0;z<300;z++){Disp_init();        }while(1){if(SET==0){Delay(2000);do{}while(SET==0);set_st++;x=0;shanshuo_st=1;if(set_st>2)set_st=0;}if(set_st==0){EX0=0;    //关闭外部中断0EX1=0;    //关闭外部中断1check_wendu();Disp_Temperature();Alarm();   //报警检测}else if(set_st==1){BEEP=1;    //关闭蜂鸣器ALAM=1;EX0=1;    //开启外部中断0EX1=1;    //开启外部中断1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st) {Disp_alarm(shangxian);}}else if(set_st==2){BEEP=1;    //关闭蜂鸣器ALAM=1;EX0=1;    //开启外部中断0EX1=1;    //开启外部中断1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st) {Disp_alarm(xiaxian);}}}
}

外部中断函数

/*****外部中断0服务程序*****/
void int0(void) interrupt 0
{EX0=0;      //关外部中断0if(DEC==0&&set_st==1){do{Disp_alarm(shangxian);}while(DEC==0);shangxian--;if(shangxian<xiaxian)shangxian=xiaxian;}else if(DEC==0&&set_st==2){do{Disp_alarm(xiaxian);}while(DEC==0);xiaxian--;if(xiaxian<0)xiaxian=0;}
}
/*****外部中断1服务程序*****/
void int1(void) interrupt 2
{EX1=0;      //关外部中断1if(ADD==0&&set_st==1){do{Disp_alarm(shangxian);}while(ADD==0);shangxian++;if(shangxian>99)shangxian=99;}else if(ADD==0&&set_st==2){do{Disp_alarm(xiaxian);}while(ADD==0);xiaxian++;if(xiaxian>shangxian)xiaxian=shangxian;}  
}

DS18B20驱动

程序流程图

image-20220903000421492

unsigned int ReadTemperature(void)
{unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC);  //跳过读序号列号的操作WriteOneChar(0x44);  //启动温度转换Init_DS18B20();WriteOneChar(0xCC);  //跳过读序号列号的操作WriteOneChar(0xBE);  //读取温度寄存器a=ReadOneChar();     //读低8位b=ReadOneChar();    //读高8位t=b;				   //高8位转移到tt<<=8;			   //t数据左移8位t=t|a;			   //将t和a按位或,得到一个16位的数tt=t*0.0625;		   //将t乘以0.0625得到实际温度值(温度传感器设置12位精度,最小分辨率是0.0625)t= tt*10+0.5;     //放大10倍(将小数点后一位显示出来)输出并四舍五入return(t);		   //返回温度值
}

6 讲解视频

讲解视频包含proteus原理图讲解,程序讲解等

7 资料清单:

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

\1. 程序源码

\2. 仿真

\3. 原理图

\4. 使用说明

\5. 开发资料

\6. 元器件清单

\7. 开题报告

\8. 设计报告

\9. 讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

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

img

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

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

相关文章

上海亚商投顾:沪指震荡调整 油气等周期股集体下挫

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整&#xff0c;深成指、创业板指小幅走弱。军工板块逆势拉升&#xff0c;中船应急、捷安高科、…

simlab python二次开发2-一键生成轴瓦并设定节点号

simlab python二次开发2-一键生成轴瓦并设定节点号 1、节点坐标计算并建立1.1、建坐标原点节点&#xff0c;并得到Model-1.gda1.2、轴瓦节点计算并建立 2、由节点建面2.1、由4个节点建面得到3个面单元Body2.2、得到Bodies名称2.3、根据Bodies名称选面特征&#xff08;放入Group…

AR爆发的前夜,Rokid站在了门口

文&#xff5c;刘俊宏 摆脱6寸的手机屏幕&#xff0c;栖居在300寸大屏的智慧生活是什么样子&#xff1f; 4月20日&#xff0c;Rokid在新品AR Lite空间计算套装的发布会上&#xff0c;“硬刚”了苹果的Vision Pro。 Rokid AR Lite空间计算套装 Rokid AR Lite与苹果Vision Pro…

el-upload组件如何上传blob格式的url地址视频

el-upload组件如何上传blob格式的url地址视频 一、存在问题二、直接上代码 需求&#xff1a;想把视频地址url:“blob:http://localhost:8083/65bd3c0f-52ec-4844-b85e-06fdb5095b7b”&#xff0c;通过el-upload组件上传 el-upload是Element UI中用于文件上传的组件&#xff0c;…

中文医疗大模型及中文底座大模型参考

参考&#xff1a;https://github.com/HqWu-HITCS/Awesome-Chinese-LLM 中文底座大模型 中文医疗大模型

c#学习入门1

一、环境配置 颜色主题 字体设置 行号设置 二、第一个应用程序 1. 在解决方案下创建一个新项目 第一种注释&#xff1a;两杠注释 第二种注释&#xff1a;星号注释 第三种注释&#xff1a;三杠注释(只有在花括号后面输出才会自动补全&#xff09; 2.控制台输入打印基础语句 输…

第⑯讲:Ceph集群Pool资源池管理以及PG的数据分布的核心技术要点

文章目录 1.Pool资源池的管理1.1.查看Pool资源池列表1.2.创建一个Pool资源池1.3.查看Pool资源池的参数信息1.4.修改Pool资源池的参数信息1.5.为Pool资源池设置应用模式1.6.重命名Pool资源池1.7.设置Pool资源池的限额1.8.删除Pool资源池1.9.查看Pool资源池的利用率 2.PG的数据分…

产品经理必会12个产品模型

很多运营经理&#xff0c;常常觉得产品成功的决定性因素是“产品做得好”。 而很多产品经理却认为&#xff0c;产品互抄太严重了&#xff0c;差异化的竞争要点是“产品运营得好”。 在商业高速发展时代&#xff0c;成功产品定义往往不是单点成功&#xff0c;而是由3大要素共同…

就业班 第三阶段(负载均衡) 2401--4.18 day2 nginx2 LVS-DR模式

3、LVS/DR 模式 实验说明&#xff1a; 1.网络使用NAT模式 2.DR模式要求Director DIP 和 所有RealServer RIP必须在同一个网段及广播域 3.所有节点网关均指定真实网关 主机名ip系统用途client172.16.147.1mac客户端lvs-server172.16.147.154centos7.5分发器real-server1172.16.…

SpringBoot整合PDF动态填充数据并下载

目录 目录 一、准备环境 二、iTextPDF介绍 三、步骤 四、访问查看结果 五、源代码参考 一、准备环境 ①下载一个万兴pdf软件 ②准备一个pdf 文件 二、iTextPDF介绍 这是一个用于生成PDF文档的Java库&#xff0c; 文档创建与修改&#xff1a;iTextPDF能够从零开始创建…

学习Rust的第11天:模块系统

Rust的模块系统可以使用它来管理不断增长的项目&#xff0c;并跟踪 modules 存储在何处。 Rust的模块系统是将代码组织成逻辑片段的有效工具&#xff0c;因此可以实现代码维护和重用。模块支持分层组织、隐私管理和代码封装。Rust为开发人员提供了多功能和可扩展的方法来管理项…

用 Pytorch 训练一个 Transformer模型

昨天说了一下Transformer架构&#xff0c;今天我们来看看怎么 Pytorch 训练一个Transormer模型&#xff0c;真实训练一个模型是个庞大工程&#xff0c;准备数据、准备硬件等等&#xff0c;我只是做一个简单的实现。因为只是做实验&#xff0c;本地用 CPU 也可以运行。 本文包含…

Vue阶段练习:tab栏、进度条、

阶段练习旨在学习完Vue 指令、计算属性、侦听器-CSDN博客后&#xff0c;进行自我检测&#xff0c;每个练习分为效果显示、需求分析、静态代码、完整代码、总结 四个部分&#xff0c;效果显示和准备代码已给出&#xff0c;我们需要完成“完整代码”部分。 练习1&#xff1a;tab栏…

开源大数据集群部署(二十一)Spark on yarn 部署

作者&#xff1a;櫰木 1 spark on yarn安装&#xff08;每个节点&#xff09; cd /root/bigdata/ tar -xzvf spark-3.3.1-bin-hadoop3.tgz -C /opt/ ln -s /opt/spark-3.3.1-bin-hadoop3 /opt/spark chown -R spark:spark /opt/spark-3.3.1-bin-hadoop32 配置环境变量及修改配…

攻防世界---misc---再见李华

1.下载附件是解压之后得到一张图片 2.使用常规方法后没有得到什么信息&#xff0c;接着用winhex分析&#xff0c;发现有压缩包 &#xff0c;里面还有个key.txt 3.接着用kali使用命名foremost进行分离&#xff0c;得到压缩包&#xff0c;里面的key.txt需要密码 4.接着给压缩包暴…

IDEA代码重构

重构 重构的目的&#xff1a; 提高代码的可读性、可维护性、可扩展性和性能。 重命名元素 重命名类 当我们进行重命名操作的时候可以看到第六行存在一个R(rename)&#xff0c;点击后就会弹出所偶有引用&#xff0c;这样可以避免我们在修改后存在遗漏引用处未修改。 我们可以通过…

管理集群工具之LVS

管理集群工具之LVS 集群概念 将很多机器组织在一起&#xff0c;作为一个整体对外提供服务集群在扩展性、性能方面都可以做到很灵活集群分类 负载均衡集群&#xff1a;Load Balance高可用集群&#xff1a;High Availability高性能计算&#xff1a;High Performance Computing …

模拟网关是什么?

模拟网关是一种网络设备&#xff0c;用于在模拟电话系统和数字网络之间进行信号转换。它的主要作用是将模拟语音信号转换为数字格式&#xff0c;使得这些信号能够通过基于IP&#xff08;互联网协议&#xff09;的网络进行传输&#xff0c;从而实现语音通信。这种设备是将传统的…

Python环境找不到解决方法

Python环境找不到 打开设置&#xff1a;Ctrl Alt S 添加Local Interpreter... 打开System Interpreter&#xff0c;找到本地安装的Python.exe路径&#xff0c;然后一路点OK Trust Project 如果打开工程时&#xff0c;出现如下对话框&#xff0c;请勾选 Trust projects in ...&…

项目管理中,项目团队如何高效的协作与沟通?

目 录 一、项目团队高效的协作与沟通&#xff0c;可以通过以下几个方面来实现&#xff1a; 二、如何在项目团队中明确和共享愿景以提高协作效率&#xff1f; 三、有效的沟通策略在项目管理中的应用案例有哪些&#xff1f; 四、建立哪些具体的沟通机制可以提升团队协作效率…