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

.
审核编辑 黄宇

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

    关注

    6078

    文章

    45581

    浏览量

    673742
  • 蓝牙
    +关注

    关注

    119

    文章

    6393

    浏览量

    179333
  • 报警系统
    +关注

    关注

    5

    文章

    663

    浏览量

    77091
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HJ18B20 数字单总线温度传感器

    同一总线,该特 性使得 HJ18B20 也非常便于部署分布型温度采集系统。 主要特点: ·单总线接口,节约布线资源 ·应用简单,无需额外器件 ·转换温度时间 500ms ·可编程 9~
    发表于 04-21 14:17

    BLE高性能32位MCU无线型RISC-V单片机

    英尚的CH32V208是一款基于RISC-V架构的无线单片机。它把蓝牙、以太网、USB、CAN等多种通信接口集于一身,特别适合那些对低功耗要求不高、但看重网络与蓝牙协同工作的场景,比
    的头像 发表于 04-20 16:51 295次阅读
    BLE高性能32位MCU<b class='flag-5'>无线</b>型RISC-V<b class='flag-5'>单片机</b>

    LC88F83B0A 16 位单片机:技术特性与应用分析

    LC88F83B0A 16 位单片机:技术特性与应用分析 在当今的电子设计领域,单片机作为核心控制元件,其性能和功能直接影响着产品的质量和竞争力。ON Semiconductor 公司
    的头像 发表于 04-10 16:05 345次阅读

    单片机系统设计方法

    对生产现场有关的信号进行检测才能判断生产过程是否正常,是否符合控制要求,才能充分发挥计算机的特点。本文对单片机系统的实际要求做了以下介绍。 系统设计 1.单片机的硬件
    发表于 01-06 06:23

    浮思特 | 电子温度单片机如何选型?ABOV单片机提供几点很关键!

    一个优秀的电子温度计,其核心往往在于内部单片机(MCU)的性能与匹配度。如何选择一款合适的单片机,实现精准、稳定、低功耗的温度测量与交互,是产品开发中的重要课题。本文将从技术维度,为大
    的头像 发表于 12-15 09:43 776次阅读
    浮思特 | 电子<b class='flag-5'>温度</b>计<b class='flag-5'>单片机</b>如何选型?ABOV<b class='flag-5'>单片机</b>提供几点很关键!

    单片机系统硬件的调试方法

    流量,并比较漏电流质和存储保护值,作为外部继电报警的依据。除此之外.我们还需要根据机车系统的扩展升级需求.选择合适型号单片机.其中高速、低功耗、抗干扰是单片机最基本的功能,其外围电路模
    发表于 12-03 06:10

    要做一个DS18B20的读取程序,单总线需要配置为输入或者输出,怎么配置好?

    目前要做一个DS18B20的读取程序,单总线需要配置为输入或者输出。怎么配置好
    发表于 11-18 06:30

    使用18b20软件包报错怎么解决?

    In file included from ../packages/ds18b20-latest/src/dallas_ds18b20_sensor_v1.c:12:0: C
    发表于 10-14 06:49

    STM32项目分享:矿井环境监测系统

    01—项目简介1.功能详解STM32矿井环境监测系统功能如下:STM32F103C8T6单片机作为主控制器DS18B20测量环境温度
    的头像 发表于 08-16 10:03 1119次阅读
    STM32项目分享:矿井环境监测<b class='flag-5'>系统</b>

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机
    的头像 发表于 07-25 11:39 1081次阅读

    给予单片机温度控制系统设计

    、执行机构、显示模块和电源模块组成。单片机系统的核心,负责处理温度信息并发出控制指令;温度传感器用于实时采集环境或物体的
    的头像 发表于 07-16 10:57 821次阅读

    单片机实例项目:DS18B20温度传感器

    单片机实例项目:DS18B20温度传感器,推荐下载!
    发表于 06-03 20:59

    基于51单片机的多功能万年历设计

    DS1302DS18B20DHT11PCF8574AT24C02LCD1602MAX7221级联等模块,代码功能实现部分:通过按键实现界面切换,按键选择和修改时间,开机显示当前时间(北京时间),闹钟时间存储具有记忆性,蜂鸣器闹钟报警
    发表于 06-03 17:17 1次下载

    可以满足不同的低功耗应用的PY32F002B单片机

    链接[/url] PY32F002B单片机特性: 内核 32 位ARM Cortex –M0+ 存储器 24Kbytes flash 存储器 3Kbytes SRAM 系统 支持HSI,LSI
    发表于 05-29 16:57

    单片机c语言编程实例大全

    单片机c语言编程实例大全_18
    发表于 04-30 16:11 7次下载