|
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
|
|