为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

MCS-51单片机的数字体温计。用DS18B20制作的 程序

2017-09-26 5页 doc 15KB 16阅读

用户头像

is_348501

暂无简介

举报
MCS-51单片机的数字体温计。用DS18B20制作的 程序MCS-51单片机的数字体温计。用DS18B20制作的 程序 DQ BIT P3.3 ;DS18B20的数据口位P3.3 TPH DATA 20H ;存放温度值的高字节 TPL DATA 21H ;存放温度值的低字节 ORG 0 JMP Reset ORG 100H Reset: CALL DS18B20_Reset ;设备复位 MOV A,#0CCH ;跳过ROM命令 CALL DS18B20_WriteByte ;送出命令 MOV A,#044H ;开始转换 CALL DS18B20_WriteByt...
MCS-51单片机的数字体温计。用DS18B20制作的 程序
MCS-51单片机的数字体温计。用DS18B20制作的 程序 DQ BIT P3.3 ;DS18B20的数据口位P3.3 TPH DATA 20H ;存放温度值的高字节 TPL DATA 21H ;存放温度值的低字节 ORG 0 JMP Reset ORG 100H Reset: CALL DS18B20_Reset ;设备复位 MOV A,#0CCH ;跳过ROM命令 CALL DS18B20_WriteByte ;送出命令 MOV A,#044H ;开始转换 CALL DS18B20_WriteByte ;送出命令 JNB DQ,$ ;等待转换完成 CALL DS18B20_Reset ;设备复位 MOV A,#0CCH ;跳过ROM命令 CALL DS18B20_WriteByte ;送出命令 MOV A,#0BEH ;读暂存存储器 CALL DS18B20_WriteByte ;送出命令 CALL DS18B20_ReadByte ;读温度低字节 MOV TPL,A ;存储数据 CALL DS18B20_ReadByte ;读温度高字节 MOV TPH,A ;存储数据 JMP $ ;************************************** ;延时X*10微秒 ;不同的工作环境,需要调整此函数 ;入口参数:R7 ;出口参数:无 ;************************************** DelayX0us: ;2 当改用1T的MCU时,请调整此延时函数 NOP ;1 NOP ;1 NOP ;1 NOP ;1 NOP ;1 NOP ;1 NOP ;1 NOP ;1 DJNZ R7,DelayX0us ;2 RET ;2 ;************************************** ;复位DS18B20,并设备是否存在 ;入口参数:无 ;出口参数:无 ;************************************** DS18B20_Reset: CLR DQ ;送出低电平复位信号 MOV R7,#48 ;延时至少480us CALL DelayX0us SETB DQ ;释放数据线 MOV R7,#6 ;等待60us CALL DelayX0us MOV C,DQ ;检测存在脉冲 MOV R7,#42 ;等待设备释放数据线 CALL DelayX0us JC DS18B20_Reset ;如果设备不存在,则继续等待 RET ;************************************** ;从DS18B20读1字节数据 ;入口参数:无 ;出口参数:ACC ;************************************** DS18B20_ReadByte: CLR A PUSH 0 MOV 0,#8 ;8位计数器 ReadNext: CLR DQ ;开始时间片 NOP NOP SETB DQ ;准备接收 NOP NOP MOV C,DQ ;读取数据 RRC A MOV R7,#6 ;等待时间片结束 CALL DelayX0us DJNZ 0,ReadNext POP 0 RET ;************************************** ;向DS18B20写1字节数据 ;入口参数:ACC ;出口参数:无 ;************************************** DS18B20_WriteByte: PUSH 0 MOV 0,#8 ;8位计数器 WriteNext: CLR DQ ;开始时间片 NOP NOP RRC A ;输出数据 MOV DQ,C MOV R7,#6 ;等待时间片结束 CALL DelayX0us SETB DQ ;准备送出下一位数据 DJNZ 0,WriteNext POP 0 RET END
/
本文档为【MCS-51单片机的数字体温计。用DS18B20制作的 程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索