LCALL READ_18200 MOV 37H,A ; 将读出的温度数据保存 RET
; ***************************************** ; 写DS18B20的程序 ; ***************************************** WRITE_1820: MOV R2,#8 CLR C WR1:CLR P2.0 NOP NOP NOP NOP RRC A MOV P2.0,C MOV R3,#35 DJNZ R3,$ SETB P2.0 NOP DJNZ R2,WR1 SETB P2.0 RET ; *****************************************
; 读DS18B20的程序,从DS18B20中读出两个字节的温度数据 ; ***************************************** READ_18200: MOV R4,#2 ; 将温度高位和低位DS18B20中读 RE00:MOV R2,#8 RE01:CLR C SETB P2.0 NOP NOP CLR P2.0 NOP NOP NOP SETB P2.0 NOP NOP MOV C,P2.0 MOV R3,#35 RE20: DJNZ R3,RE20 RRC A DJNZ R2,RE01 MOV @R1,A DEC R1 DJNZ R4,RE00 RET ; *****************************************
; 将从DS18B20中读出的温度数据进行转换 ; ***************************************** TEMPER_COV: MOV A,#0F0H ANL A,36H ; 舍去温度低位中小数点 SWAP A MOV 37H,A MOV A,36H JNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值 INC 37H TEMPER_COV1: MOV A,35H ANL A,#07H SWAP A ADD A,37H MOV 37H,A ; 保存变换后的温度数据 LCALL BIN_BCD RET ; ***************************************** ; 将16进制的温度数据转换成压缩BCD码 ; 38H中放百位,37十位,36个位 ; ***************************************** BIN_BCD: MOV 39H,37H MOV&nb
首页 上一页 4 5 6 7 8 下一页 尾页 7/8/8
WORD格式全文下载链接(充值:元)