新聞中心

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

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

作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
在和一人聊天時,遇到了一個問題,單片機(jī)復(fù)位的問題,實在是很高深啊,因為一般書里是不說的,所以上網(wǎng)看看,轉(zhuǎn)載于下:

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

本文引用地址:http://m.butianyuan.cn/article/201611/320633.htm

問題

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

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

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

答案

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

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

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

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

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

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

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

一點感慨:

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



評論


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

關(guān)閉