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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)復(fù)位的一些相關(guān)問題

          單片機(jī)復(fù)位的一些相關(guān)問題

          作者: 時(shí)間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          在和一人聊天時(shí),遇到了一個(gè)問題,單片機(jī)復(fù)位的問題,實(shí)在是很高深啊,因?yàn)橐话銜锸遣徽f的,所以上網(wǎng)看看,轉(zhuǎn)載于下:

          /////////////////////////////

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

          問題

          ////////////////////////////

          1、單片機(jī)要完成復(fù)位,為什么復(fù)位信號(hào)必須至少持續(xù)2個(gè)機(jī)器周期啊。
          2、復(fù)位期間單片機(jī)在做什么?主要是這2個(gè)機(jī)器周期內(nèi)在做什么。
          3、單片機(jī)上電之后復(fù)位之前,單片機(jī)在做什么?

          ////////////////////////////////////////////////////

          答案

          ////////////////////////////////////////

          1.復(fù)位信號(hào)要持續(xù)一定的時(shí)期,因?yàn)闄z測(cè)復(fù)位信號(hào)狀態(tài)首先需要一定的時(shí)間,其次是為了單片機(jī)狀態(tài)的穩(wěn)定。

          2.主要做的就是初始化每個(gè)寄存器,包括最重要的PC指針,不包括RAM,然后單片機(jī)從復(fù)位地址開始執(zhí)行程序。

          3.單片機(jī)上電后,上電復(fù)位信號(hào)使單片機(jī)被鎖定在復(fù)位狀態(tài)直到復(fù)位信號(hào)撤銷。復(fù)位信號(hào)一上電就有,但是這時(shí)單片機(jī)并不執(zhí)行復(fù)位操作,首先要等Vcc穩(wěn)定、然后晶振開始起振、振蕩穩(wěn)定后才執(zhí)行兩周期的復(fù)位操作(晶振沒起振CPU怎么操作啊)。

          因此單片機(jī)上電之后復(fù)位之前單片機(jī)不操作,狀態(tài)穩(wěn)定。開始復(fù)位操作時(shí)(振蕩穩(wěn)定后,也就是2周期開始)RESET信號(hào)仍然使單片機(jī)鎖定在復(fù)位狀態(tài),但CPU執(zhí)行PC指針、SFR等的復(fù)位操作。

          所以從上電到復(fù)位信號(hào)撤銷前,單片機(jī)的狀態(tài)一直是穩(wěn)定的,單片機(jī)程序跑飛是由于復(fù)位信號(hào)的保持時(shí)間小于這個(gè)過程所需的時(shí)間,也就是PC指針、SFR等還沒復(fù)位,復(fù)位信號(hào)就撤銷了而放任CPU執(zhí)行,從而導(dǎo)致程序跑飛、單片機(jī)混亂等現(xiàn)象。復(fù)位信號(hào)的保持時(shí)間跟復(fù)位電路的設(shè)計(jì)有關(guān)。

          //////////////////////////////////////////////////////////////

          一點(diǎn)感慨:

          什么東西,往深了一挖總能挖出寶來……希望自己做一個(gè)往深了挖的人



          評(píng)論


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