DS18B20数码管实现温度报警系统程序设计
需积分: 9 191 浏览量
更新于2024-09-15
1
收藏 20KB DOCX 举报
"这篇内容是关于使用数码管和DS18B20温度传感器来设计一个温度报警器的程序实现。程序中包含了数码管显示、温度读取、报警阈值设定以及蜂鸣器报警功能。"
在电子工程领域,温度报警器是一种常见的应用,它能够实时监测环境温度并在超出预设范围时发出警告。这个项目中,设计者使用了数码管(七段显示器)作为显示界面,DS18B20作为温度传感器,以及微控制器的IO口来驱动蜂鸣器和报警灯。
DS18B20是一款单线数字温度传感器,它可以直接通过一根数据线与微控制器进行通信,读取到精确的温度值。在程序中,`DQ=P3^6`被定义为DS18B20的数据线接口,`sounder=P3^7`定义为蜂鸣器的接口,`D1=P1^4`和`D2=P1^5`分别定义为高温和低温报警灯的接口。
程序中使用了`uchar`(无符号字符型)和`uint`(无符号整型)数据类型,`temperature1`和`temperature0`用来存储温度值的高八位和低八位,`TH`和`TL`为高温和低温报警阈值。`tt`和`t`是浮点型和整型变量,用于处理和存储温度值。`baojing`数组存储了高温和低温报警阈值(将数值乘以10),这是因为数码管可能无法直接显示小数点。
`mg`和`mg1`数组包含了共阴极数码管的编码,用于显示温度值。共阴极数码管是指公共阴极接地,阳极连接到每个段的显示驱动电路。`mg`用于无小数点的显示,`mg1`则包含小数点的编码。
延迟函数如`delayms`和`delay5us`等,是实现系统延时的关键,它们使用了循环计数的方式实现不同时间长度的延时。例如,`delayms`通过两个嵌套循环来实现毫秒级别的延时,而`delay5us`、`delay10us`和`delay102us`则是微秒级别的延时,这些延时函数在数码管显示刷新和数据传输中起到关键作用。
整个程序的流程大致如下:
1. 初始化接口,设置数码管、DS18B20、蜂鸣器和报警灯的IO口。
2. 定义报警阈值并持续检测DS18B20提供的温度值。
3. 使用数码管显示当前温度。
4. 比较温度值与报警阈值,当温度超过阈值时,启动蜂鸣器和相应的报警灯。
5. 延时函数确保了显示和报警的稳定性和准确性。
这个设计可以应用于家庭、工业或其他需要实时温度监控的场合,提供直观的温度读取和超限报警功能。
2022-05-23 上传
2022-12-26 上传
2023-04-17 上传
205 浏览量
2022-05-07 上传
2024-05-12 上传
baidu_30526359
- 粉丝: 0
- 资源: 3
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