51系列单片机是高电平复位。
如果在AT89S52的9号引脚(RST)加上宽度大于2个机器周期的高电平,该单片机芯片就将处于复位状态。
复位时:PC=0000H,SP=07H,P0~P3=FFH,其它各个特殊功能寄存器的内容皆为0。
此后,当RST引脚上的降为低电平,单片机将会脱离复位,变成运行状态,从0000H处开始执行程序。
在RST引脚接上一个电阻、一个电容,即可构成“上电复位电路”。其中电阻为10K,电容为10uF,这是厂家推荐的数值。
上电复位电路图如下:
其中RST端电压波形VR,在上面的插图中也已经给出。
分析这个波形变化的原理,要用到“过渡过程”的知识。
从电路中可以看出,电阻和电容是串联,电容的电压、电阻的电压,加在一起,就是电源电压。
当没有开机时,这些电压都是零。
当开机后,电源VCC突然就出现了+5V,此刻的电容电压是不能突变的,仍然是零。
+5V的电源电压,立即就全都加到了电阻上,于是RST端的电压VR,在这一瞬间就出现了高电平。
之后,随着电容器不断的充电,VR就呈指数规律下降,这就是“过渡过程”。
当VR下降到3.4V,可以认为此时就脱离了高电平。从波形图中可以看出,RST端的高电平持续时间就是t1。
如果经过了(3~5)RC的时间,这个电压就可以认为降到零了。这时,就认为“过渡过程”已经是结束了。
上面所说的电压波形变化的规律,在《电路》方面的教材中,可以找到计算公式。
---------------------------------
在晶振为12MHz时,如果RST端的高电平持续时间t1,超过了2us,51单片机即可复位。
其实,使用单片机厂家所推荐的元件数值(电阻为10K,电容为10uF),已经使RST端的高电平时间,远远超过了2us。
哪怕,即使单片机使用的晶振频率再低一些,要求复位的时间再长一些,这个电阻、电容的数值,也都是够用的。
说这些,是什么意思呢?
呵呵,就是说,复位电路中的电阻、电容,并不需要我们自己来设计,使用厂家推荐的数值,就完全可以了。
如果偏要自己设计,那就一定是闭门造车。
因为公式中所用的VH这个电压值,是单片机厂家内部掌握的。我们并不能肯定就是3.4V。所以,我们自己设计不出来合适的R、C的数值。
另外,有人略微的学过一些“过渡过程”的计算公式,就用(3~5)RC来计算高电平的时间,呵呵,这就是基本概念不清。
用(3~5)RC来计算,得出的电压波形,早早就是低电平了,根本就不是高电平的持续时间。
错误的计算,可见下面的链接:
http://www.eeskill.com/group/topic/id/1914
---------------------------------
如果,想要增加“手动复位按键”,电路图就在下面:
按键按下后,电容器放电;按键松开后,电容器从零电压开始充电,电阻上的电压波形,就和上面给出的一模一样了。
省略掉图中的220欧姆的电阻,也是可以的,有些成品的电路板,就是省略的。
省略后,没有太大缺陷,只是按键按下的时刻,瞬间放电电流,会很大,可能有微小火花出现。
---------------------------------
还看到有些参考资料,在复位电路中,增加了一个反相器。
好像是说,这样就可以把缓慢变化的波形,弄得陡峭一些,使得复位,可以可靠一些。
其实,这是多余的。
单片机的厂家,早就在芯片内部,集成了施密特反相器,用不着用户来画蛇添足。