DS18B20温度传感器C51程序实现与初始化
5星 · 超过95%的资源 需积分: 10 129 浏览量
更新于2024-12-27
7
收藏 19KB TXT 举报
"这篇代码是使用C51语言编写的DS18B20温度传感器驱动程序,适用于8051系列单片机。DS18B20是一款数字温度传感器,能直接输出数字信号,具有精度高、体积小等特点。程序包含了初始化、写入与读取数据的基本操作。"
在DS18B20程序中,关键知识点包括以下几个部分:
1. **延时函数**:`Delayus()` 和 `Delay2us()` 是用于精确控制时序的延时函数。它们根据不同的晶振频率调整延时时间,确保与DS18B20通信所需的最小脉冲宽度。
2. **DS18B20初始化**:`Ds18b20_Init()` 函数负责初始化DS18B20,通过拉低和释放DQ线(数据线)来检测和建立通信。如果在规定时间内未检测到设备,返回失败标志。
3. **写入数据到DS18B20**:`Ds18b20_WriteBit()` 和 `Ds18b20_WriteByte()` 分别用于写入单个bit和字节到DS18B20。这些函数控制DQ线的状态并根据时序要求进行延时,以确保数据正确传输。
4. **从DS18B20读取数据**:`Ds18b20_ReadBit()` 和 `Ds18b20_ReadByte()` 函数用于从传感器读取数据。它们同样需要精确的时序控制,确保读取到的数据正确。
5. **读取DS18B20的ROM**:`Ds18b20_ReadRom()` 函数用于读取DS18B20的ROM地址,这个地址是每个传感器独有的,用于多设备通信的分辨。
6. **读取DS18B20的EEPROM**:`Ds18b20_ReadEE()` 函数用于读取DS18B20的内部EEPROM,这可能包含配置信息或温度转换设置。
7. **温度采集计算**:`TempCal()` 函数是用于获取温度测量值的关键。它首先尝试读取DS18B20的EEPROM,然后启动温度转换过程。不过,提供的代码片段不完整,完整的版本应该会处理温度转换结果并将其转换为浮点温度值。
8. **标签"wendu"** 暗示这个程序是用于测量温度的,其中DS18B20传感器的测量范围是-55℃到+128℃。
这个程序展示了如何用C51语言与DS18B20温度传感器进行底层硬件交互,实现数据的读取和写入,是单片机控制温度传感器的基础。
2018-05-12 上传
2020-07-10 上传
2023-05-26 上传
2023-06-09 上传
2023-06-01 上传
2023-05-03 上传
2023-05-04 上传
2023-05-13 上传
zhouguipingts
- 粉丝: 0
- 资源: 2
最新资源
- curso-backend-nodejs
- astropy:Astropy核心软件包的存储库
- labor:作业服务,看起来很轻巧
- 码头工人麋鹿
- DbExporterHelper:这个小的库可帮助您导出db,导出到csv以及导入db,还可以与Room db一起使用
- spvdeconv.zip_图形图像处理_Visual_C++_
- codesnippet-api
- pivottablejs-airgap:适用于气隙系统的数据透视表
- idiots.win:Google自动完成猜游戏
- electron-serialport:在电子应用程序中如何使用串行端口的示例
- sufyanfarea:程序员产品组合
- Simple bookmark-crx插件
- qtile:用Python编写和配置的功能齐全的可破解平铺窗口管理器
- bpmndemo2020
- r2ddi:使用R从各种数据格式提取DDI
- A java based CMPP implement-开源