0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机DS18B20温度报警系统 无线蓝牙显示

bbxyliyang 来源:bbxyliyang 作者:bbxyliyang 2023-07-21 18:03 次阅读


一、系统方案
随着科学技术的不断发展带动着电子行业的地位越来越重,现在电子产品几乎在社会的各个领域都可以见到。这些技术的发展有效的带动着社会生产力的发展和信息化的提高,同时电子产品也越来越智能
本设计采用AT89C51单片机为主控芯片,采用数字型防水温度传感器DS18B20制作温度检测报警器,通过四位数码管显示温度值,系统设立几个按键,可以通过按键进行设置温度的上、下限值,当所采集温度超过设定值时,系统会控制蜂鸣器和对应LED发出声光报警。这个设计简单、成本低、具有实用性。

wKgaomS6V8GAFRAIAAAbkScxwko851.png


二、硬件设计
原理图如下:

wKgZomS6V8iAYsxdAABISBUIH3Y873.png

三、单片机软件设计
1、首先是串口初始化:
void Uart_init()
{

TMOD=0x20;//定时器0工作方式1

EA=1;//开总中断


TH1=0xfd;
TL1=0xfd;
TR1=1;
ET1=0;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
}

2、中断服务程序
void Usart() interrupt 4
{
receiveData=SBUF;//出去接收到的数据
RI = 0;//清除接收中断标志位
ES=0;
SBUF=receiveData;//将接收到的数据放入到发送寄存器
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
ES=1;
}
3、按键检测程序
/*****外部中断0服务程序*****/
void int0(void) interrupt 0
{
EX0=0; //关外部中断0
if(DEC==0&&set_st==1)
{
BEEP=0;
Delay(2000);
BEEP=1;
do
{
Disp_alarm(shangxian);
}
while(DEC==0);
if(H_ZF==0&&L_ZF==0)
{
shangxian--;
if(shangxian<=xiaxian+1)
shangxian=xiaxian+1;
}
else if(H_ZF==0&&L_ZF==1)
{
shangxian--;
if(shangxian<0&&xiaxian==1)
{
shangxian=0;
H_ZF=0;
}
else if(shangxian<0&&xiaxian>1)
{
shangxian=1;
H_ZF=1;
}
}
else if(H_ZF==1)
{
shangxian++;
if(shangxian>=xiaxian-1)
shangxian=xiaxian-1;
}
}
else if(DEC==0&&set_st==2)
{
BEEP=0;
Delay(2000);
BEEP=1;
do
{
Disp_alarm(xiaxian);
}
while(DEC==0);
if(L_ZF==0)
{
xiaxian--;
if(xiaxian<0)
{
xiaxian=1;
L_ZF=1;
}
}
else if(L_ZF==1)
{
xiaxian++;
if(xiaxian>=55)
{
xiaxian=55;
}
}
}
}
/*****外部中断1服务程序*****/
void int1(void) interrupt 2
{
EX1=0; //关外部中断1
if(ADD==0&&set_st==1)
{
BEEP=0;
Delay(2000);
BEEP=1;
do
{
Disp_alarm(shangxian);
}
while(ADD==0);
if(H_ZF==0)
{
shangxian++;
if(shangxian>=125)shangxian=125;
}
else if(H_ZF==1)
{
shangxian--;
if(shangxian<=0)
{
shangxian=0;
H_ZF=0;
}
}
}
else if(ADD==0&&set_st==2)
{
BEEP=0;
Delay(2000);
BEEP=1;
do
{
Disp_alarm(xiaxian);
}
while(ADD==0);
if(L_ZF==0)
{
xiaxian++;
if(xiaxian>=shangxian-1)
xiaxian=shangxian-1;
}
else if(H_ZF==0&&L_ZF==1)
{
xiaxian--;
if(xiaxian<=0)
{
if(shangxian==0)
{
xiaxian=1;
L_ZF=1;
}
else
{
xiaxian=0;
L_ZF=0;
}
}
}
else if(H_ZF==1&&L_ZF==1)
{
xiaxian--;
if(xiaxian<=shangxian+1)
xiaxian=shangxian+1;
}
}
}
4、核心算法程序
/*****读取温度*****/
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;
t<<=8;
t=t|a;
if(t&0xf800)
{
t=~t+1;
fuhao=1;
}
else
fuhao=0;
tt=t*0.0625;
t= tt*10+0.5; //放大10倍输出并四舍五入
return(t);
}
四、proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

