中断控制定时计数器与串行口更齐全.pptx
《中断控制定时计数器与串行口更齐全.pptx》由会员分享,可在线阅读,更多相关《中断控制定时计数器与串行口更齐全.pptx(256页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、在计算机系统中,CPU速度快,外设速度慢,这样CPU与外设之间进行数据交换时,就遇到了CPU与外设之间的同步问题。例如,当CPU读外设送来的数据时,外设必须处于准备就绪状态,CPU方可读取数据总线上的数据;当CPU向外设输出数据时,必须确认外设是否处于空闲状态,否则外设可能无法接收CPU送来的数据。目前,外围设备与CPU之间常用的通信方式有三种:查询方式、中断传输方式和直接存储器存取(简称DMA)方式。由于在单片机控制系统中,外设与CPU之间需要传送的数据量较少,对传输率要求不高,一般不用DMA方式,这里也就不介绍了。4.1 CPU与外设通信方式概述第1页/共256页4.1.1 查询方式查询方
2、式包括查询输出方式和查询输入方式。所谓查询输入方式,是指CPU读外设数据前,先查询外设是否处于准备就绪状态(即外设是否已将数据输出到CPU的数据总线上);查询输出方式是指CPU向外设输出数据前,先查询外设是否处于空闲状态(即外设是否可以接收CPU输出的数据)。第2页/共256页下面以CPU向外设输出数据为例,简要介绍查询传输方式的工作过程。当CPU需要向外设输出数据时,先将控制命令(如外设的启动命令)写入外设的控制端口,然后不断读外设的状态口,当发现外设处于空闲状态后,就将数据写入外设的数据口,完成数据的输出过程。可见,查询方式硬件开销少、传输程序简单。但缺点是CPU占用率高,因为在外设未准备
3、就绪或处于非空闲状态前,CPU一直处于查询状态,不能执行其他操作,任何时候都只能与一个外设进行数据交换。第3页/共256页4.1.2 中断传输方式采用中断传输方式通信可以克服采用查询方式进行通信时存在的缺陷。当CPU需要向外设输出数据时,将启动命令写入外设控制口后就继续执行随后的指令序列,而不是被动等待;当外设处于空闲状态,可以接收数据时,由外设向CPU发出允许数据传送的请求信号(即中断请求信号),如果满足中断响应条件,CPU将暂停执行随后的指令序列,转去执行预先安排好的数据传送程序(即中断服务程序)。第4页/共256页CPU响应外设中断请求的过程称为中断响应;待完成数据传送后,再返回断点处继
4、续执行被中断了的程序的过程称为中断返回。可见,在中断传输方式中,CPU发出控制命令后将继续执行控制命令后的指令序列,而不是通过检测外设的状态来确定外设是否处于空闲状态。这不仅提高了CPU的利用率,而且只要能合理安排相应中断的优先级以及同优先级中断的查询顺序即可同时与多个外设进行数据交换。因此,中断传输方式是CPU与外设之间最常见的一种数据传输方式。第5页/共256页1.中断源在计算机控制系统中,把引起中断的事件称为中断源。在单片机控制系统中,常见的中断源有:外部中断,如CPU某些特定引脚电平变化引起的中断。各类定时/计数器溢出中断(即定时时间到或计数器满中断)。串行发送结束中断。串行接收有效中
5、断。电源掉电中断。第6页/共256页在计算机控制系统中,外设一般以中断方式与CPU进行数据交换,中断源的数目较多,为此需要一套能够管理、控制多个外设中断请求的部件中断控制器。计算机内中断控制器的功能越强,能管理、控制的中断源个数越多,该计算机系统的性能也就越高。第7页/共256页2.中断优先级当多个外设以中断方式与CPU进行数据交换时,可能遇到两个或两个以上外设中断请求同时有效的情形。在这种情况下,CPU先响应哪一个外设的中断请求?这就涉及到中断优先级问题。一般来说,为了能够处理多个中断请求,中断控制系统均提供中断优先级控制。有了中断优先级控制后,就可以解决多个中断请求同时有效时,先响应哪一个
6、中断请求的问题,以及高优先级中断请求可中断低优先级中断处理进程,实现中断嵌套。第8页/共256页3.中断开关有时为避免某一处理过程被中断,中断控制器给每一个中断源都设置了一个中断请求屏蔽位,用于屏蔽(即禁止)相应中断源的中断请求。当某一中断源的中断请求处于禁止状态时,即使该中断请求有效,CPU也不响应,相当于中断源的中断被关掉。此外,还设有一个总的中断请求屏蔽位,当该位处于禁止状态时,CPU将忽略所有中断源的中断请求,相当于中断源的总开关。第9页/共256页4.中断处理过程中断处理过程包含中断查询和中断响应两个方面,涉及以下几个问题,即当某一事件发生时,对应的中断标志,即中断请求何时有效?CP
7、U什么时候查询中断标志?在什么情况下CPU会响应中断请求?下面结合增强型MCS-51中断控制系统逐一介绍。第10页/共256页增强型MCS-51系列内嵌的中断控制器可以管理具有4个中断优先级的6个中断源(增强型MCS-51 CPU可管理的中断源个数与标准MCS-52子系列相同),其结构如图4-1所示。4.2 增强型MCS-51中断控制系统第11页/共256页图4-1 增强型MCS-51中断控制系统结构第12页/共256页在增强型MCS-51系列中,6个中断源对应8个中断请求标志,每一中断源对应一个中断开关(串行发送结束中断标志TI和串行接收有效中断标志RI相“或”后作为一个中断源串行口中断,共
8、用一个中断开关;定时器T2溢出中断TF2和外部触发中断EXF2相“或”后作为一个中断源定时器T2中断,共用一个中断开关)。当某一中断请求标志有效时,CPU是否查询相应中断请求标志,由中断控制寄存器IE相应位决定(其中EA是中断总开关)。增强型MCS-51系列具有4个中断优先级,中断源优先级由优先级控制寄存器IPH、IP对应位编码确定。同级中断硬件查询顺序依次是外中断、定时器T0溢出中断、外中断、定时器T1溢出中断、串行口中断和定时器T2溢出中断。第13页/共256页4.2.1 中断源及中断标志增强型MCS-51 CPU在每个机器周期的S5P2时刻顺序采样各中断源,当发现某一中断有效(出现)时,
9、相应中断标志置1,表明对应事件发生了。其中外中断、外中断以及定时/计数器T0、T1的中断标志存放在定时/计数控制寄存器TCON中,该寄存器各位含义如图4-2所示。寄存器TCON的IT0位和IE0位与外中断有关,其中IE0为外中断中断标志;IT0为外中断触发方式选择位(0为低电平触发;1为下降沿触发)。第14页/共256页外中断从P3.2引脚输入,可以选择低电平触发或下降沿触发。当IT0位为0时,外中断被定义为低电平触发。MCS-51在每个机器周期的S5P2相检测并锁存P3.2引脚的电平状态,当检测到P3.2引脚为低电平时,便将外中断中断标志IE0位置1。为防止漏检,采用低电平触发时,外中断低电
10、平保持时间不能小于一个机器周期。例如,当晶振频率为12 MHz时,在“12时钟/机器周期”模式下,一个机器周期为1 s,则外中断低电平有效时间必须大于1 s。第15页/共256页图4-2 与中断功能有关的寄存器TCON各位含义第16页/共256页当IT0位为1时,外中断被定义为下降沿触发。MCS-51 CPU在每个机器周期的S5P2相采样P3.2引脚,如果相邻两个机器周期的采样值分别为高、低电平(即前一机器周期的S5P2相采样到高电平,而后一机器周期的S5P2相采样到低电平),就将外中断的中断标志IE0位置1。由于仅在每个机器周期的S5P2相采样P3.2引脚电平状态,因此采用下降沿触发方式时,
11、外中断高、低电平的保持时间也必须大于一个机器周期,否则也可能出现漏检。例如,当晶振频率为12 MHz时,在“12时钟/机器周期”模式下,外部中断信号的最高频率是500 kHz的方波。第17页/共256页IT1位和IE1位与外中断有关,其中IT1位用于选择外中断的触发方式,IE1位为外中断有效标志,含义与IT0和IE0位相同。TF0位和TF1位分别是定时/计数器T0和T1的溢出中断标志。而定时/计数器T2溢出中断标志TF2存放在定时/计数器T2控制寄存器T2CON中,有关定时器溢出中断下节将详细介绍。串行发送结束标志TI和串行接收有效标志RI存放在串行口控制寄存器SCON中,本章后面将详细介绍。
12、第18页/共256页4.2.2 中断控制1.中断允许控制寄存器IE当某一中断(事件)出现时,相应的中断请求标志位置1(即中断有效),但该中断请求能否被CPU查询,由中断控制寄存器IE相应位决定(MCS-51 CPU在每个机器周期的S6状态查询处于允许状态的中断请求标志),中断控制寄存器IE各位含义如图4-3所示。EA中断允许/禁止位(0禁止,1允许),即中断请求的总开关。当EA为0时,将屏蔽所有中断请求。EX0允许/禁止中断(0禁止,1允许),当EX0位为0时,禁止中断。EX1允许/禁止中断(0禁止,1允许),当EX1位为0时,禁止中断。第19页/共256页图4-3 中断控制寄存器IE各位含义
13、第20页/共256页ET0允许/禁止定时器T0中断(0禁止,1允许),当ET0位为0时,禁止定时/计数器T0中断。ET1允许/禁止定时器T1中断(0禁止,1允许),当ET1位为0时,禁止定时/计数器T1中断。ES允许/禁止串行口中断,当ES位为0时,禁止串行口中断。ET2允许/禁止定时器T2中断(0禁止,1允许),当ET2位为0时,禁止定时/计数器T2中断。第21页/共256页由于IE寄存器具有位寻址功能,因此可通过位操作指令允许或禁止其中的任一中断,如:SETBEA;开中断SETB EX0;允许中断CLR ES;禁止串行口中断例如当TCON的IT0位为0时,只要在S5P2相采样到P3.2引脚
14、为低电平,中断请求标志IE0就为1。但当EX0或EA之一为0时,CPU将不查询IE0的中断请求标志(即该中断请求被CPU忽略)。第22页/共256页2.中断优先级控制寄存器IP及IPH标准MCS-51内核只有两个中断优先级,各中断源优先级由IP寄存器控制(0为低优先级,1为高优先级),中断优先级控制寄存器IP各位含义如图4-4(a)所示。增强型MCS-51内核中断控制器具有四个中断优先级,除了标准MCS-51 CPU的中断优先级控制寄存器IP外,还增加了一个中断优先级高位控制寄存器IPH(字节地址为B7H),IPH寄存器各位含义如图4-4(b)所示,即中断源的优先级由IPH、IP对应位编码决定
15、,具体情况如下:第23页/共256页IPH.x位IP.x 位优先级00 0级(优先级最低)01 1级10 2级11 3级(优先级最高)第24页/共256页图4-4 中断优先级控制寄存器(a)中断优先级控制寄存器IP各位含义;(b)中断优先级控制寄存器高位IPH各位含义第25页/共256页PX0H、PX0外中断优先级高、低位。PX1H、PX1外中断优先级高、低位。PT0H、PT0定时/计数器T0优先级高、低位。PT1H、PT1定时/计数器T1优先级高、低位。PSH、PS串行口中断优先级高、低位。PT2H、PT2定时/计数器T2优先级高、低位。可见,当IPH为xx000000B时,中断优先级仅由I
16、P寄存器决定,即与标准MCS-51内核中断优先级兼容。第26页/共256页3.硬件查询顺序改变IPH、IP寄存器的值,即可使相应中断源优先级升高或降低。增强型MCS-51具有六个中断源,而只有四个中断优先级,这就必然存在两个或两个以上中断源优先级相同。例如,当IPH为00010001B而IP为00001001B时,外中断优先级为3(最高),串行口中断优先级为2,定时/计数器T1中断优先级为1,而其他三个中断源优先级均为0(最低)。复位后,IPH、IP初值为00000000,即所有中断优先级均为0。第27页/共256页为此,MCS-51约定当同一优先级中断请求有效时,CPU响应顺序为:外中断定时
17、/计数器T0溢出中断外中断定时/计数器T1溢出中断串行口中断定时/计数器T2溢出中断第28页/共256页4.2.3 中断响应过程及中断服务程序入口地址对于外中断来说,MCS-51 CPU在每个机器周期的S5P2相锁存引脚的电平状态,设置中断请求标志(若中断有效,相应中断标志位置1;若中断无效,标志位置0,如图4-5中的M1周期),并在下一机器周期(如图4-5中的M2周期)的S6状态按优先级顺序查询所有没有被禁止的中断请求标志,如果满足下列中断响应条件,则在下一机器周期(如图4-5中的M3周期)的S1状态响应优先级最高的中断请求,并执行相应的中断服务程序,否则继续执行当前程序。第29页/共256
18、页图4-5 中断响应时序第30页/共256页1.中断响应条件MCS-51中断响应条件为:(1)当前不执行同级或更高优先级中断服务程序。这是为了防止同级或低级中断请求中断同级或更高优先级中断。(2)当前机器周期必须是当前指令的最后一个机器周期,否则等待。执行某些指令需要两个或两个以上机器周期,如果当前机器周期不是指令的最后一个机器周期,则不响应中断请求。也就是说,不允许中断一条指令的执行过程,这是为了保证指令执行过程的完整性。第31页/共256页(3)如果当前指令是中断返回指令RETI,或改写中断控制寄存器IE、优先级寄存器IP或IPH,则必须再执行一条指令后才能响应中断请求。也就是说,中断控制
19、器各状态位尚未稳定前,不响应中断,以免出现不确定后果。由此可见:当不处于同级或更高优先中断响应状态时,中断有效到中断响应的最短时间为3个机器周期(即中断在当前指令最后一个机器周期有效,且下一指令不是RETI或改写中断控制寄存器IE、IP、TPH),最长为8个机器周期(即中断在乘法、除法指令的第一机器周期有效,且下一指令为RETI或改写中断控制寄存器IE、IP、TPH),以上时间未考虑中断入口处长跳转指令“LJMP xxxx”执行时间。第32页/共256页如果不满足以上条件,将忽略该机器周期对中断标志的查询结果,下一机器周期再继续查询。因此可能存在这样一种情况:某一中断发生了,不满足响应条件,C
20、PU不响应,又发出了新的中断请求,则尚未响应的中断请求将被忽略。第33页/共256页例如,低电平触发的外中断INT0低电平维持时间为1个机器周期,假设在M1机器周期有效,则M1机器周期的S5P2状态后,标志位IE0为1;尽管在M2机器周期的S6状态,CPU查询到IE0有效,但不满足中断响应条件,即M3机器周期不响应INT0的中断请求,继续执行随后指令序列。在该中断请求未被响应前,如果P3.2引脚又出现了低电平(即出现了新的中断请求),则在M1机器周期出现的中断请求将被忽略。因为每一中断源毕竟只有一个标志位,不能分辨中断标志是什么时候产生的。另外,在中断响应过程中,如果在M4周期的S6状态查询到
21、优先级更高的中断标志为1(即在M2M3机器周期内优先级更高的中断请求出现),则在M5、M6机器周期将响应高优先级中断,而不执行低优先级中断服务程序。第34页/共256页2.中断响应过程及中断服务程序入口地址如果满足中断响应条件,将进入中断响应过程:(1)CPU先将对应中断的优先级触发器置1(每一中断源对应一个中断优先级触发器,图4-1中并未没画出该触发器),阻止CPU再响应同级或更低级的中断请求。(2)将程序计数器PC的当前值压入堆栈,以保证中断服务程序执行结束后正确返回;将中断源入口地址装入PC,以便执行相应的中断服务程序。这一过程由硬件完成,相当于执行了一条长调用指令“LCALL xxxx
22、”。中断服务程序入口地址如表4-1所示。第35页/共256页表4-1 中断服务程序入口地址第36页/共256页由于各中断服务程序入口地址仅相隔8个字节,难以容纳中断服务程序,为此可在中断程序入口处放置一条长跳转指令,这样实际的中断服务程序就可以放在存储器区内的任意位置(一般放在主程序后),程序如下所示:ORG 0003HLJMP INT0;在外中断入口处放一条长跳转指令ORG 0100HMAIN:;主程序INT0:;外中断的中断服务程序第37页/共256页(3)清除中断请求标志。进入中断服务程序后,CPU能自动清除的中断请求标志位如下:定时器T0中断请求标志TF0;定时器T1中断请求标志TF1
23、;下降沿触发的外中断的中断请求标志IE0;下降沿触发的外中断的中断请求标志IE1。CPU不能自动清除的中断请求标志位如下:串行发送结束中断标志TI;串行接收有效中断标志RI;定时/计数器T2溢出中断标志TF2;定时/计数器T2外触发标志EXF2;电平触发方式下的外中断标志IE0和IE1。第38页/共256页对于不能自动清除的中断请求标志,需要在中断服务程序中用“CLR 位地址”或“ANL IE,#XXH”指令清除。值得注意的是某一事件发生后,相应的中断标志必然有效,如果不满足中断响应条件,CPU不响应该中断请求,但该中断标志不因事件消失而被清零。例如,对于低电平触发的外中断,只要P3.2引脚出
24、现了宽度大于一个机器周期的负脉冲,中断标志IE0就有效,虽然不满足中断响应条件,CPU不响应IE0中断请求,但IE0标志不会消失,尽管在随后的机器周期里P3.2引脚已变为高电平。第39页/共256页(4)中断返回。中断服务程序最后一条指令是中断返回指令“RETI”,执行了中断返回指令“RETI”后,先将对应中断的优先级触发器清零(以便返回后CPU能够响应同级或更低级的中断请求),并将堆栈内的两个字节弹到程序计数器PC,以便从断点处继续执行被中断程序的后续指令。第40页/共256页4.2.4 中断初始化及中断服务程序结构中断初始化是指通过设置TCON、IP、IPH及IE等寄存器内容,确定外中断触
25、发方式(低电平触发还是下降沿触发)、设置中断优先级及开中断等。例如,可通过如下指令将定义为下降沿触发,优先级为3(最高),并允许中断:SETB IT0;外中断采用下降沿触发ORL IPH,#01H;由于IPH寄存器没有位寻址功能,只能通过“或”指令将IPH的;PX0H位置1SETB PX0;IP寄存器具有位寻址功能,可通过SETB指令将指定位置1SETB EX0;允许中断SETB EA;开中断第41页/共256页中断服务程序结构与子程序类似,大致包含以下几部分:;必要时保护现场PUSH PSWPUSH AccSETB RS0;切换工作寄存器区,根据需要可使用03区中的任一区CLR RS1;由于
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 控制 定时 计数器 串行口 齐全
限制150内