第五章中断系统2010春_第1页
第五章中断系统2010春_第2页
第五章中断系统2010春_第3页
第五章中断系统2010春_第4页
第五章中断系统2010春_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、第第5 5章章 中断系统中断系统5.1 输入、输出数据传送的控制方式单片机与外设的数据交换方式通常有三种:查询方式、延时等待方式和中单片机与外设的数据交换方式通常有三种:查询方式、延时等待方式和中断方式。断方式。(1)查询方式)查询方式发启动外设的信号;发启动外设的信号;读入外设的状态或标志;读入外设的状态或标志;判断其是否已做好数据交换的准备;判断其是否已做好数据交换的准备;如外设未做好准备,则一直查询;如外设未做好准备,则一直查询;外设准备好了,用输入外设准备好了,用输入/输出指令进行数据交换。输出指令进行数据交换。查询方式的优点是能够自动适配外设的工作速度,缺点是花费查询方式的优点是能够

2、自动适配外设的工作速度,缺点是花费CPU时间较时间较多。在多。在CPU不太忙的情况下可采用此方式。不太忙的情况下可采用此方式。第第5 5章章 中断系统中断系统(2)延时等待方式发启动外设的信号;发启动外设的信号;延时等待一段时间;延时等待一段时间;用输入用输入/输出指令进行数据交换。输出指令进行数据交换。延时等待方式的特点是将查询方式下循环判断的时间用软件延时来等待,延时等待方式的特点是将查询方式下循环判断的时间用软件延时来等待,CPU可用这段时间执行别的程序。但是,必须事先计算好外设从得可用这段时间执行别的程序。但是,必须事先计算好外设从得到启动信号到做好数据交换的时间。到启动信号到做好数据

3、交换的时间。第第5 5章章 中断系统中断系统(3)中断方式设置中断,开中断;设置中断,开中断;当外设需要与单片机交换数据时,发中断请求;当外设需要与单片机交换数据时,发中断请求;单片机响应中断申请,执行中断服务程序,与外设交换数据。单片机响应中断申请,执行中断服务程序,与外设交换数据。中断方式下,可充分利用单片机的工作效率并适配外设的工作速度。因此,中断方式下,可充分利用单片机的工作效率并适配外设的工作速度。因此,中断方式是应用最多的一种中断方式是应用最多的一种I/O数据交换方式。但中断方式需要的硬数据交换方式。但中断方式需要的硬件资源较多。件资源较多。第第5 5章章 中断系统中断系统第三节第

4、三节 MCS-51单片机的中断系统单片机的中断系统实时控制、故障自动处理时用到中断系统,计算机与实时控制、故障自动处理时用到中断系统,计算机与外围设备间传送数据及实现人机联系也常常用到中断系统。外围设备间传送数据及实现人机联系也常常用到中断系统。MCS-51中断系统的功能为:中断系统的功能为:5个中断源;个中断源;2个中断优先级,个中断优先级,从而可实现二级中断嵌套;每一个中断源的优先级可由程序从而可实现二级中断嵌套;每一个中断源的优先级可由程序设定。与中断系统工作有关的设定。与中断系统工作有关的SFR有有IE、IP以及以及TCON。第第5 5章章 中断系统中断系统一、一、 中断的概念中断的概

5、念计算机中的中断是指计算机中的中断是指CPU在处理某件事情的时候,外部发生在处理某件事情的时候,外部发生了某一事件请求了某一事件请求CPU迅速去处理,于是迅速去处理,于是CPU暂时中断当前的工暂时中断当前的工作,转入处理所发生的事件,中断访问处理完后,再回到原来作,转入处理所发生的事件,中断访问处理完后,再回到原来被中断的地方,继续原来的工作的过程称为中断,如图被中断的地方,继续原来的工作的过程称为中断,如图5-1所示所示。实现这种功能的部件称为中断系统(中断机构),产生中断。实现这种功能的部件称为中断系统(中断机构),产生中断的请求源称为中断源。的请求源称为中断源。第第5 5章章 中断系统中

6、断系统图5-1 中断流程第第5 5章章 中断系统中断系统二、二、 中断系统的功能中断系统的功能 MCS-51的中断系统具有以下中断功能:的中断系统具有以下中断功能:1 能实现中断及返回。能实现中断及返回。2 能实现中断优先级排队。能实现中断优先级排队。3 能实现中断嵌套。能实现中断嵌套。图5-2 中断嵌套流程第第5 5章章 中断系统中断系统第第5 5章章 中断系统中断系统三、中断源三、中断源1 外中断类外中断类即外部中断即外部中断0和外部中断和外部中断1。 中断请求信号分别由引脚中断请求信号分别由引脚 (P3.2)和)和 (P3.3)引入)引入外部中断请求有两种信号方式,外部中断请求有两种信号

7、方式,电平方式:电平方式:当引脚上出现低电平时就向当引脚上出现低电平时就向CPU申请中断,申请中断,CPU响应中断后要采取措施撤消中断请求信号,使引脚恢复高响应中断后要采取措施撤消中断请求信号,使引脚恢复高电平。电平。脉冲方式:脉冲方式:当引脚上出现负跳变时,该负跳变经边沿检当引脚上出现负跳变时,该负跳变经边沿检测器使测器使IE0或或IE1置置1,向,向CPU申请中断。申请中断。CPU响应中断后由硬响应中断后由硬件自动清除件自动清除IE0和和IE1。CPU在每个机器周期采样在每个机器周期采样INT0*和和INT1*,为了保证检测到负跳变,引脚上的高电平与低电平至,为了保证检测到负跳变,引脚上的

