|
TEMPER_L EQU 36H ;存放讀出溫度低位數據
TEMPER_H EQU 35H ;存放讀出溫度高位數據
TEMPER_NUM EQU 60H ;存放轉換后的溫度值
FLAG1 BIT 00H
DQ BIT P3.2 ;一線總線控制端口
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
MOV SP,#70H
LCALL GET_TEMPER ;從DS18B20讀出溫度數據
LCALL TEMPER_COV ;轉換讀出的溫度數據并保存
LCALL SHUJU
LCALL HEX2BCD
LCALL LOOP
LCALL DISPLAY
LCALL TAB
SJMP $ ;完成一次數字溫度采集
;-------讀出轉換后的溫度值
GET_TEMPER:
SETB DQ ; 定時入口
BCD: LCALL INIT_1820
JB FLAG1,S22
LJMP BCD ; 若DS18B20不存在則返回
S22: LCALL DELAY1
MOV A,#0CCH ; 跳過ROM匹配------0CC
LCALL WRITE_1820
MOV A,#44H ; 發出溫度轉換命令
LCALL WRITE_1820
NOP
LCALL DELAY
LCALL DELAY
|
|