第5章 80C51单片机的中断系统_第1页
第5章 80C51单片机的中断系统_第2页
第5章 80C51单片机的中断系统_第3页
第5章 80C51单片机的中断系统_第4页
第5章 80C51单片机的中断系统_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第5 5章章 80C5180C51单片机的中断系统单片机的中断系统及定时器及定时器5.1 80C515.1 80C51的中断系统的中断系统5.2 80C515.2 80C51的中断处理过程的中断处理过程5.3 80C515.3 80C51的定时的定时/ /计数器计数器5.1 80C515.1 80C51的中断系统的中断系统 5.1.1 80C515.1.1 80C51的中断系统结构的中断系统结构一、中断的概念一、中断的概念 CPUCPU在处理某一事件在处理某一事件A A时,发生了另一事件时,发生了另一事件B B请请求求CPUCPU迅速去处理(迅速去处理(中断发生中断发生);); CPUCPU

2、暂时中断当前的工作,转去处理事件暂时中断当前的工作,转去处理事件B B(中中断响应和中断服务断响应和中断服务);); 待待CPUCPU将事件将事件B B处理完毕后,再回到原来事件处理完毕后,再回到原来事件A A被被中断的地方继续处理事件中断的地方继续处理事件A A(中断返回中断返回),这一过),这一过程称为程称为中断中断 。引起引起CPUCPU中断的根源,称为中断的根源,称为中断源中断源。中断源向。中断源向CPUCPU提出的中提出的中断请求。断请求。CPUCPU暂时中断原来的事务暂时中断原来的事务A A,转去处理事件,转去处理事件B B。对事件。对事件B B处理完毕后,再回到原来被中断的地方(

3、即处理完毕后,再回到原来被中断的地方(即断点断点),称为中),称为中断返回。实现上述中断功能的部件称为断返回。实现上述中断功能的部件称为中断系统中断系统(中断机(中断机构)。构)。 随着计算机技术的应用,人们发现中断随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速技术不仅解决了快速主机与慢速I/OI/O设备的设备的数据传送问题,而且还具有如下优点:数据传送问题,而且还具有如下优点:v 分时操作分时操作。CPUCPU可以分时为多个可以分时为多个I/OI/O设备设备服务,提高了计算机的利用率;服务,提高了计算机的利用率;v实时响应实时响应。CPUCPU能够及时处理应用系统的随能够及时

4、处理应用系统的随机事件,系统的实时性大大增强;机事件,系统的实时性大大增强;v可靠性高可靠性高。CPUCPU具有处理设备故障及掉电等具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。突发性事件能力,从而使系统可靠性提高。二、二、80C5180C51中断系统的结构中断系统的结构 80C5180C51的中断系统有的中断系统有5 5个中断源,个中断源,2 2个优先级,个优先级,可实现二级中断嵌套可实现二级中断嵌套 。5.1.2 80C515.1.2 80C51的中断源的中断源 一、中断源一、中断源INT0INT1 2 2、 (P3.3P3.3)。可由)。可由IT1(TCON.2)IT1(

5、TCON.2)选择其为选择其为低电平有效还是下降沿有效。当低电平有效还是下降沿有效。当CPUCPU检测到检测到P3.3P3.3引 脚 上 出 现 有 效 的 中 断 信 号 时 , 中 断 标 志引 脚 上 出 现 有 效 的 中 断 信 号 时 , 中 断 标 志IE1(TCON.3)IE1(TCON.3)置置1,1,向向CPUCPU申请中断。申请中断。 1 1、 (P3.2P3.2)。可由)。可由IT0(TCON.0)IT0(TCON.0)选择其为选择其为低电平有效还是下降沿有效。当低电平有效还是下降沿有效。当CPUCPU检测到检测到P3.2P3.2引 脚 上 出 现 有 效 的 中 断

6、信 号 时 , 中 断 标 志引 脚 上 出 现 有 效 的 中 断 信 号 时 , 中 断 标 志IE0(TCON.1)IE0(TCON.1)置置1 1,向,向CPUCPU申请中断。申请中断。 3 3、TF0TF0(TCON.5TCON.5),片内定时),片内定时/ /计数器计数器T0T0溢溢出中断请求标志。当定时出中断请求标志。当定时/ /计数器计数器T0T0发生溢发生溢出时,置位出时,置位TF0TF0,并向,并向CPUCPU申请中断。申请中断。 4 4、TF1TF1(TCON.7TCON.7),片内定时),片内定时/ /计数器计数器T1T1溢出中断请求标志。当定时溢出中断请求标志。当定时

7、/ /计数器计数器T1T1发生发生溢出时,置位溢出时,置位TF1TF1,并向,并向CPUCPU申请中断。申请中断。 5 5、RIRI(SCON.0SCON.0)或)或TITI(SCON.1SCON.1),串行口),串行口中断请求标志。当串行口接收完一帧串行数中断请求标志。当串行口接收完一帧串行数据时置位据时置位RIRI或当串行口发送完一帧串行数据或当串行口发送完一帧串行数据时置位时置位TITI,向,向CPUCPU申请中断。申请中断。 二、中断请求标志二、中断请求标志 在中断系统中,采用哪种中断,选择哪种触在中断系统中,采用哪种中断,选择哪种触发方式,要由发方式,要由TCONTCON和和SCON

