51单片机复位的方法有哪些 浅谈51单片机复位

电子说

1.3w人已加入

描述

  本文主要是关于51单片机复位的相关介绍,并着重对51单片机复位方法及其原理进行了详尽的阐述。

  为什么需要单片机复位

  这就好比开启了看门狗但没有喂狗

  单元负载能力不足

  电源不稳定

  干扰

  程序错误导致软件指令复位

  还有最重要的:内存溢出,如下:

  在只有128byte内存的单片机里面定义过多的全局变量并且其中有指针变量的话,非常容易出现干扰到堆栈指针SP,导致程序异常。

  IO接口只能通过直接访问高128字节才能写入或读出数值,无法通过指针等其他途径访问。

  所以当前情况很有可能是内存溢出导致单片机不断在重启。

  当内存超过128yte的情况下在编译的时候编译器会提示内存不足。

  在256byte的单片机中可以通过idata使用高128byte内存,通常一些不常用的变量。

  尽量使用局部变量提高内存使用效率。

  51单片机复位电路详解

  复位电路的工作原理

  在书本上有介绍,51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现,那这个过程是如何实现的呢?在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。

  开机的时候为什么为复位

  在电路图中,电容的的大小是10uf,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(单片机的电源是5V,所以充电到0.7倍即为3.5V),需要的时间是10K*10UF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在0~3.5V增加。这个时候10K电阻两端的电压为从5~1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V~1.5V。在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。

  按键按下的时候为什么会复位

  在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。

  总结:

  1、复位电路的原理是单片机RST引脚接收到2US以上的电平信号,只要保证电容的充放电时间大于2US,即可实现复位,所以电路中的电容值是可以改变的。

  2、按键按下系统复位,是电容处于一个短路电路中,释放了所有的电能,电阻两端的电压增加引起的。

  51单片机复位的方法有哪些

  51单片机有五种常用的复位方法:

  1.上电制动复位,注意:只要电源的的上升时间不超过1ms,就可以实现自动上电复位。

  2.软件复位,注意:复位信号保持时间是编程人员预定的时间。

  3.按键电平复位,注意:复位信号保持时间大于2个时钟周期。

  4.外部脉冲复位,注意:复位信号保持时间大于2个时钟周期。

  5.看门狗溢出复位,注意:复位信号保持时间也是编程人员预定的时间。

  【MCS-51单片机地址指针程序设置方法】

  下面以数据块传送子程序为例,说明R0和R1对外接RAM间接寻址的程序设计方法。假定数据块的源首地址为1000H,目的首地址为3045H,数据块长度为50H,程序清单如下所示:

  程序1—用DPTR做地址指针

  MOV R2,#00H

  MOV R3,#10H

  MOV R4,45H

  MOV R5,#30H

  MOV R7,#50H

  LOOP: MOV DPL,R2

  MOV DPH,R3

  MOVX A,@DPTR

  INC DPTR

  MOV R2,DPL

  MOV R3,DPH

  MOV DPL,R4

  MOV DPH,R5

  MOVX @DPTR,A

  INC DPTR

  MOV R4,DPL

  MOV R5,DPH

  DJNZ R7,LOOP

  RET

  程序2—使用R0和R1做地址指针

  MOV DPTR,#1000H

  MOV P2,#30H

  MOV R0,#45H

  MOV R7,#50H

  LOOP: MOVX A,@DPTR

  MOVX @R0,A

  INC DPTR

  INC R0

  DJNZ R7,LOOP

  RET

  程序1用了19条指令,程序2用了10条指令。适当应用R0和R1地址指针,可以大大提高程序运行效率。

  复位电路

  结语

  关于51单片机复位的相关介绍就到这了,如有不足之处欢迎指正。

相关阅读推荐:单片机复位电路分类

相关阅读推荐:单片机按键复位程序

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分