正在加载图片...
SETB PSW.3 :设置工作寄存器当前所在的区域 CLREA 使用ds1820一定要禁止任何中断产生 LCALL INT 调用初使化子程疗 MOV A,#0CCH LCALL WRITE :送入跳过ROM命令 MOV A 44H LCALL WRITE :送入温度转换命今 LCALL INT 温度转换完全,再次初使化ds1820 MOV A.#OCCH LCALL WRITE :送入跳过ROM命令 MOV A#OBEH LCALL WRITE 送入读温度暂存器命令 LCALL READ MOV R7.A 读出温度值低字节存入R7 LCALL READ MOV R6.A :读出谩度值高字节存入R6 SETB EA RET INT :初始化ds1820子程序 CLREA LO:CLRP1.6 ds1820总线为低复位电平 MOVR2,#200 LI:CLRP1.6 DJNZ.R2.LI 总线复位电平保持400us SETB P1.6 :释放ds1820总线 MOV R2.#30 L4:DINZ R2.L4 :释放ds1820总线保持60us CLRC :清存在信号 ORLC.P1.6 JC LO 存在吗?不存在则重新来 MOV R6.#80 L5:ORL C,P1.6 JCL3 DJNZ R6.L5 L3:MOVR2,#240 L2:DJNZ R2,L2 RET WRITE :向ds1820写操作命令子程序 CLR EA MOV R3.#8 ,写入ds1820的bit数,一个字节8个bit WRI:SETB P1.6SETB PSW.3 ;设置工作寄存器当前所在的区域 CLR EA ;使用 ds1820 一定要禁止任何中断产生 LCALL INT ;调用初使化子程序 MOV A,#0CCH LCALL WRITE ;送入跳过 ROM 命令 MOV A, #44H LCALL WRITE ;送入温度转换命令 LCALL INT ;温度转换完全,再次初使化 ds1820 MOV A,#0CCH LCALL WRITE ;送入跳过 ROM 命令 MOV A,#0BEH LCALL WRITE ;送入读温度暂存器命令 LCALL READ MOV R7,A ;读出温度值低字节存入 R7 LCALL READ MOV R6,A ;读出谩度值高字节存入 R6 SETB EA RET INT: ;初始化 ds1820 子程序 CLR EA L0:CLR P1.6 ;ds1820 总线为低复位电平 MOV R2,#200 L1:CLR P1.6 DJNZ R2,L1 ;总线复位电平保持 400us SETB P1.6 ;释放 ds1820 总线 MOV R2,#30 L4:DJNZ R2,L4 ;释放 ds1820 总线保持 60us CLR C ;清存在信号 ORL C,P1.6 JC L0 ;存在吗?不存在则重新来 MOV R6,#80 L5:ORL C,P1.6 JC L3 DJNZ R6,L5 SJMP L0 L3:MOV R2,#240 L2:DJNZ R2,L2 RET WRITE: ;向 ds1820 写操作命令子程序 CLR EA MOV R3,#8 ;写入 ds1820 的 bit 数,一个字节 8 个 bit WR1:SETB P1.6
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有