No.106316 作者:cx198479 邮件:cx198479@163.com ID:79092 登陆:1次 文章数:1篇 最后登陆IP:222.94.32.87 最后登陆:2007/5/23 21:15:30 注册:2007/5/23 21:14:08 财富:105 发帖时间:2007/5/23 21:15:30 发贴者IP:222.94.32.87 标题:cx198479:为什么我的温度一直显示为17.4度 摘要:No.106316为什么我的温度一直显示为17.4度 我用的s52单片机+DS18B20传感器+ZLG7289A显示芯片~~~结果8段数码管一直稳定显示为17.4度 主程序如下: TEMPL DATA 26H TEMPH DATA 27H TEMPHC DATA 28H TEMPLC DATA 29H SEND_BUF EQU 3AH ;发送缓冲 DELAYJ EQU 3BH ;循环计数器 TEMPHEAD EQU 33H TEMPDIN BIT P3.7 CS BIT P2.0 DIO BIT P2.2 CLK BIT P2.1 F BIT P2.7 ; ;********************************* ;中断向量区 ;********************************* ; ORG 0000H LJMP START ; ;********************************* ; 系统初始化 ;********************************* ORG 0100H START: MOV SP, #60H CLSMEN: MOV R0, #40H MOV R1, #80H CLSMEN1: MOV @R0, #00H INC R0 DJNZ R1, CLSMEN1 MAIN: LCALL INITDS18B20 ;DS18B20复位 LCALL LONG_DELAY LCALL LONG_DELAY CPL F LCALL LONG_DELAY LCALL LONG_DELAY LCALL READTEMP1 ;读暂存器 LCALL CONVTEMP ;计算温度处理 LCALL DISPBCD LCALL READTEMP LCALL DISPLAY ;调用显示程序 NOP NOP NOP AJMP MAIN ; INITDS18B20: SETB TEMPDIN NOP NOP CLR TEMPDIN MOV R6,#0A0H DJNZ R6,$ MOV R6,#0A0H DJNZ R6,$ SETB TEMPDIN MOV R6,#32H DJNZ R6,$ MOV R6,#3CH LOOP18B20: MOV C,TEMPDIN JC INITDS18B20OUT DJNZ R6,LOOP18B20 MOV R6,#064H DJNZ R6,$ SJMP INITDS18B20 RET INITDS18B20OUT:SETB TEMPDIN RET ;****************************** ;读DS18B20的程序 ;***************************** READDS18B20: MOV R7,#08H SETB TEMPDIN NOP NOP READDS18B20LOOP: CLR TEMPDIN NOP NOP NOP SETB TEMPDIN MOV R6,#07H DJNZ R6,$ MOV C,TEMPDIN MOV R6,#3CH DJNZ R6,$ RRC A DJNZ R7,READDS18B20LOOP MOV R6,#3CH DJNZ R6,$ RET ; ;*********************************** ;写DS18B20的程序 ;*********************************** WRITEDS18B20: MOV R7,#08H SETB TEMPDIN NOP NOP WRITEDS18B20LOP: CLR TEMPDIN MOV R6,#07 DJNZ R6,$ RRC A MOV TEMPDIN,C MOV R6,#34H DJNZ R6,$ SETB TEMPDIN DJNZ R7,WRITEDS18B20LOP SETB TEMPDIN RET ; ;************************************* ;READ TEMP ;************************************* ; READTEMP: MOV R6,#14H DL5:MOV R7,#19H DL6:DJNZ R7,DL6 DJNZ R6,DL5 LCALL INITDS18B20 MOV A,#0CCH LCALL WRITEDS18B20 MOV R6,#34H DJNZ R6,$ MOV A,#44H LCALL WRITEDS18B20 MOV R6,#34H DJNZ R6,$ RET ; READTEMP1: MOV R6,#14H DL7:MOV R7,#19H DL8:DJNZ R7,DL8 DJNZ R6,DL7 LCALL INITDS18B20 MOV A,#0CCH LCALL WRITEDS18B20 MOV R6,#34H DJNZ R6,$ MOV A,#0BEH LCALL WRITEDS18B20 MOV R6,#34H DJNZ R6,$ MOV R5,#09H MOV R0,#TEMPHEAD MOV B,#00H READTEMP2:LCALL READDS18B20 MOV @R0,A INC R0 READTEMP21: LCALL CRC8CAL DJNZ R5,READTEMP2 MOV A,B JNZ READTEMPOUT MOV A,TEMPHEAD+0 MOV TEMPL,A MOV A,TEMPHEAD+1 ......
>>返回讨论的主题
|