日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 51單片機實驗板DS18B20測溫程序

          51單片機實驗板DS18B20測溫程序

          作者: 時間:2012-12-05 來源:網(wǎng)絡 收藏

          ;-------------------------------------------------
          ;寫的子程序(有具體的時序要求)
          WRITE_1820:MOV R2,#8 ;一共8位數(shù)據(jù)
          CLR C
          WR1:CLR DQ
          MOV R3,#6
          DJNZ R3,$
          RRC A
          MOV DQ,C
          MOV R3,#23
          DJNZ R3,$
          SETB DQ
          NOP
          DJNZ R2,WR1
          SETB DQ
          RET

          ;-------------------------------------------------
          ;讀的程序,從中讀出兩個字節(jié)的溫度數(shù)據(jù)
          READ_1820:MOV R4,#2 ;將溫度高位和低位從DS18B20中讀出
          MOV R1,#DI_8BIT ;低位存入DI_8BIT,高位存入GAO_8BIT
          RE0:MOV R2,#8 ;數(shù)據(jù)一共有8位
          RE1:CLR C
          SETB DQ
          NOP
          NOP
          CLR DQ
          NOP
          NOP
          NOP
          SETB DQ
          MOV R3,#9
          RE2:DJNZ R3,RE2
          MOV C,DQ
          MOV R3,#23
          RE3:DJNZ R3,RE3
          RRC A
          DJNZ R2,RE1
          MOV @R1,A
          INC R1
          DJNZ R4,RE0
          /* DEC R1
          MOV A,GAO_8BIT
          XCHD A,@R1
          XCH A,@R1
          MOV GAO_8BIT,A
          MOV A,@R1
          SWAP A
          MOV @R1,A */
          RET
          ;-------------------------------------------------
          ;讀出后轉換的溫度值
          ZHUANHUAN:
          //SETB DQ
          LCALL INIT_1820 ;先復位DS18B20
          JB F0,ZH1
          RET ;判斷DS1820是否存在?若DS18B20不存在則返回
          ZH1:MOV A,#0CCH ;跳過ROM匹配
          LCALL WRITE_1820
          MOV A,#44H ;發(fā)出溫度轉換命令
          LCALL WRITE_1820
          LCALL DISPLAY ;等待AD轉換結束,12位的話750微秒
          LCALL INIT_1820 ;準備讀溫度前先復位
          MOV A,#0CCH ;跳過ROM匹配
          LCALL WRITE_1820
          MOV A,#0BEH ;發(fā)出讀溫度命令
          LCALL WRITE_1820
          LCALL READ_1820
          RET
          ;-------------------------------------------------
          ;數(shù)據(jù)處理子程序
          CHULI:
          MOV P0,GAO_8BIT
          MOV P2,DI_8BIT
          MOV A,GAO_8BIT
          JB ACC.7,FU
          MOV A,DI_8BIT
          MOV B,#16
          DIV AB

          MOV 35H,A ;將DI_8BIT的高四位右移四位,存入35H中(溫度值)
          MOV A,B ;將TEMPER_L的低四位X10/16得小數(shù)后一位數(shù).
          MOV B,#10
          MUL AB
          MOV B,#16
          DIV AB
          MOV 36H,A ;將小數(shù)后一位數(shù).存入36H中
          MOV A,GAO_8BIT ;TEMPER_H中存放高8位數(shù),權重16
          MOV B,#16
          MUL AB
          ADD A,35H ;35H中存入溫度值的整數(shù)部分
          MOV B,#10
          DIV AB
          MOV GE_BIT,B ;個位存入30H中
          MOV B,#10 ;
          DIV AB ;
          MOV SHI_BIT,B ;十位存入31H中
          MOV B,#10 ;
          DIV AB ;
          MOV BAI_BIT,B ;百位存入32H中
          MOV A,GAO_8BIT
          MOV 37H,#10H ;
          JB ACC.7,EXIT
          MOV 37H,#00H
          SJMP EXIT
          FU:
          MOV A,DI_8BIT
          CPL A
          ADD A,#1
          MOV B,#16
          DIV AB
          MOV 35H,A ;將DI_8BIT的高四位右移四位,存入35H中(溫度值)
          MOV A,B ;將TEMPER_L的低四位X10/16得小數(shù)后一位數(shù).
          MOV B,#10
          MUL AB
          MOV B,#16
          DIV AB
          // MOV 36H,A ;將小數(shù)后一位數(shù).存入36H中
          // MOV A,GAO_8BIT ;TEMPER_H中存放高8位數(shù),權重16
          MOV B,#16
          MUL AB
          ADD A,35H ;35H中存入溫度值的整數(shù)部分
          MOV B,#10
          DIV AB
          MOV GE_BIT,B ;個位存入30H中
          MOV B,#10 ;
          DIV AB ;
          MOV SHI_BIT,B ;十位存入31H中
          MOV B,#10 ;
          DIV AB ;
          MOV BAI_BIT,B ;百位存入32H中
          MOV A,GAO_8BIT
          MOV 37H,#10H ;
          JB ACC.7,EXIT
          MOV 37H,#00H
          SJMP EXIT
          EXIT:RET

          51單片機相關文章:51單片機教程




          評論


          相關推薦

          技術專區(qū)

          關閉