AT89X52单片机多点测温程序:18b20 ROM匹配与读取
需积分: 12 114 浏览量
更新于2024-11-08
收藏 7KB TXT 举报
本资源是一份针对18b20温度传感器在AT89X52单片机平台上的多点测温和ROM匹配程序。18b20是一款用于测量温度的I²C接口数字温度传感器,它能将温度转换为数字信号,通过单片机进行处理。该程序主要包含以下几个部分:
1. 头文件导入:`#include<AT89X52.h>`引入了基本的AT89X52单片机库,提供了必要的硬件操作和函数定义。
2. 变量声明:
- `uint temp=0` 定义了一个整型变量temp,用于存储温度值。
- `uint keyvalue=0` 和 `uint flag` 分别表示按键状态和匹配标志。
3. IO口定义:
- `sbit rs = P2^6` 和 `sbit Lcden = P2^7` 分别是18b20的R/W和EN接口,用于数据交互。
- `sbit DS = P2^0` 是数据总线接口。
- `sbit key0 = P1^0` 和 `sbit key1 = P1^1` 是按键输入接口。
4. 字符串数组:用于显示欢迎信息和温度值的临时缓冲区。
5. ROM匹配:使用一组预定义的ID数组(如`ID1`至`ID9`),这些可能是芯片的序列号或制造商的标识符。程序试图通过读取18b20的序列号并与预设的ID进行比较,来识别传感器的型号或验证其身份。
6. 代码SN1_9:这部分是一个二维数组,存储了多个可能的序列号(SN),共9个,每个SN是一个8字节的数组,这表明可能存在多种类型的18b20传感器。
该程序的核心流程可能包括:首先,初始化I²C通信,然后读取18b20的序列号,将其与预定义的ID数组逐个匹配。匹配成功后,程序会显示相应的欢迎信息,并读取温度值。如果序列号不匹配,可能会提示错误或者等待用户输入更多的校验信息。
通过这个程序,开发者可以实现对多点温度传感器的集中管理和数据采集,同时也展示了如何通过单片机与I²C设备通信并进行基本的设备识别。对于学习I²C通信、18b20工作原理以及基本的嵌入式系统编程都是非常有帮助的实践资料。
点击了解资源详情
点击了解资源详情
点击了解资源详情
150 浏览量
2010-08-08 上传
2017-03-18 上传
2009-06-06 上传
2020-10-20 上传
2009-10-25 上传
sun2006_20
- 粉丝: 790
- 资源: 16
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器