8、SCON相应位规定。相应位规定。1 1、TCON(TCON(定时定时/ /计数器控制寄存器)的中断标志计数器控制寄存器)的中断标志IT0IT0(TCON.0TCON.0),外部中断),外部中断0 0触发方式控制位。触发方式控制位。 当当IT0=0IT0=0时,为低电平触发方式。时,为低电平触发方式。CPUCPU在每个机器周期在每个机器周期的的S5P2S5P2采样采样INT0#,INT0#,为为0,0,置置IE0=1,IE0=1,表示向表示向CPUCPU请求中断;为请求中断;为1 1,清零,清零IE0,IE0,表示没有中断请求。表示没有中断请求。 低电平触发方式下,低电平触发方式下,IE0IE0

9、状态完全由状态完全由INT0#INT0#决定,响应决定,响应中断时并不自动清除中断时并不自动清除IE0IE0!要由软件清除!要由软件清除!CLR IE0CLR IE0 当当IT0=1IT0=1时,为边沿触发方式(下降沿有效)。时,为边沿触发方式(下降沿有效)。 CPUCPU在每个机器周期的在每个机器周期的S5P2S5P2采样采样INT0#,INT0#,如果在连续两个机器如果在连续两个机器周期检测到周期检测到INT0#INT0#引脚由高电平变到低电平,则置引脚由高电平变到低电平,则置IE0=1IE0=1,产生中断请求。产生中断请求。 边沿触发方式下,边沿触发方式下,CPUCPU响应中断时由硬件自

10、动清响应中断时由硬件自动清IE0IE0标标志。志。IE0IE0(TCON.1TCON.1),外部中断),外部中断0 0中断请求标志位。中断请求标志位。IT1IT1(TCON.2TCON.2),外部中断),外部中断1 1触发方式控制位。触发方式控制位。IE1IE1(TCON.3TCON.3),外部中断),外部中断1 1中断请求标志位。中断请求标志位。TF0TF0(TCON.5TCON.5),定时),定时/ /计数器计数器T0T0溢出中断请求标志位。溢出中断请求标志位。T0T0启动后就开始由初值加启动后就开始由初值加1 1计数,直至最高位产生溢出使计数,直至最高位产生溢出使TF0=1TF0=1向向

11、CPUCPU发出中断请求。发出中断请求。CPUCPU响应中断时,响应中断时,TF0TF0会自动清会自动清0 0。TF1TF1(TCON.7TCON.7),定时),定时/ /计数器计数器T1T1溢出中断请求标志位。溢出中断请求标志位。TCON的低的低4位用于控制外部中断位用于控制外部中断, TCON的高的高4位用于控制定时位用于控制定时/计数器的启动和计数器的启动和中断申请。中断申请。 1 1、TCON(TCON(定时定时/ /计数器控制寄存器)的中断标志计数器控制寄存器)的中断标志2 2、SCONSCON(串行口控制寄存器)的中断标志(串行口控制寄存器)的中断标志v与中断有关的是其低与中断有关

12、的是其低2 2位位vRIRI(SCON.0SCON.0),串行口接收中断标志位。当允),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由许串行口接收数据时,每接收完一个串行帧,由硬件置位硬件置位RIRI。同样,。同样,RIRI必须由软件清除。必须由软件清除。vTITI(SCON.1SCON.1),串行口发送中断标志位。当),串行口发送中断标志位。当CPUCPU将一个发送数据写入串行口发送缓冲器时,就启将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置动了发送过程。每发送完一个串行帧,由硬件置位位TITI。CPUCPU响应中断时,不能自动清除

13、响应中断时,不能自动清除TITI,TITI必须必须由软件清除。由软件清除。 v单片机复位后,TCON和SCON各位清0。 一、中断允许控制一、中断允许控制 CPUCPU对中断系统所有中断以及某个中断源的开放和对中断系统所有中断以及某个中断源的开放和屏蔽是由屏蔽是由中断允许寄存器中断允许寄存器IEIE控制的。控制的。IEIE由软件设置。某位由软件设置。某位设设为为1 1,相应的中断源,相应的中断源允许中断允许中断;某位设为;某位设为0 0,相应的中断,相应的中断源源中断屏蔽中断屏蔽。CPUCPU复位复位时,时,IE=0IE=0, ,禁止所有中断。禁止所有中断。5.1.3 80C515.1.3 8

