实验七外部中断实验目的1、掌握中断相关知识点和外部中断的使用。实验设备与文件PC机、Stc89c52实验箱、USB线、stc89c52实验板原理图。TXI志水灯电源器/RX32INTMNTXLEDS流水灯模块独立键盘模块图1原理图三、实验原理8051单片机中断技术概述3.1中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提出的服务请求,并快速响应与及时处理。当中断请求源发出中断请求时,如中断请求被允许,单片机暂时中止当前正在执行的主程序,转到中断服务处理程序处理中断服务请求,处理完中断服务请求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。单片机对外设的中断请求响应和处理过程如图2所示:-
1 实验七 外部中断 一、 实验目的 1、掌握中断相关知识点和外部中断的使用。 二、 实验设备与文件 PC 机、stc89c52 实验箱、USB 线、stc89c52 实验板原理图。 图 1 原理图 三、 实验原理 3.1 8051 单片机中断技术概述 中断技术主要用于实时监测与控制,要求单片机能及时地响应中断请求源提 出的服务请求,并快速响应与及时处理。 当中断请求源发出中断请求时,如中断请求被允许,单片机暂时中止当前正 在执行的主程序,转到中断服务处理程序处理中断服务请求,处理完中断服务请 求后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。 单片机对外设的中断请求响应和处理过程如图 2 所示:
主土程序响应中断请求中断服务程断点8继续序返回主程序续执行主程序图2中断响应和处理过程如没有中断系统,单片机大量的时间可能会浪费在查询是否有服务请求的定时查询操作上,即不论是否有服务请求,都必须去查询。采用中断技术完全消除查询方式的等待,大大提高单片机工作效率和实时性。3.28051单片机中断系统结构8051单片机中断系统结构如图3,中断系统有5个中断请求源(简称中断源),2个中断优先级,可实现2级中断服务程序嵌套。每一中断源可用软件独立控制为允许中断或关闭中断状态,每一个中断源的优先级均可用软件设置。F1r0-PXOTNTETO-EXO0PTOITO大址>FET1便件查调IT1=0INTIITI-EX0TITIIFET中TXR1ESHTORX花舞SCON源允许总允许优先级中断标志便件查询图38051单片机的中断系统结构如图3所示,中断系统共有5个中断请求源,它们是:(1)INTO外部中断请求O,外部中断请求信号(低电平或负跳变有效)由P3.2引脚输入,中断请求标志为IEO;(2)INT1外部中断请求1,外部中断请求信号(低电平或负跳变有效)由P3.3引脚输入,中断请求标志为IE1;(3)定时器/计数器TO计数溢出的中断请求,标志为TFO;(4)定时器/计数器T1计数溢出的中断请求,标志为TF1;(5)串行口中断请求,标志为发送中断TI或接收中断RI。2
2 图 2 中断响应和处理过程 如没有中断系统,单片机大量的时间可能会浪费在查询是否有服务请求的定 时查询操作上,即不论是否有服务请求,都必须去查询。采用中断技术完全消除 查询方式的等待,大大提高单片机工作效率和实时性。 3.2 8051 单片机中断系统结构 8051 单片机中断系统结构如图 3,中断系统有 5 个中断请求源(简称中断源), 2 个中断优先级,可实现 2 级中断服务程序嵌套。每一中断源可用软件独立控制 为允许中断或关闭中断状态,每一个中断源的优先级均可用软件设置。 图 3 8051 单片机的中断系统结构 如图 3 所示,中断系统共有 5 个中断请求源,它们是: (1)INT0 外部中断请求 0,外部中断请求信号(低电平或负跳变有效)由 P3.2 引脚输入,中断请求标志为 IE0; (2)INT1 外部中断请求 1,外部中断请求信号(低电平或负跳变有效)由 P3.3 引脚输入,中断请求标志为 IE1; (3)定时器/计数器 T0 计数溢出的中断请求,标志为 TF0; (4)定时器/计数器 T1 计数溢出的中断请求,标志为 TF1; (5)串行口中断请求,标志为发送中断 TI 或接收中断 RI
3.3中断请求标志寄存器5个中断请求源的中断请求标志分别由特殊功能寄存器TCON和SCON相应位锁存。(一)TCON寄存器为定时器/计数器的控制寄存器,字节地址为88H,可位寻址。既包括定时器/计数器TO、T1溢出中断请求标志位TFO和TF1,也包括两个外部中断请求的标志位IE1与IEO,还包括两个外部中断请求源的中断触发方式选择位。TCON格式如图4所示:D3D7D6DSD4D2DDOTCONTFITROTEIIEOTO88HTRITFOITI8BH位地址8FH8DH8AH88H89H图4寄存器TCON的格式TCON寄存器中与中断系统有关各标志位功能如下:(1)TF1一定时器/计数器T1的溢出中断请求标志位当启动T1计数后,T1从初值开始加1计数,当最高位产生溢出时,硬件置TF1为“1”,向CPU申请中断,响应TF1中断时,TF1标志硬件自动清“0”,TF1也可由软件清“0”;(2)TFO一定时器/计数器TO溢出中断请求标志位,与TF1类似;(3)IE1一外部中断请求1中断请求标志位;(4)IE0一外部中断请求0中断请求标志位,与IE1类似;(5)IT1一选择外中断请求1为跳沿触发还是电平触发方式:O--电平触发方式,加到INTO脚上的外中断请求输入信号为低电平有效,并把IE1置“1”。转向中断服务程序时,则由硬件自动把IE1清“0”。1--跳沿触发方式,加到INT1脚上的外中断请求输入信号从高到低的负跳变有效,并把IE1置“1”。转向中断服务程序时,则由硬件自动把IE1清“0”。(6)ITO一选择外中断请求0为跳沿触发方式还是电平触发方式,与IT1类似。当8051单片机复位后,TCON被清“0”,5个中断源的中断请求标志均为0。TR1(D6位)、TRO(D4位)这2位与中断系统无关,仅与定时器/计数器T1和TO有关。(二)SCON寄存器串行口控制寄存器,字节地址为98H,可位寻址。SCON的低二位锁存串口的发送中断和接收中断的中断请求标志TI和RI。3.4中断允许寄存器IE各中断源开放或屏蔽,是由片内中断允许寄存器IE控制。IE字节地址为A8H可进行位寻址,格式如图5所示:3
3 3.3 中断请求标志寄存器 5 个中断请求源的中断请求标志分别由特殊功能寄存器 TCON 和 SCON 相应位 锁存。 (一)TCON 寄存器 为定时器/计数器的控制寄存器,字节地址为 88H,可位寻址。既包括定时器 /计数器 T0、T1 溢出中断请求标志位 TF0 和 TF1,也包括两个外部中断请求的标 志位 IE1 与 IE0,还包括两个外部中断请求源的中断触发方式选择位。TCON 格式 如图 4 所示: 图 4 寄存器 TCON 的格式 TCON 寄存器中与中断系统有关各标志位功能如下: (1)TF1—定时器/计数器 T1 的溢出中断请求标志位, 当启动 T1 计数后,T1 从初值开始加 1 计数,当最高位产生溢出时,硬件 置 TF1 为“1”,向 CPU 申请中断,响应 TF1 中断时,TF1 标志硬件自动清“0”,TF1 也可由软件清“0”; (2)TF0—定时器/计数器 T0 溢出中断请求标志位,与 TF1 类似; (3)IE1—外部中断请求 1 中断请求标志位; (4)IE0—外部中断请求 0 中断请求标志位,与 IE1 类似; (5)IT1—选择外中断请求 1 为跳沿触发还是电平触发方式; 0-电平触发方式,加到 INT0 脚上的外中断请求输入信号为低电平有效,并 把 IE1 置“1”。转向中断服务程序时,则由硬件自动把 IE1 清“0”。 1-跳沿触发方式,加到 INT1 脚上的外中断请求输入信号从高到低的负跳变 有效,并把 IE1 置“1”。转向中断服务程序时,则由硬件自动把 IE1 清“0”。 (6)IT0—选择外中断请求 0 为跳沿触发方式还是电平触发方式,与 IT1 类 似。 当 8051 单片机复位后,TCON 被清“0”,5 个中断源的中断请求标志均为 0。 TR1(D6 位)、TR0(D4 位)这 2 位与中断系统无关,仅与定时器/计数器 T1 和 T0 有关。 (二)SCON 寄存器 串行口控制寄存器,字节地址为 98H,可位寻址。SCON 的低二位锁存串口的 发送中断和接收中断的中断请求标志 TI 和 RI。 3.4 中断允许寄存器 IE 各中断源开放或屏蔽,是由片内中断允许寄存器 IE 控制。IE 字节地址为 A8H, 可进行位寻址,格式如图 5 所示:
D7D6D5D4D3D2D1DOEAESET1EX1IE--ETOEXOA8H位地址AFH-ACHABHA9HA8HAAH图5寄存器IE的格式IE中各位的功能如下:(1)EA一中断允许总开关控制位EA=O,所有的中断请求被屏蔽EA=1,所有的中断请求被开放(2)ES一串行口中断允许位ES=0,禁止串行口中断ES=1,允许串行口中断(3)ET1一定时器/计数器T1溢出中断充许位ET1=O,禁止T1溢出中断ET1=1,允许T1溢出中断(4)EX1一外部中断1中断允许位EX1=0,禁止外部中断1中断EX1=1,允许外部中断1中断(5)ETO一定时器/计数器TO的溢出中断充许位ETO=O,禁止TO溢出中断ETO=1,允许TO溢出中断(6)EX0一外部中断0中断允许位EXO=0,禁止外部中断0中断EXO=1,允许外部中断0中断8051单片机复位后,IE被清“0”,所有中断请求被禁止。IE中与各个中断源相应位可用指令置“1”或清“0”,即可允许或禁止各中断源的中断申请。若使某一个中断源被允许中断,除了IE相应位被置“1”外,还必须使EA位置“1”。3.5中断优先级寄存器IP中断请求源有两个中断优先级,每一个中断请求源可由软件设置为高优先级中断或低优先级中断,也可实现两级中断嵌套。两级中断嵌套,就是8051单片机正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断服务程序。两级中断嵌套如图6所示:CPU热行低级CPU执行高级CPU执行主程序中断服务程厅中断服务程序应低级中断请求请求a商低级童饼3中海X请求!请求!A返主程序O图6两级中断嵌套过程4
4 图 5 寄存器 IE 的格式 IE 中各位的功能如下: (1)EA—中断允许总开关控制位 EA=0,所有的中断请求被屏蔽 EA=1,所有的中断请求被开放 (2)ES—串行口中断允许位 ES=0,禁止串行口中断 ES=1,允许串行口中断 (3)ET1—定时器/计数器 T1 溢出中断允许位 ET1=0,禁止 T1 溢出中断 ET1=1,允许 T1 溢出中断 (4)EX1—外部中断 1 中断允许位 EX1=0,禁止外部中断 1 中断 EX1=1,允许外部中断 1 中断 (5)ET0—定时器/计数器 T0 的溢出中断允许位 ET0=0,禁止 T0 溢出中断 ET0=1,允许 T0 溢出中断 (6)EX0—外部中断 0 中断允许位 EX0=0,禁止外部中断 0 中断 EX0=1,允许外部中断 0 中断 8051 单片机复位后,IE 被清“0”,所有中断请求被禁止。IE 中与各个中断 源相应位可用指令置“1”或清“0”,即可允许或禁止各中断源的中断申请。若 使某一个中断源被允许中断,除了 IE 相应位被置“1”外,还必须使 EA 位置“1”。 3.5 中断优先级寄存器 IP 中断请求源有两个中断优先级,每一个中断请求源可由软件设置为高优先级 中断或低优先级中断,也可实现两级中断嵌套。 两级中断嵌套,就是 8051 单片机正在执行低优先级中断的服务程序时,可 被高优先级中断请求所中断,待高优先级中断处理完毕后,再返回低优先级中断 服务程序。 两级中断嵌套如图 6 所示: 图 6 两级中断嵌套过程
各中断源的中断优先级关系,可归纳为下面两条基本规则:(1)低优先级可被高优先级中断,高优先级不能被低优先级中断;(2)任何一种中断(不管是高级还是低级)一旦得到响应,不会再被它的同级中断源所中断。如果某一中断源被设置为高优先级中断,在执行该中断源的中断服务程序时,则不能被任何其他的中断源的中断请求所中断。8051单片机片内有一个中断优先级寄存器IP,字节地址为B8H,可位寻址。只要用程序改变其内容,即可进行各中断源中断优先级设置,IP寄存器格式如图7所示:D7D6D5D4D3D2D1DOPSPT1PX1PTOPXOIP一B8H位地址BCHBBHBAHB9HB8H图7IP寄存器的格式中断优先级寄存器IP各位含义:(1)PS一串行口中断优先级控制位,1一高级,0一低级;(2)PT1一T1中断优先级控制位,1一高级,0一低级;(3)PX1一外部中断1中断优先级控制位,1一高级,0一低级:(4)PTO一TO中断优先级控制位,1一高级,0一低级;(5)PX0一外部中断0中断优先级控制位,1一高级,0一低级中断优先级控制寄存器IP各位都可由程序置“1”和清“0”,用位操作指令或字节操作指令可更新IP的内容,改变各中断源的中断优先级。8051单片机复位后,各中断源均为低优先级中断,IP内容为0。在同时收到几个同优先级的中断请求时,哪一个中断请求能优先得到响应,取决于中断号,外部中断0中断优先权最高,串行口中断的优先权最低。8051单片机中断源对应的中断号和中断向量见表1所示:表18051单片机的中断号和中断向量中断号n中断源中断向量(8Xn+3)00003H外部中断01定时器0000BH2外部中断10013H3定时器1001BH4串行口0023H其他值保留8Xn+35
5 各中断源的中断优先级关系,可归纳为下面两条基本规则: (1)低优先级可被高优先级中断,高优先级不能被低优先级中断; (2)任何一种中断(不管是高级还是低级)一旦得到响应,不会再被它的同 级中断源所中断。如果某一中断源被设置为高优先级中断,在执行该中断源的中 断服务程序时,则不能被任何其他的中断源的中断请求所中断。 8051 单片机片内有一个中断优先级寄存器 IP,字节地址为 B8H,可位寻址。 只要用程序改变其内容,即可进行各中断源中断优先级设置,IP 寄存器格式如 图 7 所示: 图 7 IP 寄存器的格式 中断优先级寄存器 IP 各位含义: (1)PS—串行口中断优先级控制位,1—高级,0—低级; (2)PT1—T1 中断优先级控制位,1—高级,0—低级; (3)PX1—外部中断 1 中断优先级控制位,1—高级,0—低级; (4)PT0—T0 中断优先级控制位,1—高级,0—低级; (5)PX0—外部中断 0 中断优先级控制位,1—高级,0—低级。 中断优先级控制寄存器 IP 各位都可由程序置“1”和清“0”,用位操作指令 或字节操作指令可更新 IP 的内容,改变各中断源的中断优先级。 8051 单片机复位后,各中断源均为低优先级中断,IP 内容为 0。在同时收到 几个同优先级的中断请求时,哪一个中断请求能优先得到响应,取决于中断号, 外部中断 0 中断优先权最高,串行口中断的优先权最低。 8051 单片机中断源对应的中断号和中断向量见表 1 所示: 表 1 8051 单片机的中断号和中断向量