单片机复位电路的作用是:使单片机的状态处于初始化状态,让单片机的程序从头开始执行,运行时钟处于稳定状态、各种寄存器、端口处于初始化状态等等。目的是让单片机能够稳定、正确的从头开始执行程序。
单片机有两种复位方式:一是高电平复位,二是低电平复位。基本上所有单片机都有一个复位端口(随着单片机威廉希尔官方网站 的发展,现在有些单片机内部集成了复位电路,这样它的复位端口有可能和I/O端口等复用)。简单讲就是给单片机的复位端口施加一定时间的高电平(或者低电平),单片机就能完成初始化过程,从头开始执行程序。这个时间就称为复位时间,一般单片机的复位时间都很短,不过每种单片机的复位时间都不等,这个就需要查阅相应单片机的数据手册来获得该种单片机的复位时间。需要注意的是,单片机复位后,一定要给单片机的复位端口施加单片机正常工作时的电平,例如对于低电平的复位电路,复位后,复位端口应当处于高电平状态。
小诀窍:对于单片机是高电平还是低电平复位,我们可以通过观察单片机的引脚图进行一个直观的判断,当单片机引脚图中复位端口的名称上面有一个“-”时,该单片机就是低电平复位,没有“-”时,该单片机就是高电平复位,例如单片机端口名称是RST,那它是高电平复位,是/RST(/是上划线)时,它是低电平复位
刚才我们已经说过,现在已经有很多单片机内部集成了复位电路。那么我们在进行这种单片机电路设计的时候,就不用再单独设计复位电路了。
下面来介绍几种常用复位电路。
1、上电复位电路
单片机的复位有高电平复位和低电平复位的区别,那就自然有高电平复位电路和低电平复位电路两种。
图1 上电复位电路
图1左边的电路是高电平复位电路。
这个电路是利用电容的充电来实现复位的,当电源接通的瞬间,单片机复位端的电位与VCC相同,随着充电电流的减少,复位端的电位逐渐下降。直至电容充满电,复位端的电压变为低电平。
电路中R和C的值可以根据下面的式子计算,其中T是复位时间。
T=(1/9)*R1*C1
图1右边的电路是低电平复位电路
该电路的复位原理跟高电平复位电路的原理相反,这里就不多说了。
同样的,低电平复位电路中R和C的值可以根据下面的式子计算得出,其中T是复位时间。
T=9*RC
2、按键复位电路
前面介绍的上电复位电路只能在单片机电路上电后,自动完成高电平复位或低电平复位,但是如果在单片机运行过程中,强制让单片机复位该怎么做呢?最简单的方法是通过按键实现:按下按键,单片机立马停止当前正在执行的操作,进入复位状态,然后从头开始运行。
图2左边是高电平按键复位电路,右边是低电平按键复位电路。
图2 按键复位电路
对于高电平复位电路,当按下复位按键时,复位端被直接拉到高电平,使单片机复位。而对于低电平复位电路,按下复位键后,复位端被直接拉到地端,使单片机复位。
3、改进后的按键复位电路
上面的按键复位电路有一个缺点:当电源因某种干扰瞬间断电时,由于C不能迅速将电荷放掉,待电源恢复时,单片机不能上电自动复位,导致程序运行失控。电源瞬间断电干扰会导致程序停止正常运行,形成程序“乱飞”或进入“死循环”。
所以有了下面这个增加了二极管的复位电路。如图3所示。
图3 改进后的按键复位电路
如果有了这个二极管就可以快速将电容上的电压释放,保证复位信号正确无误。也能快速为下次复位做好准备。
4、专用复位芯片
随着单片机系统越来越复杂,应用环境越来越多样化,单纯的RC复位电路已经不能确保单片机的正确复位,复位芯片也就应运而生。下图是一种复位芯片的应用电路。可以看出,复位芯片使用起来非常简单。
图4 复位芯片应用电路
图5 复位芯片应用电路