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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > Keil C51精確延時程序設計

          Keil C51精確延時程序設計

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

          光標為當前程序的停止處,左側(cè)的寄存器窗口可以看到一些寄存器名稱及其值??梢酝ㄟ^設置斷點的功能,每遇到斷點,程序會自動停止在斷點處。“sec”中數(shù)據(jù)的變化即為程序執(zhí)行處到斷點處所需的時間。對上述程序?qū)帱c設置在“P1=P1^0x01”代碼處,然后點擊全速運行可以得表2所示。

          本文引用地址:http://www.ex-cimer.com/article/170502.htm

          g.JPG


          從表2可以看出,delay函數(shù)執(zhí)行的時間△t=2 391-389=2 002μs,與理論分析結(jié)果一樣。

          3 應用實例
          DS18B20是一款單總線數(shù)字式溫度傳感器,對其控制必須按照嚴格的時序要求,有3個重要時序,分別是初始化、讀以及寫時序,時序圖如圖3所示。

          h.JPG


          由圖3可知,涉及到程序的要求為:
          初始化。(1)將總線低480~960μs,然后釋放總線。(2)DS18B20等待15~60μs,然后返回低電平并持續(xù)60~240μs的存在脈沖。
          寫時序。(1)將總線置低電平并且持續(xù)15μs后發(fā)送數(shù)據(jù)的某一位。(2)60~120μs然后將總線拉高并持續(xù)至少1μs的時間后開始下一次發(fā)送。
          讀時序。(1)將總線置低電平,并且持續(xù)至少1μs,然后釋放總線。(2)釋放總線后15μs內(nèi)讀取并處理數(shù)據(jù)。(3)處理數(shù)據(jù)后,保證第一個步驟到延時結(jié)束時間至少60μs后為電阻上拉狀態(tài)。
          采用延時程序的設計方法,利用for循環(huán)編寫delay函數(shù)和_nop_()函數(shù)控制DS18B20。
          通過以上延時程序的控制方法,DS18B20穩(wěn)定實現(xiàn)了溫度采集。充分說明了高效的延時,在開發(fā)一些需要使用到延時程序時,可以先用 先設計好延時程序,然后利用以上方法進行分析計算,最后直接調(diào)用,可節(jié)省大量的時間、提高CPU的使用效率。

          4 結(jié)束語
          具有強大的功能,只要利用合理,可以給開發(fā)者節(jié)省大量的時間,從而提高開發(fā)效率。另外在設計延時程序的時候,應該綜合考慮各種延時程序的特點,以優(yōu)化CPU的使用效率。

          c語言相關文章:c語言教程


          塵埃粒子計數(shù)器相關文章:塵埃粒子計數(shù)器原理
          晶振相關文章:晶振原理
          燃氣報警器相關文章:燃氣報警器原理

          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(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); })();