DS18B20的工作编汇语言??

来源:百度知道 编辑:UC知道 时间:2024/05/14 07:03:48
用到单片机
开始--初始化DS18B20--发搜索ROM命令--读在线DS18B20序列号--存在一个DS18B20?(Y转开始)N--初始化DS18B20--发跳过
ROM命令

假如DS18B20接在单片机P0.0引脚,可以写下面的初始化程序,你可以自己改:
INIT_1820:
SET P0.0;
NOP
CLR P0.0;主机发出537微秒的复位低脉冲
MOV R1,#2
TSR1:
MOV R0,#250
DJNZ R0,$
DJNZ R1,TSR1
SETB P0.0;然后拉高数据线
NOP
NOP
NOP
MOV R0,#25H
TSR2:
JNB P0.0,TSR3;等待DS18B0响应
DJNZ R0,TSR2
LJMP TSR4
TSR3:
SETB FLAG1;置标志位,表示DS18B20存在
LJMP STR5
TSR4:
CLR FLAG1;清标志位,表示DS18B20不存在
LJMP STR7
TSR5:
MOV R0,#120
TSR6:
DJNZ R0,TSR6;时序要求延时一段时间
TSR7:
SETB P0.0
RET