DS18B20温度传感器汇编程序实现
下载需积分: 9 | DOC格式 | 31KB |
更新于2024-11-16
| 146 浏览量 | 举报
"DS18B20是用于温度测量的一种数字传感器,它可以与微控制器如AT89C51等直接通信,提供精确的温度数据。本程序使用汇编语言编写,通过DS18B20获取温度,并在单片机的两个数码管上实时显示温度值,显示范围00到99度,精度为1度。
DS18B20传感器的工作原理是通过1-Wire协议与微控制器交互,该协议只需要一根数据线即可完成通信。在程序中,数据线连接到微控制器的P1.7引脚。程序首先进行DS18B20的复位初始化,通过发送一个短暂的低电平脉冲(大约537微秒)来启动传感器,然后将其拉高,等待传感器响应。
读取温度的子程序`GET_TEMPER`负责从DS18B20读取温度数据。温度数据被分为高低两个字节存储在`TEMPER_LEQU`和`TEMPER_HEQU`内存地址中。由于12位转换的精度为0.0625度,程序通过移位操作将低4位舍去,保留高8位作为整数部分,确保显示的温度为整数。
温度数据显示子程序`DISPLAY`将处理后的温度字节转换为适合数码管显示的格式。它将温度的十位和个位分别存储在`a_bitequ20h`和`b_bitequ21h`内存位置,以便驱动数码管进行显示。
在主循环`MAIN`中,程序不断调用`INIT_1820`复位DS18B20,然后调用`GET_TEMPER`读取温度,接着调用`DISPLAY`更新数码管的显示。这种循环结构确保温度数据的实时更新。
需要注意的是,该程序没有错误检查和异常处理机制,实际应用中可能需要添加这些功能以提高系统的稳定性和可靠性。此外,如果需要更高的温度分辨率或扩展多个DS18B20传感器,可能需要对代码进行相应修改,例如引入多传感器的寻址机制和更复杂的温度处理算法。
这个程序展示了如何利用DS18B20温度传感器和单片机实现简单的温度监测和显示系统,对于学习嵌入式系统和温度传感技术的人来说是一个很好的实践案例。"
相关推荐









LLL20121212
- 粉丝: 1
最新资源
- 安装Oracle必备:unixODBC-2.2.11-7.1.x86_64.rpm
- Spring Boot与Camel XML聚合快速入门教程
- React开发新工具:可拖动、可调整大小的窗口组件
- vlfeat-0.9.14 图像处理库深度解析
- Selenium自动化测试工具深度解析
- ASP.NET房产中介系统:房源信息发布与查询平台
- SuperScan4.1扫描工具深度解析
- 深入解析dede 3.5 Delphi反编译技术
- 深入理解ARM体系结构及编程技巧
- TcpEngine_0_8_0:网络协议模拟与单元测试工具
- Java EE实践项目:在线商城系统演示
- 打造苹果风格的Android ListView实现与下拉刷新
- 黑色质感个人徒步旅行HTML5项目源代码包
- Nuxt.js集成Vuetify模块教程
- ASP.NET+SQL多媒体教室管理系统设计实现
- 西北工业大学嵌入式系统课程PPT汇总