8、高电平与低电平至少应各自保持一个机器周期。少应各自保持一个机器周期。第第5 5章章 中断系统中断系统2定时器定时器/计数器计数器0、1溢出中断溢出中断 定时器定时器/ /计数器计数溢出时,由硬件分别置计数器计数溢出时,由硬件分别置TF0=1TF0=1和和TF1=1TF1=1,向,向CPUCPU申请中断。申请中断。CPUCPU响应中断后,响应中断后,由硬件自动清除由硬件自动清除TF0TF0和和TF1TF1第第5 5章章 中断系统中断系统3 3串行接口中断串行接口中断串行接口的中断请求由发送或接收所引起。串行串行接口的中断请求由发送或接收所引起。串行口发送了一帧信息,便由硬件置口发送了一帧信息,便

9、由硬件置TITI1 1,向,向CPUCPU申请中断。串行口接收了一帧信息,便由硬件申请中断。串行口接收了一帧信息,便由硬件置置RIRI1 1,向,向CPUCPU申请中断。申请中断。CPUCPU响应中断后必响应中断后必须由软件清除须由软件清除TITI和和RIRI。第第5 5章章 中断系统中断系统中断标志位中断标志位除外部中断电平触发方式外,其它各中断实际上除外部中断电平触发方式外,其它各中断实际上由标志位由标志位IE0IE0、IE1IE1、TF0TF0、TF1TF1、TITI、RIRI置位引置位引起的。这些标志位除了由相应的硬件置位外,起的。这些标志位除了由相应的硬件置位外,还可以由软件置位。如

10、果需要,可以由程序安还可以由软件置位。如果需要,可以由程序安排产生中断。排产生中断。第第5 5章章 中断系统中断系统四、四、 中断控制中断控制与中断控制有关的寄存器共四个,与中断控制有关的寄存器共四个,定时器控制寄存器定时器控制寄存器 TCON串行口控制寄存器。串行口控制寄存器。 SCON 中断允许控制寄存器中断允许控制寄存器 IE 中断优先控制寄存器中断优先控制寄存器 IP第第5 5章章 中断系统中断系统1定时器控制寄存器(定时器控制寄存器(TCON) 该寄存器地址为该寄存器地址为88H,其位地址为,其位地址为8FH88H。寄存器的内。寄存器的内容及位地址表示如下:容及位地址表示如下:位地址

11、位地址8F8E8D8C8B8A8988位符号位符号 TF1TR1TF0TR0IE1IT1IE0IT0 IE0 (IE1)外中断请求标志位外中断请求标志位当当CPU采样到采样到 (或)(或) 端出现有效中断请求时,此位端出现有效中断请求时,此位由硬件置由硬件置1。在中断响应完成后转向中断服务时,再由硬件。在中断响应完成后转向中断服务时,再由硬件自动清零。自动清零。 0INT1INT第第5 5章章 中断系统中断系统 IT0(IT1)外中断请求信号方式控制位外中断请求信号方式控制位 IT0(IT1)=1 脉冲方式(后沿负跳有效)脉冲方式(后沿负跳有效) IT0(IT1)=0 电平方式(低电平有效)电

12、平方式(低电平有效) 此位由软件置此位由软件置1或清或清0。位地址位地址8F8E8D8C8B8A8988位符号位符号 TF1TR1TF0TR0IE1IT1IE0IT0第第5 5章章 中断系统中断系统2串行口控制寄存器(串行口控制寄存器(SCON)该寄存器地址为该寄存器地址为98H,其位地址为,其位地址为9FH98H。位地址位地址9F9E9D9C9B9A9998位符号位符号 SM0 SM1 SM2 REN TB8RB8TIRITI串行口发送中断请求标志位串行口发送中断请求标志位 当发送完一帧串行数据后,由硬件置当发送完一帧串行数据后,由硬件置1,在转向中断服务,在转向中断服务程序后,必须用软件清

13、程序后,必须用软件清0。RI串行口接收中断请求标志位串行口接收中断请求标志位当接收完一帧串行数据后,由硬件置当接收完一帧串行数据后,由硬件置1;在转向中断服务程;在转向中断服务程序后,必须用软件清序后,必须用软件清0。第第5 5章章 中断系统中断系统3中断允许控制寄存器(中断允许控制寄存器(IE)该寄存器地址为该寄存器地址为A8H,其位地址为,其位地址为AFHA8H。 位地位地址址AFAEADACABAAA9A8位符位符号号EA1/0/0ES0ET11EX10ET00EX01 EA中断允许总控制位中断允许总控制位 EA=0 中断总禁止,禁止所有中断。中断总禁止,禁止所有中断。 E EA=1 中

14、断总允许。当中断总允许后,某个中中断总允许。当中断总允许后,某个中断的禁止或允许由各中断源的中断允许控制位进行设置。断的禁止或允许由各中断源的中断允许控制位进行设置。第第5 5章章 中断系统中断系统EX0(EX1)外部中断允许控制位外部中断允许控制位 EX0(EX1)0 禁止外中断禁止外中断 EX0(EX1)1 允许外中断允许外中断ET0(ET1)定时计数中断允许控制位定时计数中断允许控制位 ET0(ET1)0 禁止定时(或计数)中断禁止定时(或计数)中断 ET0(ET1)1 允许定时(或计数)中断允许定时(或计数)中断ES串行中断允许控制位串行中断允许控制位 ES=0 禁止串行中断禁止串行中

15、断 ES=1 允许串行中断允许串行中断单片机复位后单片机复位后(IE)00H,中断系统处于禁止状态。,中断系统处于禁止状态。 中断允许与禁止,就是中断的开放与关闭。中断允许与禁止,就是中断的开放与关闭。第第5 5章章 中断系统中断系统4中断优先级控制寄存器(中断优先级控制寄存器(IP) IP寄存器地址寄存器地址B8H,位地址为,位地址为BFHB8H。位地址位地址BFBEBDBCBBBAB9B8位符号位符号/0/0/0PS0PT10PX10PT00PX01PX0外部中断外部中断0优先级设定位优先级设定位PT0定时中断定时中断0优先级设定位优先级设定位PX1外部中断外部中断l优先级设定位优先级设定

16、位PT1定时中断定时中断1优先级设定位优先级设定位PS 串行中断优先级设定位串行中断优先级设定位 X =0, 优先级为低;优先级为低;X=X=1, 优先级为高。优先级为高。 第第5 5章章 中断系统中断系统中断优先级是为中断嵌套服务的,中断优先级是为中断嵌套服务的,MCS51中断优先级的控中断优先级的控制原则是:制原则是: 低优先级中断请求不能打断高优先级的中断服务;但高低优先级中断请求不能打断高优先级的中断服务;但高优先级中断请求可以打断低优先级的中断服务,从而实现中断优先级中断请求可以打断低优先级的中断服务,从而实现中断嵌套。嵌套。 如果一个中断请求已被响应,则同级的其它中断响应将如果一个

17、中断请求已被响应,则同级的其它中断响应将被禁止。被禁止。 如果同级的多个中断请求同时出现,则按如果同级的多个中断请求同时出现,则按CPU设定的自设定的自然优先级确定那个中断请求被响应。然优先级确定那个中断请求被响应。第第5 5章章 中断系统中断系统MCS51同一优先级中断源的优先级排列顺序:同一优先级中断源的优先级排列顺序:外部中断外部中断0定时中断定时中断0外部中断外部中断1定时中断定时中断1串行中断串行中断这其实是这其实是CPU查询各中断的次序。查询各中断的次序。第第5 5章章 中断系统中断系统习习 题题分析以下几种中断优先级的排列顺序(由高到低)是否可能?并说明理分析以下几种中断优先级的

18、排列顺序(由高到低)是否可能?并说明理由。由。(1)定时器)定时器T0溢出中断,定时器溢出中断,定时器T1溢出中断,外部中断溢出中断,外部中断INT0*、外部、外部中断中断INT1*、串行口中断、串行口中断(2)外部中断)外部中断INT0*、定时器、定时器T1溢出中断、定时器溢出中断、定时器T0溢出中断、外部溢出中断、外部中断中断INT1*、串行口中断、串行口中断(3)串行口中断、定时器)串行口中断、定时器T0溢出中断,外部中断溢出中断,外部中断INT0*、外部中断、外部中断INT1*、定时器、定时器T1溢出中断溢出中断(4)外部中断)外部中断INT0*、定时器、定时器T1溢出中断、外部中断溢

