久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機軟件(程序)復位

51單片機軟件(程序)復位

作者: 時間:2013-06-06 來源:網絡 收藏

POP ACC ; pop return address

POP ACC

;彈出PC

MOV SP,#30H ;復位后SP為07H ,這樣就會復位椎棧

MOV PSW,#00H ;清寄存器

CLR A ; push 0 as new

PUSH ACC ; return address to stack

PUSH ACC

;重置PC=0并壓到椎棧中

RETI ; execute return of interrupt

;程序又開始從0000H處開始運行,但寄存器內的值不確定!

用C51實現

方法1:

void(*SoftReset)();

SoftReset=0;

SoftReset();

解釋:利用函數型指針,使函數型指針指向的函數的入口地址為0。

方法2: 嵌入匯編

#pragma asm

LJMP 0FFF0h;//ljmp 0000h

#pragma endasm

方法3: 在C51編程過程中,用一個不存在函數,引起復位。

如下程序,編譯正常,但執行到 reset()處即復位了。其時

LCALL C:0000。

extern void rest(void); //實際并不存在。

void main()

{

rest(); //復位

}

方法4:如果有用看門狗,使用看門狗復位。

51單片機相關文章:51單片機教程




評論


相關推薦

技術專區

關閉