14、0C51中断的控制中断的控制 vEX0EX0(IE.0)(IE.0),INT0#INT0#中断允许位;中断允许位;vET0ET0(IE.1)(IE.1),定时,定时/ /计数器计数器T0T0中断允许位;中断允许位; vEX1EX1(IE.2)(IE.2),INT1#INT1#中断允许位;中断允许位;vET1ET1(IE.3)(IE.3),定时,定时/ /计数器计数器T1T1中断允许位;中断允许位;vESES(IE.4)IE.4),串行中断允许位;,串行中断允许位;vEAEA (IE.7) (IE.7), CPUCPU中断允许(总允许)位。中断允许(总允许)位。二、中断优先级控制二、中断优先级控

15、制 80C5180C51单片机有两个中断优先级,即可实现二级中断服单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由务嵌套。每个中断源的中断优先级都是由中断优先级寄存器中断优先级寄存器IPIP中的相应位的状态来设定的中的相应位的状态来设定的 。某位设定为。某位设定为1 1,则相应中断源为,则相应中断源为高优先级;某位设定为高优先级;某位设定为0 0,则相应中断源为低优先级。单片机复位时,则相应中断源为低优先级。单片机复位时,IP=0,IP=0,各中断源同为低优先级。各中断源同为低优先级。vPX0PX0(IP.0IP.0),外部中断),外部中断0 0优先级设定位;优先

16、级设定位;vPT0PT0(IP.1IP.1),定时),定时/ /计数器计数器T0T0优先级设定位;优先级设定位;vPX1PX1(IP.2IP.2),外部中断),外部中断1 1优先级设定位;优先级设定位;vPT1PT1(IP.3IP.3),定时),定时/ /计数器计数器T1T1优先级设定位;优先级设定位;vPSPS (IP.4IP.4),串行口优先级设定位。),串行口优先级设定位。 同一优先级中的中断申请不止一个时,则有同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排队,由中

17、断系统硬件确定的自然优先级形成,其排列如所示:列如所示:80C5180C51单片机的中断优先级有三条原则:单片机的中断优先级有三条原则:vCPUCPU同时接收到几个中断时,同时接收到几个中断时,首先响应优先级别最首先响应优先级别最高的中断请求高的中断请求。v正在进行的中断过程正在进行的中断过程不能被新的同级或低优先级的不能被新的同级或低优先级的中断请求所中断中断请求所中断。v正在进行的低优先级中断服务,正在进行的低优先级中断服务,能被高优先级中断能被高优先级中断请求所中断请求所中断。 为了实现上述后两条原则,为了实现上述后两条原则,中断系统内部设中断系统内部设有有用户不能寻址的高、低两个优先级

18、的状态触发器用户不能寻址的高、低两个优先级的状态触发器。高优先级状态触发器高优先级状态触发器置置1 1,表示正在响应高优先级的,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;中断,它将阻断后来所有的中断请求;低优先级状低优先级状态触发器态触发器置置1 1,表示正在响应低优先级中断,它将阻,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。断后来所有的低优先级中断请求。优先级状态触发器的复位由中断返回指令RETI控制。 v中断服务子程序必须用RETI结尾,否则后续中断将被屏蔽。5.2 80C515.2 80C51单片机中断处理过程单片机中断处理过程 一、中断响应条件一、中断

19、响应条件v 中断源有中断请求;中断源有中断请求;v 此中断源的中断允许位为此中断源的中断允许位为1 1;v CPUCPU开中断(即开中断(即EA=1EA=1)。)。同时满足时,同时满足时,CPUCPU才有可能响应中断才有可能响应中断。5.2.1 5.2.1 中断响应条件和时间中断响应条件和时间 中断服务的进入:中断服务的进入: CPUCPU执行程序过程中,在每个机器周期的执行程序过程中,在每个机器周期的S5P2S5P2期间,中断系统对各个中断源进行采样期间,中断系统对各个中断源进行采样。这。这些采样值在下一个机器周期内按优先级和内部顺些采样值在下一个机器周期内按优先级和内部顺序被依次查询。序被

20、依次查询。 如果某个中断标志在上一个机器周期的如果某个中断标志在上一个机器周期的S5P2S5P2时被置成了时被置成了1 1,那么它将于现在的查询周期中及,那么它将于现在的查询周期中及时被发现。接着时被发现。接着CPUCPU便执行一条由中断系统提供便执行一条由中断系统提供的的硬件硬件LCALLLCALL指令,转向被称作中断向量的特定指令,转向被称作中断向量的特定地址单元,进入相应的中断服务程序。地址单元,进入相应的中断服务程序。 遇以下任一条件,硬件将受阻,不产生遇以下任一条件,硬件将受阻,不产生LCALLLCALL指令:指令:vCPUCPU正在处理同级或高正在处理同级或高优先级中断;优先级中断