19、出中断、外部中断INT1*、定时器、定时器T0溢出中断,串行口中断溢出中断,串行口中断(5)外部中断)外部中断INT0*、外部中断、外部中断INT1*、串行口中断、定时器、串行口中断、定时器T0溢出中溢出中断,定时器断,定时器T1溢出中断溢出中断第第5 5章章 中断系统中断系统5中断控制寄存器状态设置中断控制寄存器状态设置 这四个控制寄存器都是既可进行这四个控制寄存器都是既可进行字节寻址字节寻址又可进行又可进行位寻址位寻址的的。初始化方式:初始化方式:字节操作指令,位操作指令。字节操作指令,位操作指令。例例 在中断允许控制寄存器在中断允许控制寄存器IE中,假定要开放外部中断中,假定要开放外部中

20、断0和定和定时中断时中断1,为:,为:字节操作指令:字节操作指令: MOV IE,#89H位操作指令:位操作指令: SETB EASETB EX0SETB ET1其它各中断控制寄存器与此类似。其它各中断控制寄存器与此类似。第第5 5章章 中断系统中断系统例例1.8031芯片的芯片的INT0*、INT1*引脚分别输入压力引脚分别输入压力超限和温度超限中断请求信号,定时器超限和温度超限中断请求信号,定时器/计数器计数器0做定时检测的实时时钟,用户规定的中断优先权做定时检测的实时时钟,用户规定的中断优先权排列次序为:排列次序为:压力超限压力超限 温度超限温度超限 定时检测定时检测 要求确定要求确定I

21、E、IP的内容,以实现上述要求的内容,以实现上述要求。IE=87H,IP=05H第第5 5章章 中断系统中断系统5.5 中断响应中断响应中断响应的中断响应的 条件:条件:(1)中断源有中断请求。)中断源有中断请求。(2)中断允许寄存器)中断允许寄存器IE相应位置相应位置1,CPU开户中开户中断。断。(3)无同级或高级中断正在处理。)无同级或高级中断正在处理。(4)当前的指令周期已经结束。)当前的指令周期已经结束。(5)若现行指令为)若现行指令为RETI或访问或访问IE或或IP指令时,指令时,执行完该指令且紧随着的另一条指令已执行完。执行完该指令且紧随着的另一条指令已执行完。单片机在紧接着的下一

