No.69535 作者:guest 邮件:guest@guest.com ID:6 登陆:16560次 文章数:7648篇 最后登陆IP:219.68.9.43 最后登陆:2005/5/20 1:37:44 注册:2003/3/10 16:21:00 财富:35062 发帖时间:2004/12/19 11:21:19 发贴者IP:222.69.22.238 标题:guest:关于DS18B20的问题。 摘要:No.69535关于DS18B20的问题。 我用的是外部电源供电方式,但屏幕好像没有输出温度,我没有仿真器仿真,哪位高手能指点一二,谢谢! TEMP_L EQU 36H TEMP_H EQU 35H TEMP_NUM EQU 60H FLAG1 BIT 01H DQ BIT P3.3 ORG 00 AJMP MAIN DELAY1: ;-------------------等待延时80uS MOV R2,#40 DJNZ R2,$ RET RST_P: ;-------------------复位和接收脉冲 CLR DQ MOV R2,#250 ;delay 500 uS DJNZ R2,$ SETB DQ MOV R2,#10 ;delay 20 uS DJNZ R2,$ presence_pulse: JB DQ,$ ;Rx presence pulse JNB DQ,NEXT1 MOV TEMP_NUM,#0 LJMP DISP NEXT1: RET SENT_1: ;发送命令8位 MOV R1,#8 CLR C ROLL1: RRC A JC W_BIT1 CLR DQ SJMP W_BIT0 W_BIT1:SETB DQ W_BIT0: LCALL DELAY1 DJNZ R1,ROLL1 RET TEMP_T: ;温度转换,在外接电源情况下 JNB DQ,$ RET READ_1: ;读8位数到R7所指的地址 MOV R1,#8 MOV A,#0 CLR C ROLL2: JB DQ,R_BIT1 CLR C RRC A SJMP R_BIT0 R_BIT1:SETB C R_BIT0: LCALL DELAY1 DJNZ R1,READ_1 MOV @R0, A LCALL DELAY1 RET ;-------------------将从DS18B20中读出的温度数据进行转换 TEMP_COV: MOV A,#0F0H ANL A,TEMP_L ; 舍去温度低位中小数点后的四位温度数值 SWAP A MOV TEMP_NUM,A MOV A,TEMP_L JNB ACC.3,TEMP_COV1 ; 四舍五入去温度值 INC TEMP_NUM TEMP_COV1: MOV A,TEMP_H ANL A,#07H SWAP A ORL A,TEMP_NUM MOV TEMP_NUM,A ; 保存变换后的温度数据 LCALL BIN_BCD RET ;-------------------将16进制的温度数据转换成压缩BCD码 BIN_BCD: MOV DPTR,#TEMP_TAB ......
>>返回讨论的主题
|