文档详情

单线数字温度传感器DS18B20汇编程序.doc

发布:2018-04-24约5.12千字共4页下载文档
文本预览下载声明
QQ : 1962269986 功能说明: 使用单线数字温度传感器DS18B20,把温度信号直接转换成数字信号输入单片机,经单片机处理后,将实时温度显示在两个7段LED数码管上。 01 A_BIT EQU 20H ;存放个位数变量 02 B_BIT EQU 21H ;存放十位数变量 03 FLAG EQU 38H ;DS18B20是否存在标志 04 DQ EQU P2.5 ;DQ引脚由P2.5控制 05 MAIN: ; 06 ACALL RE_TEMP ;调用读取温度子程序 07 ACALL TURN ;数据转化子程序 08 ACALL DISPLAY ;显示子程序 09 JMP MAIN ;循环 主程序 10 11 RE_TEMP: ;初始化及读取温度值 12 SETB DQ 13 ACALL RESET_1820 ;调用复位子程序 14 JB FLAG, ST ;判断DS1820是否存在? 15 RET 16 ST: ;DS18B20存在 17 MOV A,#0CCH ;跳过ROM匹配 18 ACALL WRITE_1820 ;调用写入数据子程序 19 MOV A,#44H ;发出温度转换命令 20 ACALL WRITE_1820 ;调用写入数据子程序 21 ACALL RESET_1820 ;准备读温度前先复位 22 MOV A,#0CCH ;跳过ROM匹配 23 ACALL WRITE_1820 ;调用写入数据子程序 24 MOV A,#0BEH ;发出读温度命令 25 ACALL WRITE_1820 ;调用写入数据子程序 26 ACALL READ_1820 ;调用读取数据子程序 设置传感器 27 RET 读取温度数据 28 29 RESET_1820: ;复位(有具体的时序要求) 30 SETB DQ 31 NOP 32 CLR DQ 33 ;―――――――――――― 34 ;主机发出复位低脉冲 35 MOV R1,#3 36 DLY: MOV R0,#107 37 DJNZ R0,$ 38 DJNZ R1,DLY 39 ;―――――――――――― 40 ;然后拉高数据线 41 SETB DQ 42 NOP 43 NOP 44 NOP 45 ;―――――――――――― 46 ;等待DS18B20回应 47 MOV R0,#25H 48 T2: JNB DQ ,T3 49 DJNZ R0, T2 50 JMP T4 51 ;―――――――――――― 52 ;标志位FLAG=1,表示DS1820存在 53 T3: SETB FLAG 54 JMP T5 55 ;―――――――――――― 56;标志位FLAG=0,表示DS1820不存在 57 T4: CLR FLAG 58 JMP T7 59 ;―――――――――――― 60 ;时序要求延时一段时间 61 T5: MOV R0,#117 62 T6: DJNZ R0,T6 63 ;―――――――――――― 64 T7: SET
显示全部
相似文档