当前位置:文档之家› 单片机的中断系统

单片机的中断系统


2. 串行口控制寄存器(SCON) SCON的格式如图5-3所示。
TCON (98H)
D7 D6 D5
D4 D3
D2 D1 D0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
图5-3 SCON的格式
SCON中的高6位用于串行口控制,低2位(RI、TI)用于中 断控制,其作用如下: 1) TI为串行口发送中断请求标志位,发送完一帧串行数据 后,由硬件置1,其清零必须由软件完成。 2) RI为串行口接收中断请求标志位,接收完一帧串行数据 后,由硬件置1,其清零必须由软件完成。
显然,采用位操作指令进行中断系统初始化是比较简单 的。因为用户不必记住各控制位在寄存器中的位置,只需按 各控制位名称来设置,而各控制位名称是比较容易记忆的。
5.2 中断的编程及应用实例
C51语言编译器支持在C语言源程序中直接编写51单片机的中 断服务函数程序,从而减轻了采用汇编语言编写中断服务程序的 烦琐程序。为了能在C语言源程序中直接编写中断服务函数,C51 语言编译器对函数的定义有所扩展,增加了一个扩展关键字 interrupt。关键字interrupt是函数定义时的一个选项,加上这个选 项即可将函数定义成中断服务函数。 定义中断服务函数的一般形式为: 函数类型 函数名(形式参数表) interrupt n [using m] interrupt 后面的n 是中断号,n的取值范围为0~31。编译器 从8n+3处产生中断向量,具体的中断号n和中断向量取决于不同 的51系列单片机芯片。对于MCS-51单片机而言,外部中断0中断、 定时器/计数器0溢出中断、外部中断1中断、定时器/计数器1溢出 中断、串行口发送/接收中断对应的中断号分别为0、1、2、3、4。 using后面的m是选择哪个工作寄存器区,分别为0、1、2、3。
3. 外部中断的撤除 外部中断请求有两种触发方式:电平触发和负边沿触发。 对于这两种不同的中断触发方式,MCS-51撤除它们的中断请 求的方法是不相同的。 在负边沿触发方式下,外部中断标志IE0和IE1是依靠CPU两次 检测 INT 0或 INT1 上触发电平状态而设置的。因此,芯片设 计者使CPU在响应中断时自动复位IE0或IE1,就可撤除 INT 0 或 INT1 上的中断请求,因为外部中断源在中断服务程序时是 不可能再在 INT 0 或 INT1 上产生负边沿,而使相应的中断标志 IE0或IE1置位。 在电平触发方式下,外部中断标志IE0和IE1是依靠CUP检 测或上低电平而置位的。尽管CPU响应中断时相应中断标志 IE0或IE1,能自动复位成0状态,但若外部中断源不能及时撤 除它在或上的低电平,就会再次使已经变0的中断IE0或IE1置 位,这是绝对不允许的。
1. 采用位操作指令 SETB EA ;
SETB
EX0 ; 开
中断INT 0 中断
为 INT 0高优先级
SETB
PX0 ; 令
CLR
IT0 ;

