1、5.5 5.5 MCS-51MCS-51对外部中断源的扩展对外部中断源的扩展5.5.1 5.5.1 借用定时器借用定时器/计时器溢出中断扩展外部中断源计时器溢出中断扩展外部中断源 (P160 P160 利用计数溢出,扩展中断源)利用计数溢出,扩展中断源)来自来自P3.4(T0)P3.4(T0)或或P3.5(T1)P3.5(T1)引脚的引脚的 外部输入计数脉冲相当于中断请求信号外部输入计数脉冲相当于中断请求信号5.5.2 5.5.2 使用硬件申请软件查询法扩展外部中断源使用硬件申请软件查询法扩展外部中断源 (P161 P161 硬件申请,软件查询的方法)硬件申请,软件查询的方法)5 55 MCS
2、-515 MCS-51对外部中断源的扩展对外部中断源的扩展口地址口地址地址译码器地址译码器QRD5V应答信号应答信号WR锁存器锁存器输出设备输出设备PORTD译码译码PORTS译码译码状态线状态线BusyBusy状态信息状态信息D6RDDBDBD6D6 计算机在运行过程中,往往会出现事先预料不到的计算机在运行过程中,往往会出现事先预料不到的情况,或出现一些故障:如电源突跳,存储出错,运情况,或出现一些故障:如电源突跳,存储出错,运算溢出等等。计算机就可以利用中断系统自行处理,算溢出等等。计算机就可以利用中断系统自行处理,而不必停机或报告工作人员。而不必停机或报告工作人员。11o o P.P.H
3、 H.MCS-51 MCS-51 的中断系统的结构的中断系统的结构EX0EX1ET0ET1ESEAPX0PX1PT0PT1PS 外部中断请求信号触发方式选择(外部中断请求信号触发方式选择(IT0/1IT0/1位)位):IT0/1=0 IT0/1=11IE0/1EX0/1EAPX0/101D7D0TF1TF0IE1IT1IE0IT0外部中断请求外部中断请求0(1)的触发方式选择的触发方式选择 IT0=0 电平触发方式;电平触发方式;IT0=1 边沿触发方式边沿触发方式IE0(IE1):外部中断请求:外部中断请求0(1)的中断申请标志的中断申请标志 IT0=0 CPU每个机器周期采样每个机器周期采
4、样/INT0,若,若/INT0=1 则则IE0=0 否否则则/INT0=0,IE0=1申请中断申请中断 IT0=1 若第一个机器周期若第一个机器周期/INT0=1,第二个机器周期,第二个机器周期/INT0=0,则则IE0=1申请中断,否则申请中断,否则IE0=0 转向中断服务时边沿触发方式下转向中断服务时边沿触发方式下IE由硬件清零由硬件清零转向中断服务时电平触发方式下硬件不清转向中断服务时电平触发方式下硬件不清IE,待申请信号撤消,待申请信号撤消。T0T0、T1T1溢出中断溢出中断D7D0TF1TF0IE1IT1IE0IT0串行口接收中断标志串行口接收中断标志串行口接收中断串行口接收中断TI
5、TI:串行口发送中断标志:串行口发送中断标志串行口发送中断串行口发送中断 RIRI、TI TI 由硬件置位由硬件置位 必须由软件清零必须由软件清零 D7D0RITI 总结中断源的各个触发器总结中断源的各个触发器(p154)表表5-1)中断源中断源 入口地址入口地址 同级中断同级中断优先级优先级 IE0 0003H TF0 000BH IE1 0013H TF1 001BH TI/RI 0023H 1 1、MCS-51MCS-51中断系统的初始化中断系统的初始化中断系统初始化步骤为:中断系统初始化步骤为:1 1)CPUCPU开中断或关中断;开中断或关中断;2 2)某中断源中断请求的允许或禁止(屏
6、蔽);)某中断源中断请求的允许或禁止(屏蔽);3 3)设定所用中断的中断优先级;)设定所用中断的中断优先级;4 4)若为外部中断,则应规定低电平还是负边沿)若为外部中断,则应规定低电平还是负边沿 的中断触发方式。的中断触发方式。(1)(1)主程序主程序 2、程序设计方法、程序设计方法(2 2)中断服务程序)中断服务程序 中断服务程序是一种具有特定功能的独立程序段,它为中断源的特定要求服务,中断服务程序是一种具有特定功能的独立程序段,它为中断源的特定要求服务,其一般其一般低级中断源程序低级中断源程序编写格式如下编写格式如下:ORG ZDRK AJMP INTVS INTVS:CLR EA PUS
7、H ACC PUSH 01H SETB EA 中断服务中断服务 CLR EA POP 01H POP ACC SETB EA RETIRETIRETI 从中断请求有效(从中断请求有效(CPUCPU响应中断)到开始执行中断服务程序响应中断)到开始执行中断服务程序的第一条指令(中断入口地址处指令)为止,至少要经历三个完的第一条指令(中断入口地址处指令)为止,至少要经历三个完整的机器周期:整的机器周期:第一个机器周期用于查询中断标志位;第一个机器周期用于查询中断标志位;第二和第三个机器周期用于保护断点并自动转入执行一条长转第二和第三个机器周期用于保护断点并自动转入执行一条长转移移LCALLLCALL
8、指令指令 ,进入中断服务程序入口地址。进入中断服务程序入口地址。MCS-51MCS-51中断中断响应时间响应时间 逢逢RETIRETI或其它访问或其它访问IEIE、IPIP指令的第一个周期,而这类指令之后又跟随指令的第一个周期,而这类指令之后又跟随着着MULMUL或或DIVDIV指令引起的附加等待时间不会超过指令引起的附加等待时间不会超过5 5个机器周期:一个周期完个机器周期:一个周期完成正在进行的指令,再加成正在进行的指令,再加MULMUL或或DIVDIV的的4 4个周期。个周期。得出结论得出结论:在一个单级的中断系统中,在一个单级的中断系统中,MCS-51MCS-51响应中断的时间一般在响
9、应中断的时间一般在3-83-8个机器周期之间。个机器周期之间。当一个同级或更高级的中断正在进行,则附加的等待时间取决于正在进当一个同级或更高级的中断正在进行,则附加的等待时间取决于正在进行的中断程序。行的中断程序。CPU CPU必须在中断返回前,把它的响应中断标志位复位成必须在中断返回前,把它的响应中断标志位复位成“0”0”状态。状态。80318031单片机的单片机的5 5个断源,撤除中断请求的方法是不相同个断源,撤除中断请求的方法是不相同。MCS-51MCS-51中断请求的撤除中断请求的撤除INSVR:ANL P1,#0FEH ORL P1,#01H RETI END 执行第一条指令使执行第一条指令使P1.0P1.0输出为负,其持续时间输出为负,其持续时间为为2 2个机器周期,足以使个机器周期,足以使D D触发器置位,触发器置位,INT0INT0上电上电平变高,从而撤除中断请求。平变高,从而撤除中断请求。第二条指令使第二条指令使P1.0P1.0变为变为1 1,否则,否则,D D触发器的触发器的S S端始终有效,端始终有效,INT0INT0端终为端终为1 1,无法再次中断。,无法再次中断。