DS18B20温度报警系统_c程序实现

需积分: 9 0 下载量 193 浏览量 更新于2024-09-13 1 收藏 845KB PDF 举报
"DS18B20报警_c程序是一个基于C语言的项目,使用了DS18B20数字温度传感器来制作一个带有报警功能的温度计。该程序能够显示0~99.9摄氏度范围内的温度,并允许用户设定上限和下限报警值。当实际温度超过预设的上限或低于下限时,系统会通过蜂鸣器发出报警。默认的上限报警温度是38℃,下限报警温度是5℃。报警值可以调整,但最低上限不能低于当前下限,最高下限不能高于当前上限。关闭下限报警功能可通过将下限设置为0。" 本文将深入探讨DS18B20温度传感器的工作原理,C程序的结构以及如何实现报警功能。 1. **DS18B20简介** DS18B20是一款单线数字温度传感器,由Dallas Semiconductor(现Maxim Integrated)制造。它能提供9位到12位的温度分辨率,并且可以直接通过单根数据线与微控制器通信,无需额外的总线收发器。DS18B20内部集成了温度传感器、A/D转换器和存储器,非常适用于嵌入式系统。 2. **C程序结构** - `#include`语句引入了必要的库文件,如AT89X52头文件和DS18B20的自定义函数库。 - 定义了一些数据类型别名,如`uint`(无符号整型)和`uchar`(无符号字符型),以及一些位定义,如`SET`,用于控制P3_1等端口。 - 定义了几个全局变量,如`m`和`n`,用来存储温度值,`shangxian`和`xiaxian`表示上限和下限报警温度,`set_st`作为状态标志,`beep_st`和`hanshuo_st`分别用于蜂鸣器和闪烁间隔。 - 延时子程序`Delay()`使用循环实现简单延时,`InitTimer()`初始化定时器0,设置为工作在方式1,用于定时中断。 - 定时器0的中断服务程序`timer0()`处理定时事件,例如更新显示或触发报警。 3. **报警功能实现** - 报警功能的核心在于比较当前温度`m`和`n`与预设的上限和下限。当温度超出设定范围时,`beep_st`标志被设置,触发蜂鸣器报警。 - 用户可以通过按键(DEC、ADD和SET)调整上下限报警值,程序会检查新设置的值是否合法,确保它们在有效范围内。 4. **显示与用户交互** - 温度值通过四位数码管显示,使用`LEDData[]`数组映射温度值到数码管的段码。 - 用户界面设计允许用户通过按键交互地调整报警设置,程序需要处理这些输入并更新显示和报警状态。 5. **总结** 这个DS18B20报警_c程序展示了如何使用单线数字温度传感器实现一个简单的温度监控系统,具有用户可调的温度报警功能。通过对DS18B20的控制和微控制器的中断机制,程序能够实时监测和响应温度变化,为家庭、实验室或其他环境的温度监控提供了一个实用的解决方案。