logo资料库

51单片机软件(程序)复位.pdf

第1页 / 共1页
资料共1页,全文预览结束
51单片机软件(程序)复位 单片机软件(程序)复位 本文主要简单介绍了51单片机软件的复位 51单片机软件复位汇编代码 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:如果有用看门狗,使用看门狗复位。
分享到:
收藏