2019/12/181第四章MCS-51单片机时钟与复位电路2019/12/1821.单片机的工作原理:取一条指令、译码、进行微操作,再取一条指令、译码、进行微操作,这样自动地、—步一步地由微操作按次序完成相应指令规定的功能。单片机的时钟信号用来为单片机芯片内部的各种微操作提供时间基准,机器启动后,指令的执行顺序如下图所示:一、时钟的基本概念取指分析执行2.概念⑴时序:各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序。⑵时钟电路:用于产生单片机工作所需要时钟信号的电路成为时钟电路。2019/12/183二、振荡器和时钟电路时钟信号有两种方式:内部振荡器方式;外部引入方式1.内部振荡器方式MCS-51单片机内部有一个高增益的反相放大器,其输入端为引脚XTAL1(19),输出端为引脚XTAL2(18),用于外接石英晶体振荡器或陶瓷谐振器和微调电容,构成稳定的自激振荡器,其发出的脉冲直接送入内部的时钟电路。如右图或图4.1(a)所示。2019/12/184图4.1MCS-51振荡电路及外部时钟源的连接2019/12/185⑴电容C1,C2对频率有微调作用,电容一般取值5~30pF,典型值为30pF;⑵晶振CYS选择范围为1.2~12MHz,典型值为6MHz和12MHz。参数选择:2019/12/186外部引入方式常用于多片单片机组成的系统中,以便各单元之间的时钟信号同步运行。对于HMOS型单片机(如8051),可用来输入外部脉冲信号,如图4.1(b)所示,XTAL1(19)接地,XTAL2(18)接外部时钟,由于XTAL2(18)的逻辑电平与TTL电平不兼容,所以应接一个上拉电阻。对于CHMOS单片机(如80C51),外部时钟要由XTAL1引入,而XTAL2引脚应悬空。如图4.1(c)所示。2.外部引入方式2019/12/187三、时序单位基本概念:MCS-51时序的定时单位共有4个,从小到大依次是:时钟周期(节拍)、状态周期、机器周期和指令周期。⒈时钟周期(节拍,振荡周期):是指振荡器产生一个振荡脉冲信号所用的时间,是振荡频率的倒数,称为节拍,为最小的时序单位。2019/12/1882.状态周期:指振荡器脉冲信号经过时钟电路二分频之后产生的单片机时钟信号的周期(用S表示)称为状态周期。故1个状态周期S包含2个节拍,前一时钟周期称为P1拍,后一个时钟周期称为P2拍。如图4.2所示:图4.280C51单片机时钟信号2019/12/1893.机器周期:是指CPU完成某一个规定操作所需的时间。MCS-51单片机的一个机器周期包含6个状态,并依次表示为:S1~S6,每个状态分为2个拍。故一个机器周期包含12个节拍(时钟周期),依次表示为:S1P1、S1P2、S2P1、…S6P1、S6P2。若采用12MHz的晶振时,则一个机器周期为1μs;若采用晶振6MHz时,则一个机器周期为2μs。2019/12/18104.指令周期是CPU执行一条指令所需要的时间为指令周期。MCS-51单片机指令包含1个或2个或4个机器周期。若采用6MHz晶振,则振荡周期为1/6μs,机器周期为2μs、4μs或8μs。2019/12/1811MCS-51系列单片机的指令按其长度可分为:单字节指令,双字节指令和三字节指令。四、取指令和执行指令时间由图4.3所示,ALE信号在一个机器周期内两次有效,第一次在S1P2和S2P1期间,第二次在S4P2和S5P1期间,ALE信号的有效宽度为一个S状态。每出现一个ALE信号,CPU就可进行一次取指操作。2019/12/1812图4.3MCS-51单片机的去取指/执行时序a)单字节单周期;b)双字节单周期指令;c)单字节双周期字节;d)双字节双周期指令2019/12/1813图4.3(a)与(b)分别为单字节单周期和双字节单周期指令的时序。对于单周期指令,在把指令码读入指令寄存器时,从S1P2开始执行指令。如果它为双字节指今,则在同一机器周期的S4读入第二字节;如果它为单字节指令,则在S4仍旧进行读操作,但读入的字节(它应是下一个指令码)被忽略,而且程序计数据不加1。在任何情况下,在S6P2结束指令操作。2019/12/1814图4.3(c)为双字节单周期指令的时序,在两个机器周期内发生4次读操作码的操作,由于是单字节指令,后3次读操作都是无效的。图4.3(d)是访问外部数据存储器的指令MOVX的时序,它是一条单字节双周期指令。在第—个机器周期S5开始时,送出外部数据存储器的地址,随后读或写数据,读写期间在ALE端不输出有效信号;在第二个机器周期,即外部数据存储器被寻址和选通后.也不产生取指操作。2019/12/1815时序的共同点:每一次ALE信号有效,CPU均从ROM中读取指令码(包括操作码和操作数),但不一定有效,读了之后再丢弃(假读)。有效时,PC+1→PC不变(程序计数器PC不加1);无效时不变。其余时间用于执行指令操作功能,但在时序中没有完全反映出。如双字节单机器周期,分别在S1、S4读操作码和操作数,执行指令就一定在S2、S3、S5、S6中完成。2019/12/1816第4节MCS-51系列单片机的复位与掉电处理一、复位与复位电路1.复位:是单片机的初始化操作,以便使CPU和系统中其他部件都处于一个确定的状态,并从这个状态开始工作。当单片机系统在运行出错或操作错误使系统处于死锁存时,也可按复位键重新启动。单片机复位后,PC内容初始化为0000H,那么单片机就从0000H单元开始执行程序。片内RAM为随机值,运行中的复位操作不改变片内RAM的内容。2019/12/1817复位后各寄存器的初态如下表4-1所示,其意义为:⑴P0~P3=FFH,相当于各口锁存器已写入1,此时可用于输出/输入;⑵SP=07H,堆栈指针指向片内RAM的07H单元(第一个入栈内容将写入08H中);⑶IP、IE和PCON的有效值为0,各中断源处于低优先级且均被关断,串行通信的波特率不加倍;⑷PSW=00H,当前工作寄存器为0组。表4-1寄存器的复位状态2019/12/18182.复位电路图4.48051复位电路内部结构HMOS型8051复位结构如图4.4所示。复位引脚RST/VPD(它是掉电方式下内部RAM的供电端VPD)通过一个施密特触发器与复位电路相连。施密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2由复位电路采样一次。RST引脚时复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个时钟周期(2个机器周期)以上。2019/12/1819CHMOS型的单片机复位结构如图4.5所示,此处复位引脚只是单纯的称为RST,而不是RST/VPD,因为CHMOS单片机的备用电源也由VCC引脚提供。图4.5CHMOS型单片机的复位结构2019/12/1820无论对HMOS还是CHMOS型,当振荡器正在运行的情况下,复位是靠在RST/VPD或RST引脚至少保持两个机器周期的高电平而实现的。在RST端出现高电平后的第2个周期,执行内部复位,以后每个周期重复—次,直至RST端变低。RST端的外部复位电路有两种操作方式:上电复位和按键手动复位(人工复位)2019/12/1821图4.6上电复位电路如图4.6所示,上电复位电路是利用电容器充电实现的。上电瞬间,RST端的电位与VCC相同,随着电容的逐步充电,充电电流减小。RST电位逐渐下降。上电复位所需的最短时间是振荡器建立时间加上两个机器周期。在这段时间内,RST端口的电平应维持高于斯密特触发器的下阈值。—般VCC的上升时间不超过1ms,振荡器建立时间不超过10ms。复位电路的典型值:电容C取10μF,R取8.2KΩ。故时间常数足以满足要求。(1)上电复位6310108.21082RCms2019/12/1822图4.7外部复位电路外部复位电路如图4.7所示,按下按钮时,电源对外接电容器充电,使RST为高电平,复位按钮松开后,电容通过内部下拉电阻放电,逐渐使RST端恢复低电平。(2)外部复位电路2019/12/1823⑶程序计数器指针PC典型的复位电路既具有上电复位又具有外部的复位电路如图4.8所示,上电瞬间,C与Rx构成充电电路,RST引脚出现正脉冲,只要RST保持足够的高电平,就能使单片机复位。参数选择:一般取C=22μF,R=200Ω,Rx=1KΩ,此时,当按下按钮时,RST端电位:(1000/1200)×5=4.2V,使单片机复位。63221011022RCms4.8上电外部复位电路2019/12/1824(4)抗干扰复位电路4.9两种实用复位电路上面几种复位电路,干扰信号易串入复位端。一般情况不会造成单片机的错误复位,但有可能引起内部某些寄存错误复位。在应用系统中,为了保证复位电路可靠地工作,常将RC电路在接施密特电路后再接入单片机复位端及外围电路复位端。图4.9给出了两种实用电路。2019/12/1825二、掉电处理1.掉电保护方式掉电保护:单片机如遇到掉电,将导致片内RAM和SFR中的信息丢失。为避免发生此种情况,把HMOS型的8051单片机RST/VPD引脚作为备用电源,只要VCC上的电压低于VPD上的电压时,备用电源就通过VPD端给内部RAM供电,以低功耗保持内部RAM中的数据,这种方式称为掉电保护。掉电保护电路如图4.10所示:4.10掉电保护电路2019/12/1826如4.10所示,当电源电压VCC降到CPU工作电源电压所允许的最低下限之前,通过中断服务程序,把一些必须保护信息转存到片内RAM中,然后向P1.0写入“0”,由P1.0输出的低电平触发单稳态电路555。在主电源恢复之前,片内振荡器被封锁,一切功能停止,并依靠VPD引脚提供的电源来保护片内RAM中的数据。当电源恢复时,VPD上的电压应保持足够的时间(约10ms),以完成复位操作,然后开始正常的工作。2019/12/18272.节电工作方式对于CHMOS型单片机(如80C51)才有节电方式。有两种:待机(空闲)方式;掉电保护(停机)方式。⑴持机(空闲)方式:可使功耗减小,电流约为1.7~5mA;⑵掉电(停机)方式:备用电源直接由VCC端输入,可仅功耗减到最小,电流一般为5~50uA。因此,CHMOS型单片机特别适用于低功耗应用的场合。2019/12/1828待机(空闲)方式和掉电(停机)方式都是由专用寄存器PCON(电源控制寄存器)中的有关位来控制的,其格式及各位的作用如下:(1)SMOD:波特率倍增位。在串行口工作方式1、2或3下,SMOD=1使波特率加倍。(2)GFl和GF2:通用标志位。由软件置位、复位。2019/12/1829(3)PD:掉电方式位。若PD=1,进入掉电工作方式。(4)IDL:待机方式位。各IDL=1,进入持机工作方式。当PD扣IDL同时为l,则先进入掉电工作方式。复位后,PSON中所有定义位均为“0”。2019/12/1830(1)待机方式用指令使PCON中的IDL位置1,80C51就进入待机方式。在待机方式下,振荡器继续运行,时钟信号继续提供给中断逻辑。串行口和定时器,但提供给CPU的内部时钟信号被切断,CPU停止工作。这时,堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC以及所有的工作寄存器内容都被保存下来。通常CPU耗电量占芯片耗电量的80%~90%,所以CPU停止工作就会大大降低功耗。80C51消耗电流可由正常的24mA降为3mA,甚至更低。2019/12/1831终止待机有以下两种方法:①通过硬件复位由于在待机方式下,RST脚上的有效信号只需保持两个时钟周期就能使IDL置“0”,单片机即退出待机状态。注意,为了防止对端口的操作出现错误,置空闲方式。下一条指令不应该为写端口或写外部RAM的指令。②通过中断方法若在待机期间,任何一个允许的中断被触发,IDI都会被置为“0”,从而结束持机方式。单片机进入中断服务程序。这时,通用标志GFO或GFI可用来指示中断是正常操作期间还是在待机期间发生的。2019/12/1