首页 理论教育 STC单片机复位解析:版本结果

STC单片机复位解析:版本结果

时间:2023-11-02 理论教育 版权反馈
【摘要】:通过某种方式,使单片机内部各类寄存器的值变为初始状态的操作称为复位。STC15W4K32S4系列单片机的复位可通过IAP_CONTR特殊功能寄存器操作进行复位。STC单片机出厂时被设置为I/O口,要将其改为RST复位功能应在ISP编程时设置。在图2-25的复位电路中,当电源接通时,只要VCC的上升时间不超过1ms,单片机就能可靠地复位。

STC单片机复位解析:版本结果

通过某种方式,使单片机内部各类寄存器的值变为初始状态的操作称为复位。STC15W4K32S4系列单片机的复位可通过IAP_CONTR特殊功能寄存器操作进行复位。复位后,单片机将根据复位前IAP_CONTR寄存器中SWBS位的值选择系统执行程序区域。

1.复位形式

IAP_CONTR寄存器格式和各位功能如下:

978-7-111-51881-5-Chapter02-44.jpg

其中SWBS位是控制CPU执行程序位置,即当SWBS=0时,复位后从用户区启动执行,当SWBS=1时,从系统ISP监控程序区执行程序。

而SWBST=0,不操作;当SWBST=1时,软件控制复位,单片机自动复位。

复位分为冷启动复位和热启动复位两种,它们的区别见表2-11。

表2-11 冷启动与热启动复位比较

978-7-111-51881-5-Chapter02-45.jpg

(续)

978-7-111-51881-5-Chapter02-46.jpg

2.外部复位电路

STC15W4K32S4系列单片机的复位可以内部复位,也可外部复位。内部复位电路结构如图2-24所示。复位引脚RST/P5.4通过内部一个施密特触发器与复位电路相连,施密特触发器用作噪声抑制,在每个机器周期的S5P2时刻,复位电路采样一次施密特输出电平,获得内部复位操作所需要的信号。STC单片机出厂时被设置为I/O口,要将其改为RST复位功能应在ISP编程时设置。

当单片机正常工作后,若在RST引脚上维持24个时钟的高电平,24μs后单片机就开始复位操作,复位后将RST引脚拉为低电平。复位后从系统ISP监控程序区开始执行程序;若检测不到合法的ISP下载指令流,或检测到合法下载指令流并下载完程序后,均会软复位到用户程序区执行用户程序。

外部复位电路通常有上电复位、手动按键复位和看门狗电路复位三种方式。

(1)上电复位电路

上电复位是最简单的复位电路,在RST复位输入引脚上连接一个电容至VCC,再连接一个电阻到地即可,如图2-25所示。

978-7-111-51881-5-Chapter02-47.jpg

图2-24 单片机片内复位电路结构

978-7-111-51881-5-Chapter02-48.jpg

图2-25 上电复位电路

上电复位是通过外部复位电路中的电容充放电来实现的,也就是通过上电瞬间,电容给RST端输入一个短暂的高电平,此高电平随着VCC对电容充电时间的增加而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为保证单片机能可靠地复位,必须使RST引脚至少保持两个机器周期高电平,CPU在第2个机器周期内执行内部复位操作,以后每一个机器周期重复一次,直至RST端电平变低。

在图2-25的复位电路中,当电源接通时,只要VCC上升时间不超过1ms,单片机就能可靠地复位。当VCC掉电时,必然会使RST端的电压迅速下降到0V以下。但是,由于内部电路的限制作用,这个负电压不会对器件产生损害。另外,在复位期间不产生ALE信号,同时,各端口引脚也处于随机状态,复位后,系统将端口置为全“1”状态。

如果单片机在上电时不能有效复位,则程序计数器PC可能是随机值,而不是初值0。因此CPU有可能从一个未知的位置开始执行程序,而导致系统出错。

(2)手动复位电路

手动复位需要人为在复位输入端加一个高电平,可用一个按键接在RST端与电源VCC之间。因此,系统接通电源时,单片机自动上电复位后进入正常运行状态。当系统运行出现问题时,可以人为按下复位按键,使VCC的+5V电平直接加到RST端,迫使单片机复位。

手动复位有电平方式和脉冲方式两种。其中,电平复位是通过RST端经电阻与电源VCC接通来实现的,复位电路如图2-26所示。当时钟频率采用12MHz时,电容C3取10mF,电阻R1取8.2kW,R2取1kW。

按键脉冲复位是利用RC微分电路产生的正脉冲来实现的,复位电路如图2-27所示。(www.xing528.com)