21、;v当前查询当前查询的机器周期的机器周期不是所执行指令的最后一个机不是所执行指令的最后一个机器周期器周期。即在完成所执行指令前,不会响应中断,从。即在完成所执行指令前,不会响应中断,从而保证指令在执行过程中不被打断;而保证指令在执行过程中不被打断;v正在执行正在执行的指令为的指令为RETRET、RETIRETI或任何访问或任何访问IEIE或或IPIP寄存寄存器的指令。即只有在这些指令后面至少再执行一条指器的指令。即只有在这些指令后面至少再执行一条指令时才能接受中断请求。令时才能接受中断请求。 若由于上述条件的阻碍中断未能得到响应,当条若由于上述条件的阻碍中断未能得到响应,当条件消失时该中断标志

22、却已不再有效,那么该中断将不件消失时该中断标志却已不再有效,那么该中断将不被响应。就是说,中断标志曾经有效,但未获响应,被响应。就是说,中断标志曾经有效,但未获响应,查询过程在下个机器周期将重新进行。查询过程在下个机器周期将重新进行。二、中断响应时间二、中断响应时间某中断的响应时序如图:某中断的响应时序如图:v若若M1M1周期的周期的S5P2S5P2前某中断生效,在前某中断生效,在S5P2S5P2期间其中断请求被锁期间其中断请求被锁存到相应的标志位中去;存到相应的标志位中去;M2M2恰逢指令的最后一个机器周期,恰逢指令的最后一个机器周期,且该指令不是且该指令不是RETIRETI或访问或访问IE

23、IE、IPIP的指令。于是,的指令。于是,M3M3和和M4M4便可便可以执行硬件以执行硬件LCALLLCALL指令,指令,M5M5周期将进入了中断服务程序。周期将进入了中断服务程序。v80C5180C51的中断响应时间(从标志置的中断响应时间(从标志置1 1到进入相应的中断服务),到进入相应的中断服务),至少要至少要3 3个个完整的机器周期。完整的机器周期。v将相应的优先级状态触发器置将相应的优先级状态触发器置1 1(以阻断(以阻断后来的同级或低级的中断请求)。后来的同级或低级的中断请求)。v执行一条硬件执行一条硬件LCALLLCALL指令,即把程序计数指令,即把程序计数器器PCPC的内容压入

24、堆栈保存,再将相应的中的内容压入堆栈保存,再将相应的中断服务程序的入口地址送入断服务程序的入口地址送入PCPC。v执行中断服务程序。执行中断服务程序。5.2.2 5.2.2 中断响应过程中断响应过程 中断响应过程的前两步是由中断系统中断响应过程的前两步是由中断系统内部自动完成的,而中断服务程序则要由内部自动完成的,而中断服务程序则要由用户编写程序来完成。用户编写程序来完成。 v编写中断服务程序时注意:v(1)由于80C51系列单片机两个相邻中断源中断服务程序入口地址相距才8个单元,一般的中断服务程序放不下,通常在相应的中断服务程序入口地址单元放一条长跳转指令LJMP,这样可以使中断服务程序能灵

25、活地安排在64kB ROM的任何地方。若在2kB范围内转移,则可以用AJMP。v(2)硬件LCALL指令,只负责将PC内的断点地址压入堆栈保护,而对其他寄存器(如PSW,A等)的内容不作保护处理。所以,在中断服务程序中,首先用软件保护现场,在中断服务之后,中断返回前恢复现场,以防止中断返回后,丢失原来寄存器的内容。 5.2.3 5.2.3 中断返回中断返回RETIRETI指令的具体功能是:指令的具体功能是:v将中断响应时压入堆栈保存的断点地址从栈将中断响应时压入堆栈保存的断点地址从栈顶弹出送回顶弹出送回PCPC,CPUCPU从原来中断的地方继续执从原来中断的地方继续执行程序;行程序;v 将相应

26、中断优先级状态触发器清将相应中断优先级状态触发器清0 0,通知中,通知中断系统,中断服务程序已执行完毕。断系统,中断服务程序已执行完毕。 注意,不能用注意,不能用RETRET指令代替指令代替RETIRETI指令。在中指令。在中断服务程序中断服务程序中PUSHPUSH指令与指令与POPPOP指令必须成对使指令必须成对使用,否则不能正确返回断点用,否则不能正确返回断点 。 若外部中断定义为若外部中断定义为电平触发方式电平触发方式,中断标志位的状态,中断标志位的状态随随CPUCPU在每个机器周期采样到的外部中断输入引脚的电平在每个机器周期采样到的外部中断输入引脚的电平变化而变化,这样能提高变化而变化

27、,这样能提高CPUCPU对外部中断请求的响应速度。对外部中断请求的响应速度。但外部中断源若有请求,必须把有效的但外部中断源若有请求,必须把有效的低电平保持到请求低电平保持到请求获得响应时为止获得响应时为止,不然就会漏掉;,不然就会漏掉;而在中断服务程序结束而在中断服务程序结束之前,中断源又必须撤消其有效的低电平之前,中断源又必须撤消其有效的低电平,否则中断返回,否则中断返回之后将再次产生中断。之后将再次产生中断。 电平触发方式适合于外部中断输入以低电平输入且中电平触发方式适合于外部中断输入以低电平输入且中断服务程序能清除外部中断请求源的情况。例如,并行接断服务程序能清除外部中断请求源的情况。例

