单片机基本系统的硬件设计—复位电路设计陈山514101001338一、复位1、什么是复位?复位是单片机的初始化操作,以便使CPU和系统中其它部件都处于一个确定的状态,以及从这个状态开始工作。2、什么时候需要复位?系统上电:计算机在接通电源的时候会进行一系列的初始化操作,包括测试内存,向内存导入BIOS数据,初始化寄存器,初始化各个硬件等等,统称上电复位程序跑飞:系统受到某种干扰后,程序计数器的值偏离了给定的唯一变化历程,导致程序运行偏离正常的运行路径。程序需要:3、复位的作用启动时复位,使CPU及系统各部件处于确定的初始状态,并从初始状态开始工作;当由于程序运行出错或操作错误使系统处于死锁状态时,为了摆脱困境,也须按复位键重新启动;其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序;复位操作还对其他一些寄存器有影响4、怎样实现复位在51单片机中,当RST引脚为高电平并且保持至少两个机器周期以上就能实现复位。5、复位电路的内部结构在RST端出现高电平后的第二个周期,执行内部复位以后每个周期执行一次直至RST端变为低电平。二、单片机对复位操作的反应1、复位中单片机一旦进入复位状态并且停留在复位状态下(即外接引脚RST被锁定在有效的高电平上),就会表现出如下一些具体特征:a、CPU不再执行程序而保持静止(冻结)状态;b、各种片内外围模块(定时器、串行口、总线接口、中断系统等)均停止工作;c、各个并口(P0~P3)的所有口线均对外呈现高阻状态;d、各SFR的内容均恢复到复位值(即返回到知情范围);e、内部RAM内容维持记忆,只要电源电压不低于最低维持电压(一般为2V)就能够保持原有内容;f、内部时钟源振荡器仍然会维持振荡,只要电源电压还在lV(甚至略低于1V),振荡器就能够维持工作;g、各种片外电路(如扩展存储器、扩展I/O端口或锁存器等)都应该维持原有内容和状态。2、复位后单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表。值得指出的是,记住一些特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。说明:表中符号*为随机状态;PSW=00H,表明选寄存器0组为工作寄存器组;SP=07H,表明堆栈指针指向片内RAM07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中;Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;IP=×××00000B,表明各个中断源处于低优先级;IE=0××00000B,表明各个中断均被关断三、常见复位源及其电路所谓“复位源”,就是导致或者引起单片机内部复位的源泉。对于当前市场上出现的种类比较齐全的单片机,其典型复位源大致可以归纳为以下5种:上电复位、人工复位、电源欠压复位、看门狗复位和软件复位。只有上电复位和人工复位这两种复位源,是讲解80C51单片机的教科书、技术文章和文献资料中比较常见的1、上电复位:单片机的上电复位(POR)实质上是上电延时复位也就是在上电延时(电源电压从10%VDD上升到90%VDD所需的时间)期间将单片机锁定在复位状态。上电复位这一种复位源是必不可少的。因为每次给单片机加电时,其电源电压的稳定,以及时钟振荡器的起振和振幅稳定,都需要一定的延迟时间。AT89C51的上电复位电路如图所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。上电复位的工作过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。2、人工复位人工复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。人工复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。通常将上电复位和人工复位统称为RC复位,因为其主要器件均为电容和电阻。在复位电路设计中,人们常将其设计在一起,如右图所示增加二极管后在电源电压瞬间下降时使电容迅速放电,较小宽度的电源变化也会令系统可靠复位。RC复位电路输入输出特性3、电源欠压复位为了避免电源跌落带来的危害性后果,人们为51单片机设计了片外欠压复位电路,特别是对于可靠性要求较高的单片机系统和应用项目。所谓欠压复位,就是电源跌落复位,就是在单片机电压尚未跌落到不能维持工作之前预先向单片机提供预警信号或者复位信号甚至把单片机锁定在复位状态。4、看门狗复位在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称看门狗(watchdog)一般有一个输入,叫喂狗(kickingthedogorservicethedog),一个输出到单片机的RST端,单片机正常工作的时候,每隔一端时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到单片机,使单片机复位.防止单片机死机.看门狗的作用就是防止程序发生死循环,或者说程序跑飞。硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。常用的WDT芯片如MAX813,5045,IMP813等,价格4~10元不等.。软件看门狗技术的原理和这差不多,只不过是用软件的方法实现。5、软件复位普及型MCS-51系列单片机(如8031和8032)既无复位指令,又不带硬件WATCHDOS,如果没有外接硬件WATCHDOG电路,就必须采用软件抗干扰技术。常用的软件抗干扰技术有:指令冗余、软件陷阱、软件WATCHDOG等,它们的作用是在系统受干扰时能及时发现,再用软件的方法使系统复位。所谓软件复位就是用一系列指令来模仿复位操作,这就是MCS-51系列单片机所特有的软件复位技术。指令冗余:为了使“乱飞”程序迅速纳入正轨,应该多用单字节指令,并在关键地方插入一些空操作指令NOP或将有效单字节指令重写,这就叫做指令冗余。例如要在某个输出口上输出一个高电平去驱动一个外部器件,如果只送一次“1”,那么,当干扰来临时,这个“1”就有可能变成“0”了。正确的处理方式是,定期刷新这个“1”。那么,即使偶然受了干扰,它也能恢复回来。软件陷阱:就是一条引导指令,将其插入到程序中,一旦程序跑飞,就强行将乱飞的程序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序。谢谢