另外,单片机在实际应用中,有时需要外扩I/O接口芯片,这些外扩的芯片可以设计为独立的上电复位电路,为节省成本,外部芯片的复位端也可以与单片机复位端连接。但单片机和有些外部芯片的复位电路、复位时间不完全一致,为保证复位的可靠性,复位电路中的RC参数会受影响,必须统一考虑,否则会导致单片机初始化程序不能正常运行。

978-7-111-51881-5-Chapter02-49.jpg

图2-26 手动电平方式复位

978-7-111-51881-5-Chapter02-50.jpg

图2-27 手动脉冲方式复位电路

(3)“看门狗”复位

在单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,使执行程序跑飞,造成程序的正常运行被打断而陷入死循环,使整个系统陷入停滞状态,引发不可预料的后果。因此,为了实时监测单片机运行状态,便产生了一种专门用于监测单片机程序运行状态的芯片,称为Watch Dog电路,俗称“看门狗”。

看门狗分为硬件看门狗和软件看门狗两种。硬件看门狗可以在外部设计一个定时器电路(如看门狗芯片MAX801)来监控主程序的运行。看门狗电路一般有一个输入端,叫喂狗,有一个信号输出端,叫复位(连接到单片机的RST端)。单片机正常工作时,每隔一段时间输出一个信号到喂狗端,使WDT清0,如果程序跑飞或发生死循环时,在规定的时间不能去喂狗,WDT定时计数器超过预定值,看门狗电路就会在输出端产生一个高电平信号使单片机复位,使程序重新开始执行。

软件看门狗技术的原理和硬件看门狗差不多,只不过是用软件的方法来实现。设计软件看门狗时,可以采用单片机内部的两个定时器来对主程序的运行进行监控,保证系统的稳定运行。

因此,看门狗能有效地防止单片机死机,使单片机在无人状态下实现连续工作。STC15W4K32S4系列单片机内部都集成了“看门狗”部件,由特殊功能寄存器控制,可实现硬件“看门狗”功能。

3.内部复位

STC15W4K32S4系列单片机内部复位包括内部上电复位(掉电复位和上电复位)、内部低压检测复位、看门狗复位、软件复位以及程序地址非法复位等。

1)内部上电与MAX801专用复位。当电源电压VCC低于掉电复位门槛电压时,会产生系统掉电复位。当VCC电压上升,且高于复位门槛电压时,系统处于上电复位状态,上电复位延时32768时钟后复位结束。如果用户在ISP编程时选择了180ms的长复位延时,则上电复位后将产生180ms复位延时。

PCON特殊寄存器的POF位是上电复位标志位,单片机在停电后再上电进行冷启动复位后,POF=1,在热启动后POF保持不变,可由软件清0。要判断是上电复位(冷启动),还是外部复位引脚输入复位信号产生的复位,或是内部看门狗复位,可按图2-28单片机复位流程图所示的方法来判断。

2)内部低压检测复位。PCON特殊寄存器的LDVF位是低压检测标志位,同时也是低压检测中断申请标志位。在正常和空闲工作状态时,如果内部工作电压VCC低于低压检测门槛电压,该位自动置1,与低压检测中断是否被允许无关。如果允许中断,还可申请中断。该位要用软件清0,清0后若VCC继续低于低压检测门槛电压,又自动置1。

在进入掉电状态前,如果LVDF不允许中断,则进入掉电模式后,该低压检测电路不工作(可降低功耗);如果允许中断,则一旦发生掉电进入掉电模式后,该低压检测电路会继续工作。此时若检测到工作电压VCC小于门槛电压时,会产生LVDF中断,将单片机唤醒。

至于内部看门狗复位、软件复位和程序地址非法复位前面已介绍,见表2-11。

4.复位状态

单片机复位后,基本寄存器的值,例如程序计数器PC和部分特殊功能寄存器的复位状态见表2-5。复位不影响片内RAM存储的内容,而ALE在复位期间将输出高电平。

单片机复位时的状态决定了单片机内部有关功能部件的初始状态,见表2-5,其中:

1)程序计数器(PC)=0000H,表示复位后程序的入口地址为0000H。

2)程序状态字(PSW)=00H,表示复位后单片机默认选择0组工作寄存器。

3)堆栈指针(SP)=07H,表示复位后堆栈设在片内RAM的08H单元处开始。

4)P0~P3和P4~P7口锁存器为全1状态,说明系统复位后,这些并行I/O口可以直接作输入口,而不必给端口再置1。

5)定时器/计数器、串行口和中断系统等很多特殊功能寄存器复位后,将对各功能部件的工作状态产生影响。至于如何影响,将在后面进行介绍。

978-7-111-51881-5-Chapter02-51.jpg

图2-28 单片机复位过程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