28、如,并行接口芯片口芯片82558255的中断请求线在接受读或写操作后即被复位,的中断请求线在接受读或写操作后即被复位,因此,以其去请求电平触发方式的中断比较方便。因此,以其去请求电平触发方式的中断比较方便。 若外部中断定义为若外部中断定义为边沿触发方式边沿触发方式,在相继连续,在相继连续的两次采样中,一个周期采样到外部中断输入为高的两次采样中,一个周期采样到外部中断输入为高电平,下一个周期采样到为低电平,则在电平,下一个周期采样到为低电平,则在IE0IE0或或IE1IE1中将锁存一个逻辑中将锁存一个逻辑1 1。即便是。即便是CPUCPU暂时不能响应,中暂时不能响应,中断申请标志也不会丢失,直到

29、断申请标志也不会丢失,直到CPUCPU响应此中断时才响应此中断时才清零。这样,为保证下降沿能被可靠地采样到,清零。这样,为保证下降沿能被可靠地采样到,外外中断引脚上的高低电平(负脉冲的宽度)均至少要中断引脚上的高低电平(负脉冲的宽度)均至少要保持一个机器周期保持一个机器周期(若晶振为(若晶振为12MHz12MHz时,为时,为1 1微秒)。微秒)。 边沿触发方式适合于以负脉冲形式输入的外部边沿触发方式适合于以负脉冲形式输入的外部中断请求,如中断请求,如ADC0809ADC0809的转换结束标志信号的转换结束标志信号EOCEOC为正为正脉冲,经反相后就可以作为脉冲,经反相后就可以作为80C5180

30、C51的中断输入。的中断输入。5.2.4 5.2.4 中断程序举例中断程序举例 P3.0输出负脉冲,D触发器复位,D=0, Q#=INT0#1无效,IE0清零。 ORG 0000HSTART:LJMP MAIN ;跳转到主程序;跳转到主程序 ORG 0003H LJMP INTO ;转向中断服务程序;转向中断服务程序 ORG 0030H ;主程序;主程序 MAIN:CLR IT0 ;设为低电平触发方式设为低电平触发方式 SETB EA ;CPU开放中断开放中断 SETB EX0 ;允许中断;允许中断 MOV DPTR,#1000H ;设置数据区地址指针;设置数据区地址指针 ORG 0200H

31、;中断服务程序;中断服务程序 INT0:PUSH PSW ;保护现场;保护现场 PUSH ACC CLR P3.0 ;由;由P3.0输出输出0, NOP NOP SETB P3.0 ;由;由P3.0产生一个负脉冲用于复位产生一个负脉冲用于复位D触发器,触发器,D=0, INT0#=1, IE0清零。清零。 MOV P1, 0FFH ; P1为输入口为输入口 MOV A,P1 ;输入数据;输入数据 MOVX DPTR,A ;存入数据存储器;存入数据存储器 INC DPTR ;修改数据指针,指向下一个单元;修改数据指针,指向下一个单元 POP ACC ;恢复现场;恢复现场 POP PSW RETI

32、 ;中断返回;中断返回例例 多外部中断源的系统示例。多外部中断源的系统示例。 设有设有5 5个外部中断源,中断优先级排队顺序为:个外部中断源,中断优先级排队顺序为:XI0XI0、XI1XI1、XI2XI2、XI3XI3、XI4XI4。试设计它们与。试设计它们与80C5180C51单单片机的接口。片机的接口。或非门 ORG 0003H LJMP INSE0 ;转外部中断;转外部中断0服务程序入口服务程序入口 ORG 0013H LJMP INSE1 ;转外部中断;转外部中断1服务程序入口服务程序入口 INSE0: PUSH PSW ;XI0中断服务程序中断服务程序 PUSH ACC POP AC

33、C POP PSW RETI INSE1:PUSH PSW ;中断服务程序;中断服务程序 PUSH ACC JB P1.0,DV1 ;P1.0为为1,转,转XI1中断服务程序中断服务程序 JB P1.1,DV2 ;P1.1为为1,转,转XI2中断服务程序中断服务程序 JB P1.2,DV3 ;P1.2为为1,转,转XI3中断服务程序中断服务程序 JB P1.3,DV4 ;P1.3为为1,转,转XI4中断服务程序中断服务程序INRET:POP ACC POP PSW RETI DV1: ;XI1中断服务程序中断服务程序 AJMP INRET DV2: ;XI2中断服务程序中断服务程序 AJMP

34、INRET DV3: ;XI3中断服务程序中断服务程序 AJMP INRET DV4: ;XI4中断服务程序中断服务程序 AJMP INRET5.3 80C515.3 80C51的定时的定时/ /计数器计数器 实现定时功能,实现定时功能,比较方便的办法是利用单片机内部的定比较方便的办法是利用单片机内部的定时时/ /计数器计数器。除此也可以采用下面三种方法:。除此也可以采用下面三种方法:v软件定时软件定时:软件定时不占用硬件资源,但占用了:软件定时不占用硬件资源,但占用了CPUCPU时间,时间,降低了降低了CPUCPU的利用率。的利用率。v采用时基电路定时采用时基电路定时:例如采用:例如采用55

