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

来源:本站
导读:目前正在解读《51单片机软件(程序)复位》的相关信息,《51单片机软件(程序)复位》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《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:如果有用看门狗,使用看门狗复位。

提醒:《51单片机软件(程序)复位》最后刷新时间 2024-03-14 01:11:03,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《51单片机软件(程序)复位》该内容的真实性请自行鉴别。