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

          新聞中心

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

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

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

          //輸出轉(zhuǎn)換溫度命令
          CONVERT_TEMPERATURE:
          LCALL DS18_START //調(diào)用初始化子程序
          MOV A,#0CCH //跳躍ROM指令
          LCALL DS18_SEND
          MOV A,#44H //溫度轉(zhuǎn)換
          LCALL DS18_SEND
          RET
          //讀?溫度數(shù)據(jù)
          GET_TEMPERATURE:
          LCALL DS18_START //調(diào)用初始化子程序
          MOV A,#0CCH //跳躍ROM指令
          LCALL DS18_SEND
          MOV A,#0BEH //從RAM中的數(shù)據(jù)
          LCALL DS18_SEND
          LCALL DELAY60US
          LCALL DS18_READ
          MOV TEMPL,A //將獲得數(shù)據(jù)的低八位存到TEMPL
          LCALL DS18_READ
          MOV TEMPH,A //將獲得數(shù)據(jù)的高八位存到TEMPH
          CLR DS18DQ //即復位。否則會一直讀到
          LCALL DELAY501US //暫存第九字節(jié)
          RET
          //計算獲得溫度值,便于現(xiàn)實
          CAL_TEMPERATURE:
          PUSH 07H //暫存,防止改變R7的數(shù)據(jù)
          CLR C //進位標志清零
          MOV R7,#04H //循環(huán)次數(shù)

          EX2: MOV A,TEMPH // 這些語句的作用是:
          RRC A // 整數(shù)位在:TEMPL中
          MOV TEMPH,A //?數(shù)位在:TEMPH中的高半
          MOV A,TEMPL
          RRC A
          MOV TEMPL,A
          DJNZ R7,EX2 //

          MOV A,TEMPH //
          RLC A //這些語句的作用是:
          RLC A //把TEMPH得高半移到低四位中
          RLC A
          RLC A //
          ANL A,#0FH //屏蔽高四位,保留低四位
          MOV DPTR,#TAB_TEMP //賦帶?數(shù)點的數(shù)值表的表首地址
          MOVC A,@A+DPTR
          MOV 30H,A //暫存該值,用于
          MOV A,TEMPL
          CLR C
          MOV B,#0AH
          DIV AB //分離整數(shù)位的高低四位
          MOV 32H,A //暫存十位
          MOV A,B
          ADD A,#10H
          MOV 31H,A //暫存?zhèn)€位
          POP 07H //恢復R7的值
          RET
          //寫數(shù)據(jù)子程序
          DS18_SEND:
          PUSH 06H //保護Rn的值
          PUSH 07H
          //以下語句是"寫 筆斃虻腦?
          SETB DS18DQ //寫時序是有DS18DQ的下降沿決定
          NOP //延時1us
          MOV R6,#08H //循環(huán)次數(shù),一個字節(jié)
          DS18_SEND1:
          CLR DS18DQ //拉低,產(chǎn)生下降沿
          MOV R7,#07 //延時大約15us
          DJNZ R7,$
          RRC A //把要寫入得數(shù)據(jù)的高位移到C中
          MOV DS18DQ,C //再把C的值賦給DS18DQ
          MOV R7,#30 //延時時間約為60us,只要大約45us即可
          DJNZ R7,$
          SETB DS18DQ //拉高準備,下次產(chǎn)生下降沿
          DJNZ R6,DS18_SEND1 //判斷循環(huán)次數(shù)夠了沒
          POP 07H //恢復Rn的數(shù)據(jù)
          POP 06H
          RET
          篇幅太大完整程序請從這里下載:http://www.51hei.com/ziliao/file/ds182051hei.asm

          本程序已經(jīng)測試成功。

          蜂鳴器相關文章:蜂鳴器原理

          上一頁 1 2 下一頁

          關鍵詞: DS18B20 讀取溫度 顯示 匯編程序

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();