欢迎来到天天文库
浏览记录
ID:48757128
大小:1.57 MB
页数:47页
时间:2020-01-22
《第五章 中断 定时 串口.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章中断系统、定时器/计数器与串行口5.1MCS-51单片机中断系统中断是指计算机暂时停止原程序执行转而为外部设备服务(执行中断服务程序),并在服务完后自动返回原程序执行的过程。5.1.1中断系统结构及中断控制89C51单片机有5个中断源(89C52有6个),可实现二级中断服务程序嵌套。图5-1中断系统结构示意图1.中断源中断源中断标志中断入口地址外部中断/INT0(P3.2)IE00003H/INT1(P3.3)IE10013H定时中断T0TF0000BHT1TF1001BH串行中断发送中断TI0023
2、H接受中断RI2.中断控制定时器控制寄存器TCON、串行口控制寄存器SCON、中断允许寄存器IE和中断优先级寄存器IP(1)定时器控制寄存器(TCON)TCON(88H)D7D6D5D4D3D2D1D0(2)串行口控制寄存器(SCON)98HTI—串行口发送中断请求标志位。当发送完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。RI—串行口接收中断请求标志位。当接收完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。(3)中断允许控制寄存器(IE)0A8H(5)中断优先级控制A.中
3、断优先级控制寄存器(IP)0B8HB.中断查询顺序当同时接收到几个同一优先级的中断请求时,响应哪个中断源则取决于内部硬件查询顺序。中断源同级自然优先级INT0最高T0INT1T1串行口最低C.中断嵌套(2个中断优先级)由IP设定高、低两级优先级原则:允许高中断低,禁止低中断高和同级中断5.1.2中断响应及中断处理过程89C51单片机中断过程分为中断采样、中断查询、中断响应、中断处理和中断返回等几个阶段。1.中断采样(外部中断采样)在每个机器周期的S5P2时刻对芯片引脚INT0(P3.2)和INT1(P3.3
4、)进行采样。(1)电平触发方式中断标志直接反映外部中断引脚的状态,无记忆功能,低电平时间至少需保持一个机器周期,才能保证中断请求能被采样到。(2)负跳变触发方式在两个相邻机器周期采样到的是先高电平后低电平,则中断请求有效,由硬件将IE0或IE1置1,具有记忆功能,负脉冲的宽度也应至少为一个机器周期。2.中断查询由CPU测试TCON和SCON中各标志位的状态,中断查询在指令执行的每个机器周期中不停地重复进行。3.中断响应(1)产生硬件调用,将断点地址压入堆栈。(2)中断封锁A、CPU正处在为一个同级或高级的中
5、断服务中。因为当一个中断被响应时,要把对应的优先级触发器置位,封锁了低级和同级中断。B、查询中断请求的机器周期不是当前指令的最后一个机器周期。目的在于确保当前指令的完整执行。C、当前指令是返回指令(RET,RETI)或访问IE、IP的指令。在执行完这些指令之后,还应再继续执行一条指令,然后才能响应中断。89C51对中断查询的结果不作记忆,当有新的查询结果出现时,因为以上原因而被拖延的查询结果将不复存在,其中断请求也就不能再被响应了。(3)中断响应时间响应时间为3~8个机器周期,如果遇到中断受阻的情况,则中断
6、响应时间会更长一些。4.中断处理(中断服务)5.中断返回CPU执行RETI指令时,把响应中断位置的优先级触发器复位,再从堆栈中弹出断点地址送入程序计数器PC,以便从断点处重新执行被中断的主程序。5.1.3中断请求的撤销1.定时中断请求的撤销定时中断响应后,硬件自动把标志位(TF0或TF1)清0,因此定时中断的中断请求是自动撤销的。2.脉冲方式外部中断的撤销中断响应时自动撤销,在中断服务过程中有新的下跳变会重新置位中断标志位。3.电平方式外部中断请求的撤销中断响应时自动撤销,在中断返回后仍然为低电平将会再次响
7、应中断。4.串行中断请求撤销由软件(程序)清除标志位。5.1.4外部中断源的扩展1.用定时器作外部中断源MCS-51单片机有两个定时器,具有两个内中断标志和外计数引脚,如在某些应用中不被使用,则它们定时器中断可作为外部中断请求使用。此时,可将定时器设置成计数方式,计数初值可设为满量程,则它们的计数输入端T0(P3.4)或T1(P3.5)引脚上发生负跳变时,计数器加1产生溢出中断。利用此特性,可把T0脚或T1脚作为外部中断请求输入线,而计数器的溢出中断作为外部中断请求标志。【例5.1】将定时器0扩展为外部中断
8、源n解:将定时器0设定为方式2(自动恢复计数初值),TH0和TL0的初值均设置为FFH,允许定时器0中断,CPU开放中断。源程序如下:MOVTMOD,#06HMOVTH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0SETBEA…当连接在T0(P3.4)引脚上的外部中断请求输入线发生负跳变时,TL0加1溢出,TF0置1,向CPU发出中断申请,同时,TH0的内容自动送至TL0使TL0恢复初值。这样
此文档下载收益归作者所有