为 INT 0 电平触发
2. 采用字节操作指令 MOV IE,#81H ; ORL IP,#01H ; 开INT 0 中断 令 INT 0 为高优先级
ORL TCON,#0FEH ; 令INT 0 电平触发
D4 D3
——
D2 D1 D0
ES ET1 EX1 ET0 EX0
图5-4 中断允许控制寄存器的格式
寄存器中用于控制中断的共6位,实现中断管理,其作用 如下。 EA为中断允许总控制位。EA=1时,CPU开放中断;EA=0时, CPU屏蔽所有中断请求。
ES、ET1、EX1、ET0、EX0为对应的串行口中断、定 时/计数器1中断、外部中断1中断、定时器/计数器0中断、 外部中断0中断的中断允许位。对应位为1时,允许其中断, 对应位为0时,禁止其中断。 MCS-51单片机中断系统的管理是由中断允许总控制 EA和各中断源的控制位联合作用实现的,缺一不可。 MCS-51单片机系统复位后,IE各位均清零,即禁止所 有中断。
4. 中断优先级控制寄存器(IP) 中断优先级控制寄存器的格式如图5-5所示。
IP (B8H)
D7 D6 D5 D4 D3 D2 D1 D0
—— —— —— PS PT1 PX1 PT0 PX0
图5-5 中断优先级控制寄存器的格式
图5-5 中断优先级控制寄存器的格式 MCS-51单片机规定了两个中断优先级:高级中断和低级中 断。用中断优先级寄存器(IP)的5位状态管理5个中断源的优 先级别,即PS、PT1、TX1、PT0、PX0分别对应串行口中断、 定时器/计数器1中断、外部中断1中断、定时器/计数器0中断、 外部中断0中断。当相应位为1时,设置其为高级中断;相应位 为0时,设置其为低级中断。 5.1.3 中断优先级结构 MCS-51中断系统具有两级优先级(由IP寄存器把各中断源 的优先级分为高优先级和低优先级),它们遵循下列两条基本 原则: 1). 为了实现中断嵌套,高优先级中断请求可以中断低优先级的 中断服务,反之,则不允许;
因此,电平触发型外部中断请求的撤除必须使或上的低电平随 着其中断被CPU响应而变为高电平。一种可供采用的电平型外 部中断的撤除电路如图5-7所示。
INT0
Q
D C P 1
8051
SD
外部中断信号
P1.0 图5-7 电平型外部中断的撤除电路
由图可见,当外部中断源产生中断请求时,D触发器的复 位成0状态,Q端的低电平被送到INT 0 ,该低电平被8051 检测后就使中断标志IE0置1。8051响应 INT 0 上的中断请求 可使INT 0 中断服务程序执行,故可以在中断服务程序开头安 排如下程序来使 INT 0上的电平拉高。 INSVR:ORL P1, #01H ANL P1, #0FEH CLR IE0 … END 8051执行上述程序就可使P1.0上产生一个宽度为两个机 器周期的负脉冲。在该负脉冲作用下,D触发器被置位成1状 态, 0 上的电平也因此而变高,从而撤除了其上的中断请 INT 求。
第5章 单片机的中断系统
51单片机的中断系统是8位机中功能较强的,可以提供5个中 断源(52系列是6个),具有两个中断优先级,可以实现两级 中断嵌套。 5.1 中断的基本知识 5.1.1 中断源及中断结构 MCS-51单片机的5个中断源分为两种类型:一类是外部中断 源,包括INT 0 和 INT1 ;一类是内部中断源,包括两个定时 器/计数器(T0和T1)的溢出中断和串行口的发送/接收中断。 MCS-51单片机中断系统结构图5-1所示。
中断源 外部中断0 定时器/计数器0溢出 外部中断1 定时器/计数器1溢出 串行口 图5-6 中断优先级排列 同级内中断优先级别 最高
最低
5.1.4 中断服务程序入口地址 MCS-51单片机5个中断源的中断服务程序入口地址如表5-1 所示。
表5-1 MCS-51中断服务程序入口地址表 中断源 中断服务程序入口地址
2. 串行口中断请求的撤除 TI和RI是串行口中断的标志位,中断系统不能自动将它们 撤除,这是因为MCS-51进入串行口中断服务程序后常需要对 它们进行检测,以测定串行口发生了接收中断还是发送中断。 为了防止CPU再次响应这类中断,用户应在中断服务程序的适 当位置处通过指令将它们撤除: CLR TI ; 撤除发送中断 CLR RI ; 撤除接收中断 若采用字节指令,则也可采用如下指令: ANL SCON,#0FCH ;撤除发送和接收中断 或采用位判断清除指令: JBC TI, rel; 判断TI标志是否置位,若置位则跳转 并撤除发送中断 JBC RI, rel; 判断RI标志是否置位,若置位则跳转 并撤除接收中断
外部中断0
定时器/计数器0溢出 外部中断1 定时器/计数器1溢出 串行口
0003H
000BH 0013H 001BH 0023H
5.1.5 中断请求的撤除 在中断请求被响应前,中断源发出的中断请求由CPU锁 存在特殊功能寄存器TCON和SCON的相应中断标志位中。一 旦某个中断请求得到响应,CPU必须把它的响应标志位复位 成0状态,否则MCS-51就会因中断未能得到及时撤除而重复 响应同一中断请求,这是绝对不允许的。 MCS-51单片机有5个中断源,但实际上只分属于3种中断 类型。这3种类型是:外部中断、定时器溢出中断和串行口中 断。对于这3种中断类型的中断请求,其撤除方法是不同的。 1. 定时器溢出中断请求的撤除 TF0和TF1是定时器溢出中断标志位,它们因定时器溢出中 断请求的输入而置位,因定时器溢出中断得到响应而自动复 位成0状态。因此,定时器溢出中断源的中断请求是自动撤除 的,用户根本不必专门为它们撤除。
2). 同等优先级中断源之间不能中断对方的中断服务过程。 为了实现上述两条原则,中断系统内部包含两个不可寻址的 优先级状态触发器。其中一个用来指示某个高优先级的中断源正 在得到服务,并阻止所有其他中断的响应;另一个触发器则指出 某低优先级的中断正得到服务,所有同级的中断都被阻止,但不 阻止高优先级中断源。 当同时收到几个同一优先能的中断时,响应哪一个中断源取 决于内部查询顺序。其优先级排列如图5-6所示。
1讲
TCON 1 INT0=0 引脚 INT0=1
IE 源允许 总允许
IP 优先级
IE0
PX0 EX0 PT0 ET0 PX1 EX1
1 0 1 0 1 0
高 级 中 断 请 求 PC
定时器T0
TF0 1
INT1=0
中断矢量 硬件查询
引脚口收RXD 注:IT0、IT1 也在TCON中
0
TI RI
SCON 中断标志
≥1
PS ES EA
1 0
中断矢量 硬件查询
图5-1 MCS-51 单片机中断系统结构
自 然 优 先 级
TF1
PT1
1
自 然 优 先 级
低 级 中 断 请 求 PC
相关主题