51单片机ds18b20温度转换汇编程序
5星 · 超过95%的资源 需积分: 9 56 浏览量
更新于2023-03-16
1
收藏 39KB DOC 举报
"这篇资源提供了一个基于51单片机的DS18B20温度传感器的汇编程序,作者提到程序可能不完善,期待他人的指正。DS18B20是一款数字温度传感器,它可以直接与单片机进行通信,而无需额外的信号调理电路。在该程序中,DS18B20的数据线连接到51单片机的P1.7口。程序中定义了几个存储温度数据的寄存器,包括TEMP_LEQ、TEMP_HEQ、TEMP_XIAO、TEMP_GE和TEMP_SHI,分别用于保存温度读数的低字节、高字节、小数部分、个位部分和十位部分。此外,程序还包含了DS18B20的复位、写入和读取指令的实现,以及温度转换为十进制的函数。晶振频率设置为12MHz,确保了程序的正确运行和转换的准确性。"
在DS18B20的温度转换程序中,`DS_RST`函数负责对传感器进行复位,通过设置和清除DQ(数据线)来实现。`DS_WR_BYTE`函数用于向DS18B20写入指令,它利用右移操作和延时函数来控制数据线的高低电平,以形成数据信号。`DS_RD_BYTE`函数则读取DS18B20返回的数据,同样通过设置数据线的电平并读取反馈来实现。`DS_GET_TEMP`函数读取温度值,并将其拆分为小数、个位和十位,方便后续处理。
程序中使用的延时函数`DELAY`通过循环计数来实现,根据不同的延时需求设置了不同的循环次数。这种简单的延时方法适用于没有硬件定时器或者不使用中断的简单系统。需要注意的是,这些延时值是基于特定的晶振频率计算的,如果实际应用中晶振频率不同,可能需要调整延时常数以保证通信的准确性。
这个程序提供了基础的DS18B20温度传感器与51单片机交互的框架,对于学习单片机编程和DS18B20的使用具有一定的参考价值。不过,由于作者声明程序可能存在不足,用户在实际应用时应进行充分测试和优化。
2023-05-26 上传
2023-04-05 上传
2023-07-31 上传
2023-04-27 上传
2023-09-03 上传
2023-04-28 上传
NARUTO12345678
- 粉丝: 0
- 资源: 2
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解