MCS-51系列单片机的复位是利用外部硬件电路产生一高电平给芯片的RESET端来实现的。复位后,除了内部RAM内容不变外,其它寄存器均被复位。
复位电路大体上有两种:上电复位及按键复位,电路见图1a、b所示。在图1a上电复位电路中,RC值应不小于振荡建立时间与2个机器周期之和,图中RC=82ms,足以完成复位操作。在图1b按键复位电路中,RC值取10ms即可。经以上两种复位电路复位后的单片机的初始状态是完全一样的。

在实际系统中,往往要求在上电复位时将内部RAM甚至是外部RAM也初始化到某个特定状态,而在按键复位时,则要求保留RAM区内容。显然RAM区的初始化只能靠程序来实现,关键在于如何加一硬件电路来区别这两种复位方式,以便在程序执行中,当上电复位时,执行RAM初始化程序段,当按键复位时,跳过RAM初始化程序段。
一种可行的方案是利用单片机的某根中断输入线,例如8031的INT\(_{0}\)-脚,外接RC电路,如图2所示。

每次上电过程中,在接通电源的瞬间,C短路,必然使INT\(_{0}\)-有效,进入INT0-中断服务程序。在INT\(_{0}\)-中断服务子程序中置入标志使F0=1后立即返回。当程序执行到判F\(_{0}\)标志时,若F0=1则执行RAM初始化程序块,若F\(_{0}\)=0,则程序跳过RAM初始化段,这样就不会造成由于按键复位而清除RAM区内容的情形了。
图2中,要求RC值选取合理。这种方法即简单又可靠。一般RC值大于100ms即可。其缺点是占用了一个中断源。(周振安)