wKgaomS6V9KAfQCgAAEzy1a0TDw562.png

.
审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44505

    浏览量

    632413
  • 蓝牙
    +关注

    关注

    114

    文章

    5760

    浏览量

    169719
  • 报警系统
    +关注

    关注

    5

    文章

    647

    浏览量

    75145
收藏 人收藏

    评论

    相关推荐

    DS18B20温度传感器的工作原理和硬件设计

    通过本文可以了解DS18B20温度传感器工作原理、硬件设计、DS18B20单总线接口驱动编写。
    的头像 发表于 10-24 14:38 553次阅读
    <b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>传感器的工作原理和硬件设计

    ds18b20传感器的使用方法

    DS18B20是一种广泛使用的数字温度传感器,它基于1-Wire(单总线)通信协议。这种传感器因其高精度、易用性和低成本而受到欢迎。 DS18B20传感器简介 DS18B20是由Max
    的头像 发表于 10-18 14:52 379次阅读

    ds18b20温度传感器怎么接线

    DS18B20是一种广泛使用的数字温度传感器,它基于1-Wire(一线)通信协议工作。这种传感器因其高精度、易用性和低成本而受到欢迎。 DS18B20传感器引脚介绍 DS18B20有三
    的头像 发表于 10-18 14:50 624次阅读

    ds18b20温度传感器如何使用

    DS18B20是一款广泛使用的数字温度传感器,它具有高精度、低功耗和易于使用的特点。 DS18B20温度传感器简介 DS18B20是由Max
    的头像 发表于 09-03 16:51 507次阅读

    ds18b20温度传感器是什么类型

    特性使得DS18B20在需要节省引脚资源的应用中非常受欢迎,比如在一些小型嵌入式系统、智能家居设备、环境监控系统等场合。 DS18B20可以直接输出数字
    的头像 发表于 09-03 16:46 737次阅读

    基于51单片机烟雾DS18B20温度采集光强检测设计

    本资源内容概要:       这是基于51单片机烟雾DS18B20温度采集光强检测设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单
    发表于 06-27 11:37 0次下载

    基于51单片机烟雾及DS18B20温度检测设计

    本资源内容概要:       这是基于51单片机烟雾及DS18B20温度检测设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单(excel
    发表于 06-27 11:33 0次下载

    基于51单片机DS18B20温度采集控制风扇设计

    本资源内容概要:       这是基于51单片机DS18B20温度采集控制风扇设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单
    发表于 06-26 10:43 0次下载

    基于51单片机DS18B20温度采集1602液晶显示报警设计

    本资源内容概要:       这是基于51单片机DS18B20温度采集1602液晶显示报警设计包含了电路图源文件(Altiumdesigne
    发表于 06-25 10:16 0次下载

    基于51单片机DS18B20水箱水温检测控制设计

    本资源内容概要:       这是基于51单片机DS18B20水箱水温检测控制设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单
    发表于 06-25 10:04 0次下载

    基于51单片机采集DS18B20多点温度电路图及程序元件清单

    本资源内容概要:       这是基于51单片机采集DS18B20多点温度电路图及程序设计包含了电路图源文件(Altiumdesigner软件打开)、C语言程序源代码(keil软件打开)、元件清单
    发表于 06-24 17:30 0次下载

    基于51单片机DS18B20温度检测上下限报警proteus仿真

    本资源内容概要:       这是基于51单片机DS18B20温度检测上下限报警proteus仿真及电路图程序元件清单设计包含了电路图源文件(Altiumdesigner软件打开)、C
    发表于 06-18 10:13 1次下载

    基于STC8H8K64U和DS18B20温度采集和LabVIEW上位显示

    之前通过 STC 单片机DS18B20 实现了环境温度采集并串口显示,后面进一步想要实现温度的实时监测和数据记录保存,因此编写了 Lab
    发表于 04-08 12:28

    基于51单片机的火灾报警器(MQ-2烟雾,DS18B20温度),论文,仿真电路,代码,原理图

    系统概述 本设计选用MQ-2烟雾传感器、DS18B20温度传感器以及AT89C51单片机作为核心器件并与其他电子技术相结合。 通过AT89C51单片
    发表于 03-29 17:37

    基于51单片机的多点温度检测网络,DS18B20传感器,代码,仿真,原理图等资料

    设计概述 基于DS18B20的多点温度测量监控系统设计,以AT89C52单片机作为主控制器,不断循环读取4组DS18B20(T1、T2、T3
    发表于 03-24 22:08