1、手动按钮复位
手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。一般采用的办法是在RST端和正电源VCC之间接一个按钮。当人为按下按钮时,则VCC的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。电路如图1-1按键复位电路。
2、上电复位
AT89C51的上电复位电路如图2所示,只要在RST复位输入引脚上接一电容至VCC端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1?F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着VCC对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,VCC的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在图2的复位电路中,当VCC掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。 单片机与上点复位电路如图1-2所示。
3、积分型上电复位
常用的上电或开关复位电路如图3所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。 积分电路如图1-3所示
4、参数设置
根据实际操作的经验,下面给出这种复位电路的电容、电阻参考值。C=1uF,R1=1k,R2=10k
5、proteus中仿真的现象
很多玩proteus的在仿真中都发现复位电路没法用,出现的问题确实和仿真器本身有关系,按键复位电路用的比较多,但是仿真却出现问题了。我弄来弄去发现一个有趣的问题:在4参数设置中说了参考典型值,但仿真中就有问题了见下面几幅图对比下可以看出问题。完全按照图1-1 按键复位电路仿真。结果如图1-4 按键复位电路仿真1所示。
开始仿真,RST复位端的电压值始终都是高电平,这样的结果肯定是无法完成任务的。但实际中却是正确的。将图1-4中的R93去掉然后再仿真,仿真结果和上去一样。如图1-5按键复位电路仿真2所示。
再将图1-5中的R94的电阻值减小为1k,仿真结果就有变化了。如图1-6按键复位电路仿真3所示。RST的状态变为了不确定状态,按下按键后会成为高电平,感觉像是可以工作了,但是真实情况不是,仿真中按下复位按键对系统没有影响,单片机不会产生复位。
再将R94改为510欧姆,仿真结果如图1-7所示。
在初始化系,RST复位端是低电平了,测试下,在按下按键后,系统能正常复位。网上看到很多朋友都遇到这个问题,我发现这个问题后,和大家分享一下,希望对大家有帮助。