35、5555电路,外接必要的元器件电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。可编程。v采用可编程芯片定时采用可编程芯片定时:这种定时芯片的定时值及定时范围:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时活。在单片机的定时/ /计数器不够用时,可以考虑进行扩展。计数器不够用时,可以考虑进行扩展。5.3.

36、1 5.3.1 定时定时/ /计数器的结构和工作原理计数器的结构和工作原理 一、定时一、定时/ /计数器的结构计数器的结构 定时定时/ /计数器的实质是加计数器的实质是加1 1计数器(计数器(1616位),位),由高由高8 8位和低位和低8 8位两个寄存器组成。位两个寄存器组成。TMODTMOD是定时是定时/ /计数器的计数器的工作方式寄存器工作方式寄存器,确定工作方式和功能;确定工作方式和功能;TCONTCON是是控制寄存器控制寄存器,控制,控制T0T0、T1T1的的启动和停止及设置溢出标志启动和停止及设置溢出标志。 二、定时二、定时/ /计数器的工作原理计数器的工作原理 加加1 1计数器计

37、数器输入的计数脉冲有两个来源输入的计数脉冲有两个来源, ,一个是一个是由系统的时钟振荡器输出脉冲经由系统的时钟振荡器输出脉冲经1212分频后送来;一分频后送来;一个是个是T0T0或或T1T1引脚输入的外部脉冲源。每来一个脉冲引脚输入的外部脉冲源。每来一个脉冲计数器加计数器加1 1,当加到计数器为全,当加到计数器为全1 1时,再输入一个脉时,再输入一个脉冲就使计数器回零,且冲就使计数器回零,且计数器的溢出使计数器的溢出使TCONTCON中中TF0TF0或或TF1TF1置置1 1,向,向CPUCPU发出中断请求发出中断请求(定时(定时/ /计数器中断计数器中断允许时)。如果定时允许时)。如果定时/

38、 /计数器工作于定时模式,则计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示表示定时时间已到;如果工作于计数模式,则表示计数值已满。计数值已满。 可见,由溢出时计数器的值减去计数初值才是可见,由溢出时计数器的值减去计数初值才是加加1 1计数器的计数值计数器的计数值。 v设置为定时器模式时设置为定时器模式时,加,加1 1计数器是对内部机器周期计数(计数器是对内部机器周期计数(1 1个机器周期等于个机器周期等于1212个振荡周期,即计数频率为晶振频率的个振荡周期,即计数频率为晶振频率的1/121/12)。)。计数值计数值N机器周期机器周期Tcy=定时时间定时时间t 。v设置为设

39、置为计数器模式时计数器模式时,外部事件计数脉冲由,外部事件计数脉冲由T0T0或或T1T1引脚输入引脚输入到计数器。在每个机器周期的到计数器。在每个机器周期的S5P2S5P2期间采样期间采样T0T0、T1T1引脚电平。引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加时,则计数器加1 1,更新的计数值在下一个机器周期的,更新的计数值在下一个机器周期的S3P1S3P1期期间装入计数器。间装入计数器。检测一个从检测一个从1 1到到0 0的下降沿需要的下降沿需要2 2个机器周期,个机器周期,因此因此要求被采样的电平至少要

40、维持一个机器周期要求被采样的电平至少要维持一个机器周期。v当晶振频率为当晶振频率为12MHz12MHz时时,最高计数频率不超过,最高计数频率不超过1/2MHz1/2MHz,即计,即计数脉冲的周期要大于数脉冲的周期要大于2 2 s s。 5.3.2 5.3.2 定时定时/ /计数器的控制计数器的控制 80C51 80C51单片机定时单片机定时/ /计数器的工作由两个特殊功计数器的工作由两个特殊功能寄存器控制。能寄存器控制。TMODTMOD用于设置其工作方式;用于设置其工作方式;TCONTCON用用于控制其启动和中断申请。于控制其启动和中断申请。一、工作方式寄存器一、工作方式寄存器TMODTMOD

41、 工作方式寄存器工作方式寄存器TMODTMOD用于设置定时用于设置定时/ /计数器的计数器的工作方式,低四位用于工作方式,低四位用于T0T0,高四位用于,高四位用于T1T1。其格式。其格式如下:如下:GATEGATE:门控位。:门控位。GATEGATE0 0时,只要用软件使时,只要用软件使TCONTCON中的中的TR0TR0或或TR1TR1为为1 1,就可以启动定时,就可以启动定时/ /计数器工作;计数器工作;GATAGATA1 1时,要用时,要用软件使软件使TR0TR0或或TR1TR1为为1 1,同时外部中断引脚同时外部中断引脚INT0#INT0#或或INT1#INT1#也为也为高电平高电平