22、个机器周期的单片机在紧接着的下一个机器周期的S1期间响应期间响应中断源的中断请求。中断源的中断请求。第第5 5章章 中断系统中断系统CPU响应中断后,由硬件执行如下功能:响应中断后,由硬件执行如下功能:(1)根据中断源的优先级高低,使相应的优先级状态触发器)根据中断源的优先级高低,使相应的优先级状态触发器置置1。(2)保留断点,把程序计数器)保留断点,把程序计数器PC的当前值推入堆栈保存。的当前值推入堆栈保存。(3)清相应的中断请求标志位)清相应的中断请求标志位TF0、TF1、IE0、IE1 。(4)把被响应的中断服务程序的入口地址送入)把被响应的中断服务程序的入口地址送入PC,从而转入,从而

23、转入相应的中断服务程序。相应的中断服务程序。中断服务程序的最后一条指令必须是中断返回指令中断服务程序的最后一条指令必须是中断返回指令RETI。CPU执行该指令时,先将相应的优先级状态触发器清零,然执行该指令时,先将相应的优先级状态触发器清零,然后从堆栈中弹出栈顶的二个字节到后从堆栈中弹出栈顶的二个字节到PC,从而返回到断点。,从而返回到断点。有些中断请求的撤除也要由中断服务程序来实现。有些中断请求的撤除也要由中断服务程序来实现。现场数据的保护和弹出?现场数据的保护和弹出?第第5 5章章 中断系统中断系统中断响应时间:中断响应时间:38个机器周期个机器周期第第5 5章章 中断系统中断系统六、六、

24、 中断请求的撤除中断请求的撤除CPU响应中断请求后,在中断返回(执行响应中断请求后,在中断返回(执行RETI)前,必须撤)前,必须撤除请求,否则会错误的再次引起中断过程。除请求,否则会错误的再次引起中断过程。对于定时器对于定时器/计数器计数器0、1的中断请求以及跳变触发方式的外部的中断请求以及跳变触发方式的外部中断中断0、1,CPU在响应中断后用硬件清除了相应的中断请求在响应中断后用硬件清除了相应的中断请求标志标志TF0、TF1、IE0、IE1,即自动撤除了中断请求。,即自动撤除了中断请求。对于串行接口中断,对于串行接口中断,CPU响应中断后没有用硬件清除中断标响应中断后没有用硬件清除中断标志

25、位,必须用用户编制的中断服务程序来清除相应的中断志位,必须用用户编制的中断服务程序来清除相应的中断标志位。标志位。对于电平触发的外部中断,由于对于电平触发的外部中断,由于CPU对对INT0*、INT1*引脚没引脚没有控制作用,也没有相应的中断请求标志位,因此需要外有控制作用,也没有相应的中断请求标志位,因此需要外接电路来清除中断请求信号。接电路来清除中断请求信号。第第5 5章章 中断系统中断系统七、七、 中断技术应用举例中断技术应用举例主程序和中断服务程序。主程序和中断服务程序。在编写主程序时应注意以下几点:在编写主程序时应注意以下几点: (1) 主程序的起始地址。主程序的起始地址。MCS-5

26、1单片机复位后,单片机复位后,PC=0000H,而各中断源的入口地址为,而各中断源的入口地址为0003H0023H。因此。因此,在编写程序时应在,在编写程序时应在0000H处使用一条转移指令,跳过上述处使用一条转移指令,跳过上述区域。主程序则以转移指令的目的地址作为其起始地址。区域。主程序则以转移指令的目的地址作为其起始地址。 第第5 5章章 中断系统中断系统ORG0000HLJMPMAINORG0003HLJMPSUMORG1000HMAIN:第第5 5章章 中断系统中断系统(2) 主程序的初始化内容。主程序的初始化内容。 MCS-51中断系统的功能是通过上述特殊功能寄存器进中断系统的功能是

27、通过上述特殊功能寄存器进行统一管理的,中断系统的初始化是指用户对这些特殊功能行统一管理的,中断系统的初始化是指用户对这些特殊功能寄存器中的各控制位进行赋值。寄存器中的各控制位进行赋值。 初始化包括:相应中断源开中断;设定所涉及中断源的初始化包括:相应中断源开中断;设定所涉及中断源的中断优先级;若为外部中断,应规定其触发方式。中断优先级;若为外部中断,应规定其触发方式。第第5 5章章 中断系统中断系统例例5-1 编写编写INT1*为低电平触发的初始化程序。为低电平触发的初始化程序。(1)采用位操作指令实现)采用位操作指令实现 CLR IT1 ;电平触发方式;电平触发方式SETB EA;总中断允许

28、;总中断允许SETB EX1;设置外部中断;设置外部中断1允许允许SETB PX1;设置;设置INT1*为高优先级断为高优先级断(2)采用字节操作指令)采用字节操作指令 ANL TCON,#0FBH MOV IE,#84HORLIP,#04H第第5 5章章 中断系统中断系统例例5-2 利用利用INT0*实现单步操作。实现单步操作。MCS-51中断系统有个特点,当执行中断返回指令中断系统有个特点,当执行中断返回指令RETI后,后,至少还要执行一条指令,才能响应新的中断请求。至少还要执行一条指令,才能响应新的中断请求。单步操作是通过外部中断单步操作是通过外部中断INT0*引脚上的低电平实现,即按引

29、脚上的低电平实现,即按一次键执行一条指令。一次键执行一条指令。第第5 5章章 中断系统中断系统ORG0000HLJMPMAINORG0003HLJMPFUNINT0MAIN:MOV SP,#60HSEBIT0;脉冲触发方式;脉冲触发方式SETBEA;总中断允许;总中断允许SETBEX0;允许外部中断;允许外部中断0中断中断 SETB PX0;设置;设置INT0*为高优先级断为高优先级断MOV A,#0SJMP $FUNINT0:PUSH INC ACJNEA,#100,FUNRCLR EX0SETB P1.0POP FUNR:RETIEND第第5 5章章 中断系统中断系统例例5-3 外部中断源

