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单片机 软件程序复位
引用地址:
51单片机软件程序复位
推荐阅读最新更新时间:2024-03-16 14:56
基于51单片机的智能雨刷设计
一.硬件方案 本设计运用雨滴传感器感应雨量的大小,把感应信号输给单片机系统,然后通过软件控制雨刷电机根据相应的环境做出不同的转动。 主要由51单片机最小系统+步进电机+1602显示+湿度传感器+ADC0832芯片+按键组成;如图: 二.设计功能 (1)采用lcd1602液晶显示雨水量值。 (2)雨滴传感器检测雨水量,adc0832对雨滴传感器信号ad转换数字信号单片机处理。 (3)有手动模式和自动模式控制两种,手动模式实现开关操作,还可以通过按键调整速度。自动模式下根据雨水量自动控制步进电机的速度,低于下限步进电机停止工作,上限和下限之间步进电机1档(慢速)工作,大于上限步进电机2档(快速)工作。 (4)四个按键:设置、加
[单片机]
基于8051单片机开发的湿度计设计
在本文中,单片机开发工程师分享了一个基于8051单片机开发的湿度计,这个方案比较简单,以供单片机初学者学习。 湿度传感器也称为湿度计,在本单片机方案中,其电路可以以5%的精度感测20%至95%的相对湿度(RH),湿度信息可以显示在16×2 LCD显示屏上。另外,在本单片机方案中,还提供了一个继电器,也就是说当湿度超过某个跳变点时,该继电器将被激活,执行某些操作。 一、DHT11湿度传感器 DHT11是一款低成本的湿度兼温度传感器,具有数字输出。电容法用于感测湿度,而热敏电阻用于测量温度。传感器可以以5%的分辨率感测20%至95%的相对湿度。温度测量最高可达50°C,分辨率为2°C。与单片机的通信是通过单线进
[单片机]
8051单片机存储器地址分配
一、程序存储器空间 MCS-51单片机具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。 1、对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的使能端端必须接地。强制CPU从外部程序存储器读取程序。 2、对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。 8051片内有4kB的程序存储单元,其地址为0000H 0FFFH,单片机启动复位后,程序计数器的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储中有些特殊的单元,这
[单片机]
51单片机1602液晶程序
#include reg52.h #define Lcd_Data P0 sbit RS=P2^0; sbit RW=P2^1; sbit E=P2^2; sbit Busy=P0^7; sbit k1=P1^0; sbit k2=P1^1; sbit k3=P1^2; sbit k4=P1^3; sbit buzzer=P3^7; unsigned int hour,min,second,day,month,year; ////////定义的几个时间 unsigned char code Time = { Time: };////用于显示 unsigned char code num = { 0123456789ABC
[单片机]
51单片机与VB串行通信的实现
1.引言: 随着计算机系统的应用和微机网络的发展,各种控制设备之间的通信功能越来越显得重要。在设计的减振控制系统中,控制器(下位机)采用两片AT89C52单片机,分别用于对左右减振器实施控制,同时将测量的温度、电流、速度等信号按一定采样时间保存在E2PROM ATC256中。为了能测试控制器的工作情况,包括初始安装时的状况测试和读取历史记录并做测试诊断以及能根据参数变化情况进行故障诊断,为此,同时开发了通信系统,上位机采用便携式PC机,上、下位机之间通过MAX485芯片实现串行数据通信。
2.通信系统硬件电路设计 通信系统硬件电路设计的突出特点是,控制器的外围一改传统的并行扩展,而采用新型串行芯片进行串行总线扩展。与传统
[单片机]
教你如何 51单片机控制mg995舵机
这是我的小车雏形,还没完成,之前就一直卡在舵机控制部分,今天终于搞定了。接下来我就将我注意的所有部分说出来,和大家分享一下我的经验: 1 单片机,舵机,电源共地; 2 用两个稳压芯片进行供电,将电源分开来; 3 舵机信号端没有直接连接单片机IO口,我串了一个10K的电阻,也就是这一步之后我就可以控制我的舵机了。 之前听很多人说是信号端直接连IO口也可以控制的,但是我就是一直都不可以了,今天我就串了一个10K的电阻之后意外发现可以控制舵机了 所以我就发这个帖子出来,和大家分享,同时感谢那些帮我思考的人,感谢你们~~ 需要比较清楚的电路的人可以留言,如果我看需要的人很多的话我就传上来吧~~~ 基于大众的要求,要求资料,那我就把我
[单片机]
51单片机串口实验时波特率怎么调才合适
一般而言,波特率的高低与串口传输距离和使用环境有关,距离越远,波特率一般越低,使用环境干扰越大,波特率越低,如果是在同一块板上的串口通讯,可以做到很高,比如115200bps,另外最好使用11.0592M之类的晶振,这样标准波特率可以做到没有误差。 通过我的使用经验,一般RS232传输距离在1米以内的话,115200bps的波特率是没有什么问题的。10米以内的话9600bps肯定可以稳定传输(关键是要保证电压,也就是解决压降的问题。)。超过10米的话最好用485了。
[单片机]
MCS-51单片机与无线调制器的应用
GPS是目前技术上最成熟且已实用的一种定位系统,但是在GPS定位系统中,由于其是一个单向导航系统,他是把星历数据等传给地面接收机,可在许多具体应用时,例如在车辆调度系统中,一般都需要把利用GPS测得的信息数据传到调度中心,由于其系统由一个基准站和多个用户台组成,基准站与用户台之间的联系,即由基准站计算出的各种校正值发送到用户台,上边这一切都需要用到数据链来完成数据的传输。其中,数据链由调制解调器和电台组成。在无线数据传输系统中,调制解调器足一个关键部分,调制解调器(Modem)是将数据进行编码和调制,然后输入到电台发射出去,用户台将其接收下来,并将数据解调后,送入GPS接收机进行改正。本文介绍了单片机控制Modem的原理和方法。
[工业控制]