42、时,才能启动定时时,才能启动定时/ /计数器工作。计数器工作。 : :定时定时/ /计数模式选择位。计数模式选择位。 0 0为定时模式;为定时模式; =1=1为计数模式。为计数模式。M1M0M1M0:工作方式设置位。定时:工作方式设置位。定时/ /计数器有四种工作方式,由计数器有四种工作方式,由M1M0M1M0进行设置。进行设置。C /TC/TC/T 二、控制寄存器二、控制寄存器TCONTCON TCONTCON的低的低4 4位用于控制外部中断位用于控制外部中断, ,已在前面介绍。已在前面介绍。TCONTCON的高的高4 4位用位用于控制定时于控制定时/ /计数器的启动和中断申请。其格式如下:

43、计数器的启动和中断申请。其格式如下:vTF1TF1(TCON.7TCON.7):):T1T1溢出中断请求标志位溢出中断请求标志位。T1T1计数溢出时由硬件自动计数溢出时由硬件自动置置TF1TF1为为1 1。CPUCPU响应中断后响应中断后TF1TF1由硬件自动清由硬件自动清0 0。T1T1工作时,工作时,CPUCPU可随时可随时查询查询TF1TF1的状态。所以,的状态。所以,TF1TF1可用作查询测试的标志。可用作查询测试的标志。TF1TF1也可以用软件也可以用软件置置1 1或清或清0 0,同硬件置,同硬件置1 1或清或清0 0的效果一样。的效果一样。vTR1TR1(TCON.6TCON.6)

44、:):T1T1运行控制位。运行控制位。TR1TR1置置1 1时,时,T1T1开始工作开始工作;TR1TR1置置0 0时,时,T1T1停止工作。停止工作。TR1TR1由软件置由软件置1 1或清或清0 0。所以,用软件可控制定时。所以,用软件可控制定时/ /计数器计数器的启动与停止。的启动与停止。vTF0TF0(TCON.5TCON.5):):T0T0溢出中断请求标志位,其功能与溢出中断请求标志位,其功能与TF1TF1类同。类同。vTR0TR0(TCON.4TCON.4):):T0T0运行控制位,其功能与运行控制位,其功能与TR1TR1类同。类同。 5.3.3 5.3.3 定时定时/ /计数器的工

45、作方式计数器的工作方式 T0T0有四种方式:有四种方式:0,1,2,30,1,2,3。T1T1有有3 3种(方式种(方式0 0,1 1,2 2)T0T0和和T1T1前三种工作方式原理大致相同。以前三种工作方式原理大致相同。以T0T0为例:为例: 一、方式一、方式0 0 方式方式0 0为为1313位计数位计数,由,由TL0TL0的低的低5 5位(高位(高3 3位未用)和位未用)和TH0TH0的的8 8位组成。位组成。TL0TL0的低的低5 5位溢出时向位溢出时向TH0TH0进位,进位,TH0TH0溢出时,置位溢出时,置位TCONTCON中的中的TF0TF0标志,向标志,向CPUCPU发出中断请求

46、。发出中断请求。1) C/T#=0,1) C/T#=0,定时器模式定时器模式. .设定时时间为设定时时间为t,Nt,N为计数值,为计数值,TcyTcy为机器周期,则为机器周期,则 计数值计数值Nt/ Tcy 通常,在定时通常,在定时/ /计数器应用时要送计数器应用时要送TH0, TL0TH0, TL0计数初值,求定计数初值,求定时器的时器的计数初值计数初值的计算公式为:的计算公式为:定时器的初值还可以采用计数个数直接取补法获得定时器的初值还可以采用计数个数直接取补法获得。13X=2 -N例5-3 P137 若计数个数N为2, 求计数初值。 X=213-2=8190=1FFEH 或X求补=0 0

47、000 0000 0010B求补=1 1111 1111 1110B=1FFEH 门控位门控位GATEGATE具有特殊的作用。当具有特殊的作用。当GATE=0GATE=0时,经反相后时,经反相后使或门输出为使或门输出为1 1,此时仅由,此时仅由TR0TR0控制与门的开启,与门输出控制与门的开启,与门输出1 1时,控制开关接通,计数开始;时,控制开关接通,计数开始;当当GATE=1GATE=1时时,由外中断引,由外中断引脚信号控制或门的输出,此时控制脚信号控制或门的输出,此时控制与门的开启由外中断引与门的开启由外中断引脚信号和脚信号和TR0TR0共同控制共同控制。当。当TR0=1TR0=1时,外

