DS18B20温度传感器程序解析与初始化
195 浏览量
更新于2024-09-04
收藏 55KB PDF 举报
"本文详细介绍了如何编写和理解DS18B20测温程序,适合初学者入门学习。"
DS18B20是一款数字温度传感器,它可以直接输出数字信号,无需额外的ADC转换器。在微控制器如8051系列中,可以方便地与DS18B20进行通信来获取温度数据。以下是对DS18B20测温程序的详细解析:
首先,程序中包含了必要的头文件`reg52.h`和`intrins.h`,前者提供了8051系列微控制器的寄存器定义,后者则包含了一些内联汇编函数。
接着,定义了几个数据类型和引脚定义。`uchar`代表无符号字符型,`uint`代表无符号整型。`DQ`、`dula`和`wela`分别被定义为P2口的第2、6、7位,它们用于控制DS18B20的数据接口以及数码管的显示。
`temp`变量用来存储读取到的温度值。`table`和`table1`数组是用于数码管显示的字符代码表,分别对应不带小数点和带小数点的十进制数字。
程序中的`delay`函数是一个简单的延时函数,适用于12MHz晶振的系统。这个函数通过循环减法实现延时,误差在5us左右。根据参数的不同,可以实现不同时间长度的延时。
`Init_Ds18b20`函数是DS18B20的初始化函数。在这个函数中,首先将DQ引脚设置为高电平,然后通过拉低DQ引脚并保持一定时间来发送复位脉冲。这个过程对DS18B20进行初始化,准备它接收后续的命令。
未在摘要中给出的程序部分通常会包含与DS18B20通信的具体指令序列,例如启动一次温度测量、读取温度数据、处理温度数据并将其显示在数码管上等步骤。这些步骤可能包括:
1. 发送“开始转换”命令,让DS18B20开始测量温度。
2. 等待一段时间,允许DS18B20完成温度测量(通常需要约750ms)。
3. 发送读取温度数据的命令,然后读取DS18B20返回的16位数据(其中9位是温度值,其余位是校验信息)。
4. 解析读取到的温度数据,可能需要考虑温度传感器的分辨率和负数表示方式(例如,9位二进制补码)。
5. 将温度值转换为人类可读的格式(如摄氏度),并用之前定义的数码管显示代码表显示在数码管上。
由于摘要中没有提供完整的程序,上述步骤只能基于常见的DS18B20操作流程推测。实际的程序实现会包含这些步骤的详细代码。
DS18B20测温程序的编写涉及与传感器的通信协议、数据解析以及显示输出等多个环节。通过学习和理解这个程序,开发者可以掌握如何在嵌入式系统中集成温度测量功能。
2020-07-14 上传
点击了解资源详情
点击了解资源详情
2022-10-08 上传
2022-09-14 上传
2018-11-08 上传
weixin_38664159
- 粉丝: 5
- 资源: 921
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全