30、扩展。外部中断源扩展。当外部中断源多于当外部中断源多于2个时,可采用硬件申请与软件查询的方法个时,可采用硬件申请与软件查询的方法扩展外部中断。扩展外部中断。 80511 EXT0EXT1EXT2EXT3P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7LED R0INT第第5 5章章 中断系统中断系统ORG 0000HJLMP MAINORG 0003HLJMP EXINT ;转外部中断;转外部中断1服务程序服务程序 EXINT:PUSH PSWPUSH A;保护现场。;保护现场。JB P1.0, EXT0 JB P1.1, EXT1 JB P1.2, EXT2 JB P1.3,

31、 EXT3 DONE: POP APOP PSW ;恢复现场。;恢复现场。RETI;中断返回。;中断返回。 第第5 5章章 中断系统中断系统EXT0: SETBP1.4 AJMP DONEEXT1: SETBP1.5 AJMP DONEEXT2: SETBP1.6 AJMP DONEEXT3: SETBP1.7 AJMP DONE第第5 5章章 中断系统中断系统例例5-4 统计脉冲触发方式的的个数,若满统计脉冲触发方式的的个数,若满100个,则停止统计个,则停止统计并将并将P1.0置置1。ORG 0000HLJMP MAINORG 0003HLJMP SUM ORG 1000HMAIN:MOV

32、 A,00H;主程序开始;主程序开始SETB IT0;设置脉冲触发方式;设置脉冲触发方式SETB IE0;设置外部中断;设置外部中断0允许允许SETB EA;总中断允许;总中断允许SJMP $;等待中断;等待中断第第5 5章章 中断系统中断系统SUM:INCACJNE A,#100, QUITCLR EA;总中断禁止;总中断禁止CLRIE0;外部中断;外部中断0禁止禁止 SETB P1.0;置位;置位P1.0QUIT:RETI;中断返回;中断返回END第第5 5章章 中断系统中断系统习习 题题1、8051单片机提供了单片机提供了哪哪几个中断源?有几个中断源?有哪哪几个中断优先级几个中断优先级别

33、?各中断源所对应的中断矢量地址是多少?别?各中断源所对应的中断矢量地址是多少?2、外部中断有几种触发方式?如何选择?、外部中断有几种触发方式?如何选择?3、中断响应怎样保护断点地址和保护现场?、中断响应怎样保护断点地址和保护现场?4、在、在MCS-51单片机中,各中断标志是如何产生的?哪些中单片机中,各中断标志是如何产生的?哪些中断标志可以随中断响应而自动撤除?哪些需要由用户撤除?断标志可以随中断响应而自动撤除?哪些需要由用户撤除?撤除的方法是什么?撤除的方法是什么? 6、写出、写出INT0*为边沿触发方式的中断初始化程序。为边沿触发方式的中断初始化程序。7、什么是中断优先级?中断优先处理的原

34、则是什么?、什么是中断优先级?中断优先处理的原则是什么?第第5 5章章 中断系统中断系统第四节第四节 定时器定时器/ /计数器计数器一、一、 定时器定时器/计数器的结构和原理计数器的结构和原理 两个两个16位的可编程定时器位的可编程定时器/计数器,计数器,T0,T1。 两个特殊功能寄存器:两个特殊功能寄存器:方式寄存器和控制寄存器。方式寄存器和控制寄存器。定时器定时器/计数器的计数器的 核心是内部的核心是内部的16位加法计数器,分别用位加法计数器,分别用TH0、TL0和和TH1、TL1表示,在使用时先给加法计数器设表示,在使用时先给加法计数器设定初值,然后加定初值,然后加1计数,直到溢出,计数

35、的次数就是最大值计数,直到溢出,计数的次数就是最大值减去初值。减去初值。 第第5 5章章 中断系统中断系统第第5 5章章 中断系统中断系统二、定时和计数两种功能二、定时和计数两种功能1计数功能计数功能 计数:对外部事件进行计数计数:对外部事件进行计数。 外部事件的发生以输入脉冲表示,因此计数功能的实质外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外来脉冲进行计数。外部输入的脉冲在负跳变时有效,就是对外来脉冲进行计数。外部输入的脉冲在负跳变时有效,进行计数器加进行计数器加1(加法计数)(加法计数) 。 计数输入端:计数输入端:T0(P3.4 )和)和T1(P3.5)。)。第第5 5章章

36、中断系统中断系统1计数功能计数功能 定时器定时器/计数器在每个机器周期的计数器在每个机器周期的S5P2期间采样期间采样T0/T1引脚,若采样结果表明上一周期为高电平,下一引脚,若采样结果表明上一周期为高电平,下一周期为低电平,则周期为低电平,则TL加加1。新的计数值在检测到负跳变。新的计数值在检测到负跳变后的后的S3P1期间置入加法计数器。由于需要两个机器周期间置入加法计数器。由于需要两个机器周期才能识别高电平到低电平的跳变,期才能识别高电平到低电平的跳变,所以外部计数脉冲所以外部计数脉冲的频率应小于的频率应小于fosc/24,且高电平与低电平的持续时间均,且高电平与低电平的持续时间均不得小于

