AT89X52单片机多点测温程序:18b20 ROM匹配与读取
需积分: 12 151 浏览量
更新于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 浏览量
2017-03-18 上传
2010-08-08 上传
2009-06-06 上传
2020-10-20 上传
2009-10-25 上传
2010-04-24 上传
点击了解资源详情
2023-03-27 上传
sun2006_20
- 粉丝: 851
- 资源: 16