<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DS18B20讀取溫度并顯示-匯編程序

          DS18B20讀取溫度并顯示-匯編程序

          作者: 時間:2012-10-31 來源:網(wǎng)絡(luò) 收藏

          *
          程序效果:通過值,對應(yīng)的溫度值
          程序重在理解時序,及延時時間
          */

          DS18DQ EQU P1.3 //P1.3與DS18DQ等同,便于理解
          SPEAKER EQU P2.0 //驅(qū)動蜂鳴器
          TEMPH EQU 29H //保存讀出溫度的低8位
          TEMPL EQU 28H //保存讀出溫度的高8位
          DS18FLAG EQU 40H //設(shè)置標志
          ORG 0000H
          LJMP START
          ORG 0030H
          START: MOV 30H,#00 //設(shè)置初始值
          MOV 31H,#00
          MOV 32H,#00
          START1: LCALL DS18_GF //設(shè)置的工作方式
          LCALL CONVERT_TEMPERATURE //輸出轉(zhuǎn)換溫度命令
          LCALL DELAY750MS //延時750ms
          LCALL GET_TEMPERATURE //獲?溫度數(shù)據(jù)
          LCALL CAL_TEMPERATURE //計算溫度數(shù)值
          LCALL DISPLAY //調(diào)用,防止掉顯
          LJMP START1 //無限循環(huán)
          //初始化子程序
          DS18_START:
          PUSH 07H //保存R7的值,防止改變R7的數(shù)值
          SETB DS18DQ //將數(shù)據(jù)線拉高
          NOP //延時1us
          CLR DS18DQ //將數(shù)據(jù)線拉低
          MOV R7,#0 //延時大約512us
          DJNZ R7,$
          SETB DS18DQ //將數(shù)據(jù)線拉高
          MOV R7,#40
          DS18_START1: //延時大約160us
          JNB DS18DQ,DS18_START2 //檢查是否工作正常
          DJNZ R7,DS18_START1
          SETB DS18FLAG //工作不正常
          CLR SPEAKER //驅(qū)動蜂鳴器,報警
          DS18_START2:
          CLR DS18FLAG
          MOV R7,#100 //延時月200us
          DJNZ R7,$
          POP 07H //恢復R7的值
          RET
          //設(shè)置DS18B20工作方式
          DS18_GF:CLR DS18FLAG //清除標志
          LCALL DS18_START //調(diào)用初始化子程序
          MOV A,#0CCH //跳躍ROM指令
          LCALL DS18_SEND //
          MOV A,#4EH //向RAM寫數(shù)據(jù)
          LCALL DS18_SEND
          MOV A,#75
          LCALL DS18_SEND
          MOV A,#0
          LCALL DS18_SEND
          MOV A,#7FH //設(shè)置工作方式
          LCALL DS18_SEND
          CLR DS18DQ //釋放總線
          LCALL DELAY500US //延時500us
          LOOP: LCALL CONVERT_TEMPERATURE //調(diào)用轉(zhuǎn)子程序
          MOV R5,#80
          LOOP1: LCALL DISPLAY //調(diào)用防止掉顯,同時等待轉(zhuǎn)換完成
          DJNZ R5,LOOP1
          LCALL GET_TEMPERATURE //獲?轉(zhuǎn)換值
          LCALL CAL_TEMPERATURE //計算溫度值
          LJMP LOOP
          RET

          蜂鳴器相關(guān)文章:蜂鳴器原理

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();