51单片机复位方法

在第9引脚接个持续2us的高电平就可以实现

何时复位:

51单片机要复位只需要在第9引脚接个高电平持续2us就可以实现【注】1,系统上电启动的时候复位一次,当按键按下的时候系统也会复位。

基本电路:

实现原理:

(1)开机复位

在电路图中,电容的的大小是10uf,电阻的大小是10k。

在5V正常工作的51单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以根据下文公式[注]2,可以算出电容充电到电源电压的0.7倍,即电容两端电压为3.5V、电阻两端电压为1.5V时,需要的时间约为T=RC=10K*10UF=0.1S。

也就是说在单片机上电启动的0.1S内,电容两端的电压从0-3.5V不断增加,这个时候10K电阻两端的电压为从5-1.5V不断减少(串联电路各处电压之和为总电压),所以RST引脚所接收到的电压是5V-1.5V的过程,也就是高电平到低电平的过程。

单片机RST引脚是高电平有效,即复位;低电平无效,即单片机正常工作。所以在开机0.1S内,单片机系统RST引脚接收到了时间为0.1S左右的高电平信号,所以实现了自动复位。

(2)按键复位

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


【注】

1.时钟周期即晶振的单位时间发出的脉冲数,晶振频率为12MHz时,12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,即1/12微秒。一个机器周期等于12个时钟周期,所以是1微秒。51单片机的复位周期至少是两个机器周期,也就是说,保持RST引脚两个机器周期以上的高电平(2us)就可以了。

2.电容的充放电时间计算公式:

假设有电源Vu通过电阻R给电容C充电,V0为电容上的初始电压值,Vu为电容充满电后的电压值,Vt为任意时刻t时电容上的电压值,那么便可以得到如下的计算公式:        

Vt = V0 + (Vu -V0) * [1 -exp(-t/RC)]

如果电容上的初始电压为0,则公式可以简化为:       

Vt = Vu * [1-exp( -t/RC)]         (充电公式)
  
           由上述公式可知,因为指数值只可能无限接近于0,但永远不会等于0,所以电容电量要完全充满,需要无穷大的时间。  

备注:exp是高等数学里以自然常数e为底的指数函数,e是一个常数为2.71828

    当t = RC时,Vt = Vu*(1-e^(-1)) = Vu * (1 - 1/e) = 0.63Vu
  
    当t = 2RC时,Vt = 0.86Vu;  

    当t = 3RC时,Vt = 0.95Vu;   

    当t = 4RC时,Vt = 0.98Vu; 
    当t = 5RC时,Vt = 0.99Vu;
 
     可见,经过3~5个RC后,充电过程基本结束。  


    当电容充满电后,将电源Vu短路,电容C会通过R放电,则任意时刻t,电容上的电压为: 
            Vt = Vu * exp( -t/RC)      (放电公式)

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