基于AT89C51的DS18B20数字温度计汇编源程序与LED显示
版权申诉
83 浏览量
更新于2024-06-20
收藏 375KB PDF 举报
本文档是一份关于数字温度计设计的汇编源程序,主要应用于DS18B20温度传感器和AT89C51单片机平台。该设计利用了12MHz晶振,结合DS1302实时时钟芯片来显示精确到0.1℃的温度读数以及日期和时间。以下是关键知识点的详细解释:
1. **硬件组成**:
- **温度传感器**:DS18B20是一种1-Wire数字温度传感器,能测量-55℃至+125℃的温度,并通过4位LED共阳显示器以0.1℃为单位显示温度值。
- **单片机**:选择的是AT89C51,它是一款广泛应用的8位微控制器,具备较强的处理能力和基本的I/O接口。
- **时钟芯片**:DS1302负责提供精确的时间信息,包括年、月、日、时、分、秒的显示。
2. **程序结构**:
- **常数定义**:程序中定义了多个常数值,如定时器0的时间常数、秒、分钟、小时等单位,以及用于存储温度数据的变量地址。
- **工作内存**:定义了工作区,包括用于存放温度低四位和高四位的存储单元,以及定时器0的标志位。
- **引脚定义**:给出了温度传感器的输入(DIN)、中断(ALARM),以及与单片机连接的其他引脚,如复位(RST)和数据通信/时钟信号(CLK和IO)。
3. **程序流程**:
- **程序开始**:在0000H地址处跳转到START标号,设置堆栈指针和清空内存。
- **系统初始化**:在0100H地址处,初始化单片机堆栈,设置TMOD寄存器为定时器0的工作模式,准备进行温度读取和时间显示。
4. **定时器和中断**:
- **定时器0**:通过设置定时器0的时间常数,用于实现温度计的定时测量和刷新显示。
- **中断向量区**:程序的中断向量表位于000BH地址,分别定义了T0中断服务程序(T0IT)的入口地址,用于处理定时器0溢出事件。
5. **温度读取与显示**:
- 单片机通过P3.7口连接DS18B20的DIN,通过串行通信获取温度数据。
- 温度值会被转换并存储在特定的内存地址中,然后根据高低位分别显示在LED上。
总结,这份汇编源程序提供了如何用AT89C51单片机配合DS18B20温度传感器以及DS1302时钟芯片设计一个可实时显示温度和时间的数字温度计的具体实现步骤。对于学习汇编编程和理解嵌入式系统设计的学生或工程师来说,这是一份非常实用的参考材料。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-20 上传
2021-10-25 上传
2021-07-12 上传
2022-06-25 上传
2022-02-13 上传
2022-10-28 上传
hhappy0123456789
- 粉丝: 72
- 资源: 5万+
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析