48、中断引脚信号引脚时,外中断引脚信号引脚的的高电平启动计数高电平启动计数,外中断引脚信号引脚的,外中断引脚信号引脚的低电平停止计低电平停止计数数。这种方式常用来测量外中断引脚上正脉冲的宽度。这种方式常用来测量外中断引脚上正脉冲的宽度。 2) C/T#=1,为为计数模式,计数脉冲是计数模式,计数脉冲是T0引脚上的外部脉冲。引脚上的外部脉冲。 二、方式二、方式1 1 方式方式1 1的计数位数是的计数位数是1616位,由位,由TL0TL0作为低作为低8 8位、位、TH0TH0作作为高为高8 8位,组成了位,组成了1616位加位加1 1计数器计数器 。计数个数与计数初值的关系为:计数个数与计数初值的关系

49、为: NNX65536216v()例5-4 若要求定时器T0工作于方式1,定时时间1ms,当晶振为6MHz时,求送入TH0和TL0的计数初值各为多少?应怎样送入TH0和TL0?(P139)v解:由晶振求机器周期Tcy=v 计数个数(值) N=t/Tcyv 计数初值X=216-Nv 计数初值化成16进制数形式,高8位给TH0,底8位给TL0,v 三、方式三、方式2 2 方式方式2 2为自动重装初值的为自动重装初值的8 8位计数方式。位计数方式。 TH0TH0和和TL0TL0均装入均装入8 8位初值。当位初值。当TL0TL0计满溢出时,计满溢出时,由硬件由硬件TF0TF0置置1 1,向,向CPUC

50、PU发出中断请求,并发出中断请求,并将将TH0TH0中的计数初值自动送入中的计数初值自动送入TL0TL0.TL0.TL0从初值重从初值重新加新加1 1计数。周而复始,直到计数。周而复始,直到TR0=0TR0=0才会停止。才会停止。 工作方式2特别适合于用作较精确的脉冲信号发生器。 8X=2 -N计数个数与计数初值的关系为计数个数与计数初值的关系为: 四、方式四、方式3 3 方式方式3 3只适用于定时只适用于定时/ /计数器计数器T0T0,定时器定时器T1T1处于方式处于方式3 3时相当时相当于于TR1=0TR1=0,停止计数。,停止计数。 工作方式工作方式3 3将将T0T0分成为两个独立的分成

51、为两个独立的8 8位计数器位计数器TL0TL0和和TH0TH0/ 。P139 5.3.4 5.3.4 定时定时/ /计数器用于外部中断扩展计数器用于外部中断扩展 扩展方法是,将定时扩展方法是,将定时/ /计数器设置为计数器方式,计数初计数器设置为计数器方式,计数初值设定为满程,将待扩展的外部中断源接到定时值设定为满程,将待扩展的外部中断源接到定时/ /计数器的外计数器的外部计数引脚。从该引脚输入一个下降沿信号,计数器加部计数引脚。从该引脚输入一个下降沿信号,计数器加1 1后便后便产生定时产生定时/ /计数器溢出中断。计数器溢出中断。例如,利用例如,利用T0T0扩展一个外部中断源。将扩展一个外部

52、中断源。将T0T0设置为计数器方设置为计数器方式,按方式式,按方式2 2工作,工作,TH0TH0、TL0TL0的初值均为的初值均为0FFH0FFH,T0T0允许中断,允许中断,CPUCPU开放中断。开放中断。其初始化程序如下:其初始化程序如下: MOV TMODMOV TMOD,#06H #06H ;置;置T0T0为计数器方式为计数器方式2 2 MOV TL0 MOV TL0,#0FFH #0FFH ;置计数初值;置计数初值 MOV TH0MOV TH0,#0FFH#0FFH SETB TR0 SETB TR0 ;启动;启动T0T0工作工作 SETB EA SETB EA ;CPUCPU开中断

53、开中断 SETB ET0 SETB ET0 ;允许;允许T0T0中断中断 5.3.5 5.3.5 定时定时/ /计数器应用举例计数器应用举例 初始化程序应完成如下工作:初始化程序应完成如下工作:v对对TMODTMOD赋值,以确定赋值,以确定T0T0和和T1T1的工作方式。的工作方式。v计算初值计算初值, ,并将其写入并将其写入TH0TH0、TL0TL0或或TH1TH1、TL1TL1。v中断方式时,则对中断方式时,则对IEIE赋值,开放中断。赋值,开放中断。v使使TR0TR0或或TR1TR1置位,启动定时置位,启动定时/ /计数器定时或计数。计数器定时或计数。 例例5-6 5-6 利用定时利用定

54、时/ /计数器计数器T0T0的方式的方式1 1,产生,产生10ms10ms的定时,并的定时,并使使P1.0P1.0引脚上输出周期为引脚上输出周期为20ms20ms的方波,采用中断方式,设系的方波,采用中断方式,设系统时钟频率为统时钟频率为12 MHz12 MHz。解:解:1 1、计算计数初值、计算计数初值X X:由于晶振为由于晶振为12 MHz12 MHz,所以机器周期,所以机器周期TcyTcy为为1 1 s s。所以:所以:N Nt/ Tcy t/ Tcy 101010103/13/110106 61000010000X X655366553610000100005553655536D8F0HD8F0H即应将即应将D8HD8H送入送入TH0TH0中,中,F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论