ds18b20 汇编

这篇博客介绍了使用汇编语言编写DS18B20温度传感器的程序,包括复位、读写操作。作者在Proteus环境下进行仿真,遇到并解决了通信错误的问题,通过动态显示来调试程序,最终成功实现了00-99摄氏度范围内温度的动态显示,超出范围则显示“err”。
摘要由CSDN通过智能技术生成

程序清单: 

BW EQU 32H;四位动态显示数据
 SW EQU 33H
 GW EQU 34H
 qw equ 38h
 TEML EQU 35H
 TEMH EQU 36H
 TEM EQU 37H
 FLAG BIT 00H
 DQ EQU P0.0
 ORG 00H
 AJMP START
 ORG 0100H
START:  MOV P2,#0FFH
  MOV SP,#60H
 ; MOV BW,#1
 ; MOV SW,#2
 ; MOV GW,#3
  MOV TEML,#00h
  MOV TEMH,#00h
  MOV tem,#00h
MAIN: 
 LCALL GETTEM;读温度  
 LCALL GETCOV;转换温度
 LCALL LED;动态显示   
 SJMP MAIN
FUWEI1820:SETB DQ;复位子程序
 CLR DQ
 MOV R0,#255
 DJNZ R0,$;510us的低电平延时
 SETB DQ
 MOV R0,#35
 DJNZ R0,$;70us的延时
 JNB DQ,FUWEI0;DQ=0则应答成功

DS18B20是一种数字温度传感器,可以通过汇编语言进行设计和控制。根据引用\[1\]和引用\[2\]的内容,可以了解到DS18B20的工作流程和指令操作。 首先,在设计DS18B20汇编语言程序时,需要进行写时序和读时序的操作。写时序是主机向DS18B20发送命令字节,包括写0和写1的操作。读时序是主机从DS18B20读取0或1的过程。 根据引用\[2\]的内容,DS18B20的温度采集工作流程如下: 1. 复位DS18B20,调用DS18B20_Reset指令。 2. 向DS18B20发送0CCH命令字节,跳过ROM指令。 3. 向DS18B20发送044H命令字节,开始温度转换。 4. 等待转换完成,可以使用延时函数或其他方式进行等待。 5. 再次复位DS18B20。 6. 向DS18B20发送0CCH命令字节,跳过ROM指令。 7. 向DS18B20发送0BEH命令字节,读取暂存存储器内容。 8. 使用DS18B20_ReadByte指令读取温度低字节,并存储数据。 9. 使用DS18B20_ReadByte指令读取温度高字节,并存储数据。 10. 返回数据。 根据引用\[3\]的内容,可以进一步了解到,首先需要判断DS18B20是否存在,可以使用FLAG进行判断。如果不存在,则跳回主程序。如果存在,则按照上述的工作流程进行操作。 总结起来,设计DS18B20汇编语言程序需要包括复位、发送命令字节、读取数据等操作,以实现温度采集功能。 #### 引用[.reference_title] - *1* *2* [DS18B20温度采集报警系统,原理及汇编、C语言实现](https://blog.csdn.net/wayne6515/article/details/111296951)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [基于汇编语言的DS18B20温度传感器设计](https://blog.csdn.net/koreyoshi1108/article/details/119719295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值