37、一个机器周期。不得小于一个机器周期。第第5 5章章 中断系统中断系统第第5 5章章 中断系统中断系统2定时功能定时功能实现方法:通过计数器的计数实现。实现方法:通过计数器的计数实现。与计数功能的不同之处:与计数功能的不同之处:计数脉冲来自单片机的内部,即计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每个机器周期计数每个机器周期产生一个计数脉冲,也就是每个机器周期计数器加器加1。 一个机器周期一个机器周期=12个振荡周期,个振荡周期, 故,计数频率为振荡频率的故,计数频率为振荡频率的1/12。若:单片机晶振若:单片机晶振6MHz,则计数频率为则计数频率为0.5MHz, 2微秒计

38、数器加微秒计数器加1.第第5 5章章 中断系统中断系统将控制字写入定时器将控制字写入定时器/计数器的过程叫定时器计数器的过程叫定时器/计数计数器的器的初始化初始化。 初始化内容:初始化内容: 规定规定T0、T1的工作方式;的工作方式;(TMOD) 将工作方式控制字写入方式寄存器将工作方式控制字写入方式寄存器赋定时赋定时/计数初值计数初值;(TH0,TL0;TH1,TL1)规定规定T0、T1的工作状态的工作状态。(TR0/TR1) 将工作状态控制字写入控制寄存器将工作状态控制字写入控制寄存器第第5 5章章 中断系统中断系统三、三、 工作模式寄存器和控制寄存器工作模式寄存器和控制寄存器1定时器控制

39、寄存器(定时器控制寄存器(TCON,88H)位地址位地址8F8E8D8C8B8A8988位符号位符号TF1TR1TF0TR0IE1IT1IE0IT0第第5 5章章 中断系统中断系统 TF0(TF1)计数溢出标志位计数溢出标志位若若有溢出,有溢出,TF0(TF1)1 无溢出,无溢出,TF0(TF1)0 有溢出时,当转向中断服务时,再由硬件自动有溢出时,当转向中断服务时,再由硬件自动清清0。 TF0(TF1)的使用方式:)的使用方式: 中断方式时中断方式时,作中断请求标志位来使用,作中断请求标志位来使用, 查询方式时查询方式时,作查询状态位来使用。,作查询状态位来使用。TF0(TF1)也可以用程序

40、置位或清零,例如执行指令)也可以用程序置位或清零,例如执行指令SETB TF1后后TF11。所以定时器。所以定时器/计数器计数器1的中断请求还能用程序安的中断请求还能用程序安排产生。排产生。第第5 5章章 中断系统中断系统 TR0(TR1)定时器定时器T0(T1)运行控制位运行控制位当当TR0(TR1)1时,启动定时器开始工作。时,启动定时器开始工作。当当GATE0时,时,TR0(TR1)置置1,启动定时器开始工作。,启动定时器开始工作。当当GATE=1时,且时,且INTi*为高电平时,为高电平时,TR0(TR1)置置1启动定启动定时器工作;由软件清零关闭定时器。时器工作;由软件清零关闭定时器

41、。第第5 5章章 中断系统中断系统 2. 定时器工作方式寄存器(定时器工作方式寄存器(TMOD,89H)作用:设置两个定时器作用:设置两个定时器/计数器工作方式。计数器工作方式。但但TMOD寄存器寄存器不能位寻址,只能用字节传送指令设置不能位寻址,只能用字节传送指令设置其内容。其内容。位序号位序号 D7D6D5D4 D3D2D1D0位符号位符号GATEC/TM1M0GATEC/TM1M0 T1 T0 M1、M0工作方式选择位。可形成工作方式选择位。可形成4种编码,对应于四种编码,对应于四种工作方式。种工作方式。第第5 5章章 中断系统中断系统M1 M0工作方式工作方式功功 能能 描描 述述0

42、00 11 01 1方式方式 0方式方式1方式方式2方式方式313位计数器位计数器16位计数器位计数器自动重装初值的自动重装初值的8位计数器位计数器定时器定时器0:分成两个:分成两个8位计位计数器数器定时器定时器1:停止计数:停止计数第第5 5章章 中断系统中断系统 定时方式或计数方式选择位定时方式或计数方式选择位 0定时工作方式定时工作方式1计数工作方式计数工作方式 GATE门控位门控位 GATE0以运行控制位以运行控制位TR0(TR1)启动定时器)启动定时器 GATE1 以外中断请求信号以外中断请求信号 和和TR0(TR1)共同启动定时器)共同启动定时器 复位时,复位时,TMOD0。 举例

43、如下:举例如下: T/CT/CT/CINT1 0INT或或第第5 5章章 中断系统中断系统设设 定时器定时器1为定时工作方式,要求由软件启动定时器为定时工作方式,要求由软件启动定时器1,按方式按方式2工作。定时器工作。定时器0为计数方式,要求由软件启动定时为计数方式,要求由软件启动定时器器0,按方式,按方式1工作。工作。第第5 5章章 中断系统中断系统 MOV TMOD,#25H。位序号位序号 D7D6D5D4 D3D2D1D0位符号位符号GATE 0C/T0M11M00GATE0C/T1M10M01第第5 5章章 中断系统中断系统四、四、 定时器定时器/计数器的四种工作模式计数器的四种工作模

44、式四种工作方式四种工作方式: 即方式即方式0、方式、方式1、方式、方式2和方式和方式3。其中其中: 方式方式0、1和和2下,下,T0和和T1的工作方式相同,的工作方式相同, 方式方式3下,两个定时器的工作方式不同。下,两个定时器的工作方式不同。1、 方式方式0 13位计数结构的工作方式。位计数结构的工作方式。 图图5-7是定时器是定时器/计数器计数器0在工作方式在工作方式0下的逻辑结构。下的逻辑结构。 T1的结构和操作与的结构和操作与T0完全相同。完全相同。第第5 5章章 中断系统中断系统图图5-7 T0(或(或T1)方式)方式0结构结构TMOD0TMOD1TMOD2TMOD3M0M1C/TG

