您的位置 首页 发布

51单片机软件程序复位

51单片机软件复位汇编代码POPACC;popreturnaddressPOPACC;弹出PCMOVSP,#30H…

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:假如有用看门狗,运用看门狗复位。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/fabu/265015.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部