微控制器的軟體復位分析 C語言

2021-04-20 13:56:18 字數 634 閱讀 4553

在微控制器的軟體抗干擾原理中,常常採用軟體復位的方法,以下是兩種常用的軟體復位程式:

1、常用軟體復位程式

void reset(void)

彙編碼:

我們來分析一下:

(*)()是函式指標的強制轉換

(*(void(*)())0x0000)()就是將函式的入口位址強制指向0x0000處,即進行了軟復位。

它的缺點是不能在中斷子程式中呼叫,因為這句指令僅僅使pc指標指向0x0000處,而並沒有清除中斷標誌位。

2、可以在中斷程式中呼叫的軟體復位程式

void reset(void)

;(*((void(*)(void))(rst)))();

}彙編碼:

我們來分析一下:

程式中將**當作陣列的資料來儲存。

rst是程式**的首位址

(void(*)(void))是函式指標的強制轉換

(void(*)(void))(rst))是將陣列名rst強制轉換成乙個無引數無返回值的函式的指標,指向rst的首位址,只需呼叫(*((void(*)(void))(rst)))()即可將陣列中的資料當作函式**來執行。

由組合語言可知,這段程式可以清除掉中斷標誌位(使用了reti指令),因此該段**可以在中斷子程式中執行。

微控制器上電復位時間 微控制器的復位

一 復位電路 剛剛接通電源的微控制器內部處於不穩定的狀態,cpu無法正常運轉。因此,就需要進行微控制器狀態初始化,這就叫做復位。微控制器帶有復位訊號輸入引腳,可以將這個訊號調至低電平狀態後讓微控制器復位。也就是說通過輸入復位訊號來徹底叫醒微控制器進入工作狀態。接下來講解一下復位的時序 如下圖 只有在...

51微控制器的復位引腳 51微控制器復位電路工作原理

51微控制器要復位只需要在第9引腳接個高電平持續2us就可以實現,那這個過程是如何實現的呢?在微控制器系統中,系統上電啟動的時候復位一次,當按鍵按下的時候系統再次復位,如果釋放後再按下,系統還會復位。所以可以通過按鍵的斷開和閉合在執行的系統中控制其復位。開機的時候為什麼為復位在電路圖中,電容的的大小...

51微控制器的復位引腳 51微控制器復位後的狀態

微控制器的復位操作使微控制器進入初始化狀態,其中包括使程式計數器pc 0000h,這表明程式從0000h位址單元開始執行。微控制器冷啟動後,片內ram為隨機值,執行中的復位操作不改變片內ram區中的內容,21個特殊功能暫存器復位後的狀態為確定值,見下表。值得指出的是,記住一些特殊功能暫存器復位後的主...