以下是自己关于单片机复位电路的一些认识:
>1、单片机为什么要复位?
使单片机回复初始状态,从PC指针的0地址开始执行程序
>2、如何复位单片机?(怎样操作确保单片机复位)
要求:51单片机要复位只需要在第9引脚接个高电平持续2个机器周期 (2*12=24个时钟周期)就可以实现;即在2个机器周期内将单片机锁定在 复位状态 。(因为两个机器周期单片机才能执行完复位命令)
>3、上电后就立即复位吗?(即上电和复位时同时的吗)
>3.1、复位具体是怎么执行的?
复位的2个前提是:1)CPU正常工作 [要知道复位命令的的执行是需要CPU执行的] 而CPU正常工作需要
(a:VCC电源稳定 b:晶振起振)
2) CPU检测到复位信号(即RST引脚为高电平)
>3.2:晶振起振&电源稳定 是需要时间的,因此上电后并不是立即复位,但可以肯定的是(复位信号确实上电就有,并且是一个回落的过程,有5V到1.5V,持续约0.1s的高电平);但单有复位信号也没用,要执行复位操作还需等待3.1中的的第一个条件实现,CPU不正常工作是执行不了复位命令的
而(上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms);
综上可知单片机RST复位信号的持续时间(约0.1s)是远远长于必要的复位的2个机器周期的(去除上电前的10几ms的等待时间,其余时间 0.1s-10ms 单片机都被锁定在复位状态,单片机一直执行复位命令) ,这样也确保单片机能可靠的实现复位操作
>4、复位的2个机器周期内单片机做了些什么?
主要做的就是初始化每个寄存器,包括最重要的PC指针,不包括RAM,然后单片机从复位地址开始执行程序。
>5、复位过程分析
开机的时候为什么会复位
在电路图中,电容的的大小是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引脚又接收到高电平。单片机系统自动复位。