下载此文档

ds18b20温度传感器的使用方法.doc


文档分类:通信/电子 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
DS18B20 温度传感器的使用方法;这是关于 DS18B20 的读写程序,数据脚 , 晶振 ;温度传感器 18B2 0汇编程序,采用器件默认的 12位转化,最大转化时间 75 0微秒;可以将检测到的温度直接显示到 AT89C51 的两个数码管上;显示温度 00 到 99 度,很准确无需校正! ORG 0000H ;单片机内存分配申明! TEMPER_L EQU 29H; 用于保存读出温度的低 8位 TEMPER_H EQU 28H; 用于保存读出温度的高 8位 FLAG1 EQU 38H; 是否检测到 DS18B20 标志位 a_bit equ 20h ;数码管个位数存放内存位置 b_bit equ 21h ;数码管十位数存放内存位置 MAIN: LCALL GET_TEMPER; 调用读温度子程序;进行温度显示,这里我们考虑用网站提供的两位数码管来显示温度;显示范围 00 到 99 度,显示精度为 1度;因为 12位转化时每一位的精度为 5度,我们不要求显示小数所以可以抛弃 29H 的低 4位;将 28 H中的低 4位移入 29 H中的高 4位,这样获得一个新字节,这个字节就是实际测量获得的温度;这个转化温度的方法可是我想出来的哦~~ 非常简洁无需乘于 系数 MOV A,29H MOV C,40H; 将 28H 中的最低位移入 C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV 29H,A LCALL DISPLAY; 调用数码管显示子程序 CPL AJMP MAIN ;这是 DS18B20 复位初始化子程序 INIT_1820: SETB NOP CLR ;主机发出延时 537 微秒的复位低脉冲 MOV R1,#3 TSR1:MOV R0,#107 DJNZ R0,$ DJNZ R1,TSR1 SETB ; 然后拉高数据线 NOP NOP NOP MOV R0,#25H TSR2: JNB ,TSR3; 等待 DS18B20 回应 DJNZ R0,TSR2 LJMP TSR4 ;延时 TSR3: SETB FLAG1 ;置标志位,表示 DS1820 存在 CLR ; 检查到 DS18B20 就点亮 LJMP TSR5 TSR4: CLR FLAG1 ;清标志位,表示 DS1820 不存在 CLR LJMP TSR7 TSR5: MOV R0,#117 TSR6: DJNZ R0,TSR6 ;时序要求延时一段时间 TSR7: SETB RET ;读出转换后的温度值 GET_TEMPER: SETB LCALL INIT_1820; 先复位 DS18B20 JB FLAG1,TSS2 CLR RET ;判断 DS1820 是否存在?若 DS18B20 不存在则返回 TSS2: CLR ;DS18B20 已经被检测到!!!!!!!!!!!!!!!!!! MOV A,#0CCH ;跳过 ROM 匹配 LCALL WRITE_1820 MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820 ;这里

ds18b20温度传感器的使用方法 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人fy3986758
  • 文件大小0 KB
  • 时间2016-03-21
最近更新