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