45、ATE00振 荡 器 12T0引 脚INTO引 脚1 1&AB TH0(8位 ) TL0(5位 )C/T 1C/T 0控 制KTCON中 断TF0TR0TMOD第第5 5章章 中断系统中断系统当当GATE0时,时, 若若TR0=1,接通计数控制,接通计数控制K,启动,启动T0在原计数值在原计数值上加上加1计数,直至溢出。计数,直至溢出。 若若TR00,则关断控制开关,停止计数。,则关断控制开关,停止计数。当当GATE1,且,且TR01时,时, 或门、与门全部打开,外信号电平或门、与门全部打开,外信号电平 通过引脚通过引脚 直接开启或关断定时器计数。直接开启或关断定时器计数。 输入输入1

46、电平时,允许计数,否则停止计数。电平时,允许计数,否则停止计数。0INT第第5 5章章 中断系统中断系统由于定时器由于定时器/计数器以加计数器以加1方式计数,方式计数,当定时器当定时器/计数器用于计数器用于计数工作计数工作方式时,假定要求的计数长度方式时,假定要求的计数长度为为N,则应装入定时器,则应装入定时器/计数器的初值计数器的初值 X213N。 在方式在方式0下,计数的长度范围为下,计数的长度范围为18192。 第第5 5章章 中断系统中断系统2、 方式方式1计数器由计数器由TH 8位和位和TL8位构成。位构成。当定时器当定时器/计数器用于计数工作方式时,假定要求的计数长度计数器用于计数

47、工作方式时,假定要求的计数长度为为N,则应装入定时器,则应装入定时器/计数器的初计数器的初值值X216N。在方式在方式0下,计数的长度范围为下,计数的长度范围为165536。当工作于定时状态时,若需要的定时时间为当工作于定时状态时,若需要的定时时间为Tc,则需要的机,则需要的机器周期数器周期数NTc/Tp(Tp机器周期),则应装入定时器机器周期),则应装入定时器/计数计数器的初值器的初值X216N。若晶振频率为若晶振频率为12MHz,则当,则当X65535时,具有最小的定时时时,具有最小的定时时间为间为1us; 当当N65536时,具有最大的定时时间为时,具有最大的定时时间为65536us65

48、ms。第第5 5章章 中断系统中断系统M0M1C/TGATE中 断INTO引 脚1T0引 脚振 荡 器01 1B&C/T 1A 12C/T 0 TH0(8位 ) TL0(8位 )控 制KTR0TF0图图6-3 T0(或(或T1)方式)方式1结构结构16位计数器位计数器第第5 5章章 中断系统中断系统3、 方式方式2方式方式2具有自动重新加载功能,即自动加载计数初值。具有自动重新加载功能,即自动加载计数初值。在该工作方式下,把在该工作方式下,把16位计数器分为两部分,即位计数器分为两部分,即以以TL作计数器作计数器,以以TH作预置寄存器作预置寄存器,初始化时把计数初值分别装入,初始化时把

49、计数初值分别装入TL和和TH中。中。当计数溢出时,由预置寄存器当计数溢出时,由预置寄存器TH以硬件方法以硬件方法自动给计数器自动给计数器TL重新加载,继续计数,循环重复。重新加载,继续计数,循环重复。第第5 5章章 中断系统中断系统图图6-4 T0(或(或T1)方式)方式2结构结构8位计数器位计数器第第5 5章章 中断系统中断系统4方式方式3前三种工作方式下,前三种工作方式下,T0和和T1的设置和使用是完全相同的。的设置和使用是完全相同的。但是在工作方式但是在工作方式3下,二者的设置和使用却是不同的,因此要分下,二者的设置和使用却是不同的,因此要分开介绍。开介绍。(1) 在工作方式在工作方式3

50、下,下,T0被拆成两个独立的被拆成两个独立的8位计数器位计数器TL0和和TH0。其中其中TL0既可以作计数使用,又可以作定时使用。既可以作计数使用,又可以作定时使用。 T0的各控制位、引脚和中断源,即、的各控制位、引脚和中断源,即、GATE、TR0、TF0 和和T0(P3.4)引脚、)引脚、 (P3.2)引脚全归它使用。)引脚全归它使用。 功能和操作与方式功能和操作与方式1完全相同,而且逻辑电路结构也很相似完全相同,而且逻辑电路结构也很相似,如图,如图6-5所示。所示。 T/C0INT第第5 5章章 中断系统中断系统 图图6-5 T0工作方式工作方式3逻辑结构逻辑结构M0M1C/TGATE00

51、振 荡 器 12T0引 脚C/T 1C/T 0INTO引 脚 11A&B控 制控 制 TL0(8位 ) TH0(8位 )TR1TF1TF0TR0中 断中 断第第5 5章章 中断系统中断系统若将若将T1强行设置为模式强行设置为模式3,就会使,就会使T1立即停止工作。立即停止工作。第第5 5章章 中断系统中断系统初值初值计数值计数值定时时间定时时间方式方式0 008191081911819218192(1819218192)SS方式方式1 1065535065535 165536165536(165536165536) SS方式方式2 20255025512561256(12561256)

