210 likes | 542 Vues
第 4 章 中断. 4.1 中断技术 基本概念: 中断、中断源、中断优先级、中断嵌套 中断系统的功能 : 1 .实现中断及返回 2 .实现优先权排队 3 .高级中断源能中断低级中断处理. 4.2 MCS-51 中断系统. 中断系统 包括:中断源、中断允许寄存器 IE 、中断优先级寄存器 IP 、中断矢量等。 2 级中断优先级: 高级中断请求、低级中断请求。 5 个中断请求源: INT0 外部中断源 0 、 INT1 外部中断源 1 、定时器 T0 溢出中断源、定时器 T1 溢出中断源、串行口的发送 / 接收中断源。 4 个用于中断控制的寄存器:
E N D
第4章 中断 4.1 中断技术 • 基本概念: 中断、中断源、中断优先级、中断嵌套 • 中断系统的功能: 1.实现中断及返回 2.实现优先权排队 3.高级中断源能中断低级中断处理
4.2 MCS-51中断系统 • 中断系统包括:中断源、中断允许寄存器IE、中断优先级寄存器IP、中断矢量等。 • 2级中断优先级: 高级中断请求、低级中断请求。 • 5个中断请求源: INT0外部中断源0、INT1外部中断源1、定时器T0溢出中断源、定时器T1溢出中断源、串行口的发送/接收中断源。 • 4个用于中断控制的寄存器: IE、IP、TCON(用6位)和SCON(用2位)。
外部中断 • 外部中断:由外部信号引起,共有二个外部中断,它们的中断请求信号分别从引脚INT0 (P3.2) 和INT1 (P3.3) 上引入。 • 外部中断请求有二种信号触发方式,即电平有效方式和跳变有效方式,可通过设置有关控制位进行定义。 • 当设定为电平有效方式时,若INT0或INT1引脚上采样到有效的低电平,则向CPU提出中断请求; • 设定为跳变有效方式时,若INT0或INT1引脚上采样到有效负跳变,则向CPU提出中断请求。
定时中断和串行中断 • 定时中断:为满足定时或计数的需要而设置。当计数器发生计数溢出时,表明设定的定时时间到或计数值已满,这时可以向CPU申请中断。由于定时器/计数器在单片机芯片内部,所以定时中断属于内部中断。 • 2个定时中断源: ⑴ TF0 —— T0(P3.4)溢出中断。 ⑵ TF1 —— T1(P3.5)溢出中断。 • 串行中断:为串行数据传送的需要而设置。 • 每当串行口发送或接收一组串行数据时,就产生一个中断请求。 RI —— 串行接收中断。 TI —— 串行发送中断。
定时器/计数器控制寄存器TCON • IE0:外部中断0请求标志位。IE0=1,外部中断0向CPU请求中断,当CPU响应外部中断0时,IE0由硬件清0(边沿触发方式下)。 • IT0:外部中断0触发方式控制位。IT0=0电平触发方式(低电平有效);IT0=1边沿触发方式(下跳沿有效)。CPU在每个机器周期的S5P2期间采样中断请求线。 • TF0:定时器T0的溢出中断申请位。TF0=1,表明T0计数器产生溢出,向CPU请求中断,CPU响应中断后由硬件清0(也可由软件清0)。
串行口控制寄存器SCON • RI:串行口接收中断申请标志位 • TI:串行口发送中断申请标志位 • RI和TI逻辑“或”以后作为内部的一个中断源。当串行口发送或接收完一帧数据时,将SCON中的TI或RI位置1,向CPU申请中断。 • 在CPU响应串行口的中断时,并不清零TI和RI中断标志,TI和RI必须由软件清0。
中断允许寄存器IE • EA:CPU中断开放标志。 • ES:串行中断允许位。 • ET1:T1溢出中断允许。 • EX1:外部中断1允许位。 • ET0:T0溢出中断允许位。 • EX0:外部中断0允许位。 • 相应位=1,允许中断;相应位=0,禁止中断。 • MCS-51单片机复位后,IE中各位均被清0,即禁止所有中断。
中断源优先级设定寄存器IP • PS:串行口中断优先级控制位。 • PT1:T1中断优先级控制位。 • PX1:外部中断1中断优先级控制位。 • PT0:T0中断优先级控制位。 • PX0:外部中断0中断优先级控制位。 • 相应位=1,高优先级中断;相应位=0,低优先级中断。 • 当系统复位后,IP各位均为0,所有中断设置为低优先级中断。
中断的响应过程 • ⒈ 中断采样:中断采样是针对外部中断请求信号进行的,而内部中断请求都发生在芯片内部,可以直接置位TCON或SCON中的中断请求标志。在每个机器周期的S5P2期间,各中断标志采样相应的中断源,并置入相应标志。 • ⒉ 中断查询:若查询到某中断标志为1,则按优先级的高低进行处理,即响应中断。 • ⒊ 中断响应:响应中断后,由硬件自动生成长调用指令“LCALL”, 其格式为LCALL addr16,而addr16就是各中断源的中断矢量地址
单片机中断响应受阻条件 • 若发生下列情况之一,中断响应将会受阻: (1)同级或高优先级的中断正在进行; (2)现在的机器周期不是所执行指令的最后一个机器周期; (3)正执行的指令是RETI或是访问IE或IP的指令,也就是说CPU在执行RETI或访问IE、IP的指令后,至少需要再执行其它一条指令之后才会响应。 • 如果上述条件不存在,接着的下一个机器周期,将响应中断。
中断源矢量地址 • 当CPU响应中断时,由硬件直接产生一个固定的地址,即矢量地址。 • 由矢量地址指出每个中断源的中断服务程序的入口,这种方法通常称为矢量中断。
4.3 MCS-51中断处理过程 • 三个阶段:中断响应、中断处理、中断返回 • CPU响应中断的条件: ①有中断源发出中断请求; ②中断总允许位EA=1,即CPU开中断; ③申请中断的中断源的中断允许位为1 • 响应过程: (1)置位响应的优先级触发器 (2)执行一个硬件子程序调用,保护断点 (3)将对应的中断入口地址装入程序计数器PC (4)使程序转向中断入口地址,执行中断服务程序。
中断应用举例 • 利用外部中断0向CPU申请中断,中断服务将P1口作为输出驱动。 • 程序设计: ORG 0000H AJMP MAIN ;转向主程序 ORG 0003H ;外部中断0入口地址 AJMP WINT ;指向中断服务程序 ORG 0100H ;主程序 MAIN: SETB IT0 ;选择边沿触发方式 SETB EX0 ;允许外部中断0 SETB EA ;CPU允许中断 HERE: AJMP HERE ;主程序踏步 • 中断服务程序: ORG 0200H WINT: MOV A,#0FFH MOV P1,A ;输出驱动 RETI ;中断返回 END
中断请求标志的撤消 • CPU响应某中断请求后,在中断返回(RETI)之前,该中断请求应该撤消,否则会引起另一次中断。 • MCS-51各中断源请求撤消的方法各不相同: ①定时器0和定时器1的溢出中断,CPU在响应中断后,就由硬件自动清除了TF0或TF1标志位。 ②外部中断请求的撤消与设置的中断触发方式有关。对于边沿触发方式,CPU响应中断后,由硬件自动将IE0或IE1标志位清除。也无需采取其它措施。对于电平触发方式,单片机无法控制中断请求,须由外部控制。 ③串行口的中断,CPU响应后,硬件不能自动清除TI和RI标志位,必须用软件来清除。
中断与查询相结合 • 利用MCS-51的两根外部中断输入线,每一中断输入线可以通过线或的关系连接多个外部中断源,同时利用输入端口线作为各中断源的识别线。 • 4个扩展外部中断源中有一个或几个出现高电平,反相器输出为0,引起INT0低电平触发中断,所以这些中断源都是电平触发方式。当满足外部中断请求条件时,则CPU响应中断,转入0003H单元开始执行中断服务程序。
扩展电路INT0的中断服务程序 INTR0:PUSH PSW ;保护现场 PUSH ACC JB P1.0, LOOP1 ;转向中断服务程序1 JB P1.l,LOOP2 ;转向中断服务程序2 JB P1.2,LOOP3 ;转向中断服务程序3 JB P1.3,LOOP4 ;转向中断服务程序4 EXIT:POP ACC ;恢复现场 POP PSW RETI LOOP1:… ;中断服务程序1 LOOP2:… ;中断服务程序2 LOOP3:… ;中断服务程序3 LOOP4:… ;中断服务程序4
中断服务程序的设计 • 8051单片机中,共有5个中断源,由4个特殊功能寄存器TCON、SCON、IE和IP进行管理和控制。 • 在8051单片机中,需要对以下5个内容进行设置: ⑴ 中断服务程序入口地址的设定。 ⑵ 某一中断源中断请求的允许与禁止。 ⑶ 对于外部中断请求,还需进行触发方式的设定。 ⑷ 各中断源优先级别的设定。 ⑸ CPU开中断与关中断。 • 中断程序包含:中断控制程序、中断服务程序。 • 中断控制程序:即中断初始化程序,一般不独立编写,而是包含在主程序中,由上述5点编程实现。 • 中断服务程序:是一种为中断源的特定事态进行服务的独立程序段,包括保护现场、中断处理、恢复现场,以RETI结束。
复习题 1.MCS-51系列单片机的中断系统由哪些功能部件组成? 2.MCS-51系列单片机有几个中断源,各中断标志是如何产生的? 3.MCS-51系列单片机有几个外部中断和内部中断? 4.MCS-51系列单片机的中断系统中有几个优先级? 5.MCS-51系列单片机的中断矢量地址分别是多少? 6.简述MCS-51中断响应的过程? 7.中断响应后,怎样保护断点和保护现场的? 8.CPU响应中断有哪些条件?