1、项目四 电子钟设计,任务2 认识单片机的中断,学习内容,1.了解中断的概念、结构与工作原理,2.了解中断的分类。,3.理解中断控制寄存器的设置方法。,5.掌握中断的使用方法。,4.理解中断响应以及中断优先级。,6.2 中断系统,某人看书 执行主程序 中断过程 电话铃响 中断信号INTx=0 中断请求 暂停看书 暂停执行主程序 中断响应 书中作记号 当前PC值入栈 保护断点 电话谈话 执行中断程序 中断服务 继续看书 返回主程序 中断返回,一、中断概念,引起CPU中断的根源,称为中断源。中断源如向CPU提出中断请求,若被响应,CPU就暂时中断原来的事件A,转去处理事件B。对事件B处理完毕后,再回
2、到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。,事件B,二、中断源,二、中断源,三、MCS-51中断系统的逻辑结构,2、中断允许控制: 总允许开关:EA; 源允许开关:ES、ET1、EX1、ET0、EX0。,3、2级中断优先级控制: 优先级选择开关:PS、PT1、PX1、PT0、PX0。,IT0(IT1):外部中断0(或1)触发方式控制位。IT0(或IT1)=0:外部中断为电平触发方式;IT0(或IT1)=1:外部中断为边沿触发方式。,IE0(IE1):外部中断0(或1)的中断请求标志位。,在电平触发方式时:CPU在每个机器周期的S5P2采样P3.
3、2(或P3.3):若P3.2(或P3.3)引脚为高电平:IE0(IE1)清0;若P3.2(或P3.3)引脚为低电平:IE0(IE1)置1,向CPU请求中断。CPU响应后能够由硬件自动将IE0(或IE1)清零。 在边沿触发方式时:若第一个机器周期采样到P3.2(或P3.3)引脚为高电平,第二个机器周期采样到P3.2(或P3.3)引脚为低电平时,由IT0(或IT1)置1,向CPU请求中断。,1外部中断INT0和INT1,外部引脚P3.2和P3.3输入,有两种触发方式:电平触发及跳(边沿)触发。由特殊功能寄存器TCON来管理。,四、中断的控制与实现,2定时/计数器T0和T1中断,当定时/计数器T0(
4、或T1)溢出时,由硬件置TF0(或TF1)为“1”,向CPU发送中断请求,当CPU响应中断后,将由硬件自动清除TF0(或TF1)。,3串行口中断,MCS-51的串行口中断源对应两个中断标志位:串行口发送中断标志位TI和串行口接收中断标志位RI。无论哪个标志位置“1”,都请求串行口中断,到底是发送中断TI还是接收中断RI,只有在中断服务程序中通过指令查询来判断。串行口中断响应后,不能由硬件自动清“0”,必须由软件对TI或RI清“0”。,四、中断的控制与实现,2. 外部中断触发方式选择位:IT0、IT1=1:负边沿触发中断请求;=0:低电平触发中断请求。,1. 中断标志位: TF1、TF0、IE1
5、、IE0、RI 、TI登记各中断源请求信号:=1,有中断请求;=0,无中断请求。CPU响应中断后,该中断标志自动清零。TI、RI标志必须软件清零。,3.中断允许控制位:EA、ES、ET1、EX1、ET0、EX0=1开中断;=0关中断。,六、优先级控制,五、中断允许控制,通过中断优先级寄存器IP改变中断源的优先级顺序可以实现两个方面的功能:改变系统中断源的优先权顺序和实现二级中断嵌套。,对于中断优先权和中断嵌套,MCS-51单片机有以下三条规定。 (1)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后,CPU才响应新的
6、中断请求。 (2)正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。,(3)CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。,小结:,中断优先级控制原则和控制逻辑,中断优先级是为中断嵌套服务的。如图,MCS51具有2级优先级。1、优先级控制原则: (1)低优先级中断不能打断高优先级的中断服务;但高优先级中断请求信号可以打断低优先级的中断服务,从而实现中断嵌套。 (2)如果一个中断请求已被响应,则同级的其它中断服务将被禁止。即同级中断不能嵌套。 (3)如同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。查询次序为:INT0T0INT1T
7、1RI/TI。2、控制逻辑: (1)利用中断优先级控制寄存器; (2)2个不可寻址的优先级状态触发器:状态“0”或“1”。,五、中断响应,1、中断响应的条件,(1)无同级或高级中断正在处理; (2)现行指令执行到最后一个机器周期且已结束; (3)若现行指令为RETI或访问IE、IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完毕。,中断响应阻断:(1)CPU正处在为一个同级或高级的中断服务中。即当有同级或高级中断服务。(2)查询中断请求的机器周期不是当前指令的最后一个机器周期。即当CPU未执行完一条指令。(3)当前执行返回指令RET/RETI或访问IE、IP的指令后,不能立即响应中断,
8、还应再执行一条指令,然后才能响应中断。程序单步执行就是利用此原理,借助单片机的外部中断功能来实现的。,2、中断响应过程,1、中断采样仅对外中断(INT0、INT1)请求信号; 2、中断查询:单片机在每个机器周期的S5P2采样,按优先级顺序对中断请求标志位进行查询,即先查询高级中断后再查询低级中断,同级中断按“INT0T0INT1T1RI/TI”的顺序查询。在S6找到中断源,如果查询到有标志位为“1”,则表明有中断请求发生,接着就从相邻的下一个机器周期的S1状态开始进行中断响应。由于中断请求是随机发生的,CPU无法预先得知,因此在程序执行过程中,中断查询要在指令执行的每个机器周期中不停地重复进行
9、。 3、中断响应:当查询到有效的中断请求时,就进行中断响应。其主要内容是由硬件自动生成一条长调用指令LCALL。其格式为:LCALL addr16,addr16即是由系统设定的5个中断程序的入口地址。,各中断源中断服务 程序的入口地址。如右表:,3、中断响应时间每个机器周期的最后一个状态(S6)采样中断标志位,若有中断请求,将在下一个机器周期的第一个状态(S1)按优先级顺序进行中断查询。中断响应时间:正常中断响应时间为38个机器周期,如果有同级或高级中断服务,将延长中断响应时间。,3T: 中断请求标志查询:1T产生、执行LCALL: 2T,8T: 执行RET/RETI(访问IP/IE):2T主
10、程序中MUL/DIV指令: 4T执行LCALL指令: 2T,中断响应时间: 某中断的响应时序如图:,若M1周期的S5P2前某中断生效,在S5P2期间其中断请求被锁存到相应的标志位中去;M2恰逢指令的最后一个机器周期,且该指令不是RETI或访问IE、IP的指令。于是,M3和M4便可以执行硬件LCALL指令,M5周期将进入了中断服务程序。80C51的中断响应时间(从标志置1到进入相应的中断服务),至少要3个完整的机器周期。,4、中断请求的撤消,中断响应后,TCON或SCON中的中断请求标志应及时清除。否则就意味着中断请求仍然存在。 定时中断硬件自动撤除定时:中断响应后,硬件自动把标志位(TF0/T
11、F1)清0,因此定时中断的中断请求是硬件自动撤除的。不需要用户干预。 脉冲方式外部中断请求的撤消:硬件自动撤除外部中断的撤消包括两项内容: (1)中断标志位的置“0”:中断响应后由硬件电路自动完成; (2)外中断请求信号的撤消:随脉冲信号过后消失随即自动撤消。,电平方式外部中断请求的撤消:自动与强制撤除通过硬件自动地使标志位(IE0或IE1)清0。电平请求方式光靠清除中断标志,并不能彻底解决中断请求的撤除问题。需在中断响应后把中断请求输入端从低电平强制改为高电平。D触发器的直接置位端SD(得到负脉冲): ORL P1,#01H ; P1输出高电平 ANL P1,#0FEH ;P1 输出低电平
12、软硬件相结合完成:硬件自动清标志位(IE0或IE1清0);软件撤消中断请求信号(由低电平改为高电平)。,串行中断请求的撤除:由软件方法完成串行中断的标志位是TI和RI,但对这两个中断标志不进行自动清0。因为在中断响应后还需测试这两个标志位的状态,以判定是接收操作还是发送操作,然后才能清除。所以串行中断请求的撤除也应使用软件方法,在中断服务程序中进行。需由用户完成。,1、5个中断源及其对应入口地址:外中断2个:INT0、INT1定时中断2个:T0、T1串行中断1个:RI/TI 2、中断优先原则:分2个优先级;同级: INT0T0INT1T1RI/TI。 3、中断响应过程: 4、中断系统内部结构: 5、中断请求的撤消:3类中断请求撤消的异同点。 6、中断源的扩展。 7、定时器/记数器的工作原理、4种工作方式。 8、定时器/记数器与中断的综合应用。,小 结,布置作业,1.定时器/计数器的应用,