复位是单片机的初始化操作,只需给AT89S51的复位引脚RST加上大于2个机器周期(即24个时钟振动周期)的高电平就可使AT89S51复位。
复位操作
当AT89S51进行复位时,PC初始化为OOOOH,使AT89S51单片机从程序存储器的OOOOH单元开端履行程序。除了进入体系的正常初始化之外,当程序运转犯错(如程序“跑飞”)或操作过错使体系处于“死锁”状况时,也需按复位键即RST脚为高电平,使AT89S51脱节“跑飞”或“死锁”状况而重新启动程序。
表2-7复位时片内各寄存器的状况
复位电路规划
AT89S51的复位是由外部的复位电路完成的。AT89S51片内复位电路结构如图2-17所示
。
复位引脚RST经过一个施密特触发器与复位电路相连,施密特触发器用来按捺噪声,在每个机器周期的S5P2:施密特触发器的输出电平由复位电路采样一次,然后才干得到内部复位操作所需求的信号。
复位电路一般选用上电主动复位和按钮复位两种方法。
最简略的上电主动复位电路如图2-18所示
。关于CMOS型单片机,因为在RST引脚内部有一个下拉电阻,故可将电阻R去掉,而将电容C选为10 μF。
上电主动复位是经过外部复位电路给电容C充电加至RST引脚一个短的高电平信号,此信号跟着VCC对电容C的充电进程而逐步回落,即RST引脚上的高电平持续时刻取决于电容C的充电时刻。因此为确保体系能牢靠地复位,RST引脚上的高电平有必要保持满足长的时刻。
除了上电复位外,有时还需求按键手动复位。按键手动复位有电平缓脉冲两种方法。
按键手动电平复位是经过RST端经电阻与电源Vcc接通来完成,详细电路如图2-19所示
。当时钟频率选用6 MHz时,C的典型取值为10μF,R取值为2kΩ。
脉冲复位是使用RC微分电路发生的正脉冲来完成的,脉冲复位电路如图2-20所示
。图中的阻容参数适于6 MHz时钟。
图2-21所示电路能输出高、低两种电平的复位操控信号,以习惯外围I/O接口芯片所要求的不同复位电平信号。图2-21中,74LS122为单稳电路。试验标明,电容C挑选约为0.1μF较好
。
在实践使用体系规划中,若有外部扩展的I/O接口电路也需初始复位,假如它们的复位端和AT89S51的复位端相连,复位电路中的R、C参数要受到影响,这时复位电路中的R、C参数要共同考虑,以确保牢靠复位。假如AT89S51与外围I/O接口电路的复位电路和复位时刻不完全共同,使单片机初始化程序不能正常运转,外围I/O接口电路的复位也能够不与AT89S51复位端相连,选用独立的上电复位电路。若RC上电复位电路接施密特电路输入端,施密特电路输出接AT89S51和外围电路复位端,则能使体系牢靠地同步复位。一般来说,单片机的复位速度比外围I/O接口电路快些。为确保体系牢靠复位,在初始化程序中应组织必定的复位延迟时刻。