52、 SS方式方式3 3 TL0TL0 0255025512561256(12561256) SSTH0TH0 02550255(12561256) SS以晶振以晶振f foscosc=12MHz=12MHz计算计算第第5 5章章 中断系统中断系统五、五、 定时器定时器/计数器的应用举例计数器的应用举例 主要任务主要任务: 编程。编程。 编程时应注意的问题:编程时应注意的问题: 1. 能正确写入控制字能正确写入控制字(即初始化定时器(即初始化定时器/计数器)计数器)2. 会进行定时会进行定时/计数初值的计算计数初值的计算。第第5 5章章 中断系统中断系统 写入控制字的次序:写入控制字的次序:1.

53、把把工作方式控制字写入工作方式控制字写入TMOD寄存器;寄存器;2. 把把定时定时/计数初值装入计数初值装入TL0、TH0(或(或TL1、TH1) 3. 置位置位TR0(或(或TR1)以启动计数以启动计数4. 置位置位ET0(或(或ET1)允许定时器允许定时器/计数器中断(如果计数器中断(如果需要);需要);5. 置位置位EA使使CPU开放中断。开放中断。第第5 5章章 中断系统中断系统 定时器定时器/计数器初值的计算:计数器初值的计算:计数初值最大计数值需要计数的值计数初值最大计数值需要计数的值最大计数值在不同工作方式下是不同的,最大计数值在不同工作方式下是不同的,方式方式0为:为:8192

54、方式方式1为:为:65536方式方式2为:为:256方式方式3为:为:256如果定时,需要计数的值如果定时,需要计数的值=定时时间定时时间/机器周期机器周期第第5 5章章 中断系统中断系统例例1:设单片机晶振频率:设单片机晶振频率fosc6MHz,使用定时器,使用定时器0以方式以方式0产生周期为产生周期为2ms的等宽正方波脉冲,并由的等宽正方波脉冲,并由P1.0输出。以中断方输出。以中断方式完成。式完成。 (1)计算计数初值)计算计数初值 实现正方波脉冲的方法:实现正方波脉冲的方法:P1.0端以端以1ms为周期交替输出高为周期交替输出高低电平。低电平。 则:则:定时时间应为定时时间应为1ms。

55、 若晶振为若晶振为6MHz,则一个机器周期,则一个机器周期2us。 设待求的计数初值为设待求的计数初值为X,则:,则: (213X)2us1000us得:得:X769211110000 01100B TH10F0H, TL10CH。第第5 5章章 中断系统中断系统(2)TMOD寄存器初始化寄存器初始化 T1在方式在方式0下,下, M1M000; 定时功能,应定时功能,应使使 0; 实现实现T1的运行控制,则的运行控制,则GATE0。 所以:所以: TMOD00H。(3)由定时器控制寄存器)由定时器控制寄存器TCON中的中的TR1位控制定时的启动位控制定时的启动和停止,则和停止,则TR11,启动

56、;,启动;TR10,停止。,停止。T/C位序号位序号 D7D6D5D4 D3D2D1D0位符号位符号GATEC/TM1M0GATEC/TM1M000000000第第5 5章章 中断系统中断系统(4)程序清单:)程序清单: ORG 0000HLJMP STARTORG 000BHLJMP TINTSTART:MOV SP,#60HMOV TMOD,#00H;设置;设置T1工作方式工作方式0MOV TL0,#0CHMOV TH0,#0F0H;设置计数初值;设置计数初值 SETB EA SETB ET0 SETB TR1;启动;启动T1运行运行 SETB P1.0 ;高电平;高电平SJMP $第第5

57、 5章章 中断系统中断系统TINT: CPLP1.0;输出取反;输出取反 MOV TL0,#0CH ;重新设置计数初值;重新设置计数初值MOV TH0,#0F0HRETIEND;程序结束;程序结束第第5 5章章 中断系统中断系统例例2:设单片机晶振频率:设单片机晶振频率fosc6MHz,使用,使用定时器定时器1以方式以方式1产产生周期为生周期为2S的等宽正方波脉冲,并由的等宽正方波脉冲,并由P1.7输出。以中断方式完输出。以中断方式完成。成。(1)计算计数初值)计算计数初值设待求的计数初值为设待求的计数初值为X,则:,则: (216X)2us1000,000us得:得: X155363CB0H

58、, 则:则: TH13CH,TL10B0H。(2)TMOD寄存器初始化寄存器初始化第第5 5章章 中断系统中断系统位序号位序号 D7D6D5D4 D3D2D1D0位符号位符号GATEC/TM1M0GATEC/TM1M000010000M1M001, C/T 0, GATE0 所以:所以: TMOD10H第第5 5章章 中断系统中断系统(4)程序清单:)程序清单:ORG 0000HLJMPSTARTORG001BHLJMPTINTSTART:MOV SP,#60HMOV TMOD,#10H ;设置;设置T1工作方式工作方式0MOV TH1, #3CH;设置计数初值;设置计数初值MOV TL1,#

59、0B0H SETB EA SETB ET1 SETBTR1;启动;启动T1运行运行 SETB P1.7 ;高电平;高电平MOV R7,#10SJMP $第第5 5章章 中断系统中断系统TINT: MOV TL0,#0B0H ;重新设置计数初值;重新设置计数初值MOV TH0,#3CH DJNZ R7,LOOP MOV R7,#10 CPLP1.7 ;输出取反;输出取反LOOP:RETIEND;程序结束;程序结束第第5 5章章 中断系统中断系统查询方式实现:查询方式实现:ORG1000HSTART:MOVTMOD,#10H;设置;设置T1工作方式工作方式1MOVTH1,#3CH;设置计数初值;设置计数初值MOVTL1,#0B0H MOV IE,#00H MOV R7,#10 SETBTR1 SETB P1.7 LOOP:JB TF1,LOOP1AJMP LOOPLOOP1:

温馨提示

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

评论

0/150

提交评论