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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MCS51匯編精確延時程序分析

          MCS51匯編精確延時程序分析

          作者: 時間:2016-11-24 來源:網絡 收藏
          將以12MHZ晶振為例,詳細講解MCS-51單片機匯編程序延時的精確算法。

          指令周期、機器周期與時鐘周期
          時鐘周期:也稱為振蕩周期,一個時鐘周期 = 晶振的倒數。
          若干個時鐘周期組成一個機器周期,用來完成一個基本操作。機器/總線周期是CPU通過總線與外部邏輯(存儲器或I/O端口)進行一次通訊所需的時間。
          指令周期由若干個機器周期組成,CPU執(zhí)行一條指令所需的時間。指令不同,所需的機器周期也不同。

          MCS-51單片機的一個機器周期 = 6個狀態(tài)周期 = 12個時鐘周期。
          MCS-51單片機的指令有單字節(jié)、雙字節(jié)和三字節(jié)的,它們的指令周期不盡相同,一個單周期指令包含一個機器周期,即12個時鐘周期,所以一條單周期指令被執(zhí)行所占時間為12*(1/12000000)=1μs。

          1秒延時程序:
          DEL:
          MOV R7,#10
          DEL1:
          MOV R6,#200
          DEL2:
          MOV R5,#248
          NOP
          DJNZ R5,$
          DJNZ R6,DEL2
          DJNZ R7,DEL1
          RET
          延時機器周期數 = [(2*第一層循環(huán)+3)*第二層循環(huán)+3]*第三層循環(huán)+3
          其中3,其一是MOV R7,#10貢獻的,其二是RET貢獻的。
          第一層循環(huán)為最內循環(huán)。
          未考調用時間,單片機小精靈里認為調用時間固定為2個機器周期。
          NOP機器周期數 = 第一層循環(huán) * 第二層循環(huán)
          結果為1000031us = 1.000031s


          關鍵詞: MCS51匯編精確延

          評論


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