正在加载图片...
WR1:SETBP1.6 MOV R4.#8 RRCA 一个字节data(A)分成8个bin环移给C CLR P1.6 开始写入ds1820总线要处于复位(低)状态 WR2:DJNZR4,WR2 :ds1820总线复位保持16us MOV PL6C :写入一个bi MOV R4 #20 WR3-DINZ RA WR3 :等待40us DJNZR3.WRI 写入下 个bi SETB P1.6 :重新释放ds1820总线 RET READ CLR EA MOV R6,#8 连续读8个bit REI:CLR P16 ;读前总线保持为低 MOV R4.#4 NOP SETBP1.6 开始读,总线释放 RE2:DJNZR4.RE2 持续8u MOV C.P1.6 ;从ds1820总线读得一个bit RRCA :把读得的位值环移给A MOVR5#30 RE3:DJNZR5,RE3 持续60s DJNZ R6,RE1 :读下 b SETB P1.6 :重新释放ds1820总线 RET END 2、温度转换和读取 获取单个ds1820转化的温度值的应用程序,P1.6接ds1820 ORG 0000H AJMP MAIN 0RG0020H MAIN: MOV SP#60H LCALL GET TEME SJMPS GET_TEMP: CLR PSW.4 WR1:SETB P1.6 MOV R4,#8 RRC A ;把一个字节 data(A)分成 8 个 bit 环移给 C CLR P1.6 ;开始写入 ds1820 总线要处于复位(低)状态 WR2:DJNZ R4,WR2 ;ds1820 总线复位保持 16us MOV P1.6,C ;写入一个 bit MOV R4,#20 WR3:DJNZ R4,WR3 ;等待 40us DJNZ R3,WR1 ;写入下一个 bit SETB P1.6 ;重新释放 ds1820 总线 RET READ: CLR EA MOV R6,#8 ;连续读 8 个 bit RE1:CLR P1.6 ;读前总线保持为低 MOV R4,#4 NOP SETB P1.6 ;开始读 总线释放 RE2:DJNZ R4,RE2 ;持续 8us MOV C,P1.6 ;从 ds1820 总线读得一个 bit RRC A ;把读得的位值环移给 A MOV R5,#30 RE3:DJNZ R5,RE3 ;持续 60us DJNZ R6,RE1 ;读下一个 bit SETB P1.6 ;重新释放 ds1820 总线 RET END 2 温度转换和读取 ;|-| ;| 获取单个 ds1820 转化的温度值的应用程序,P1.6 接 ds1820 | ;|-| ORG 0000H AJMP MAIN ORG 0020H MAIN: MOV SP,#60H LCALL GET_TEMP SJMP $ GET_TEMP: CLR PSW.4
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有