资源描述
一、什么是中断:
中断是CPU暂时中止正在执行的程序,转去执行提出中断请求的
中断源
(ROM 0000h 入口地址
/int0 0003h 外部中断
/int1 0013h
t0 000bh 定时、计数器中断
t1 001bh
串行口0023h 串行口中断
)
的服务程序,执行完毕后返回原程序继续执行的过程。
二、中断控制:
1、中断允许控制寄存器:IE
EA
ES
ET1
EX1
ET0
EX0
总控位
串行口
T1
/INT1
T0
/INT0
=1 允许中断
=1允许
=1允许
=1允许
=1允许
=1允许
=0 禁止所有中断
=0禁止
=0禁止
=0禁止
=0禁止
=0禁止
1
0
0
0
1
0
1
1
例:要求允许T0、INT0、T1中断,禁止其它中断。
SETB EA
SETB ET0
SETB EX0
SETB ET1
CLR EX1
CLR ES
MOV IE,#8BH
2、中断优先级控制寄存器:IP
默认顺序:高 /INT0 T0 /INT1 T1 串行口 低
PS
PT1
PX1
PT0
PX0
串行口
T1
/INT1
T0
/INT0
=1高
=1高
=1高
=1高
=1高
=0 低
=0 低
=0 低
=0 低
=0 低
任何高优先级中断比任何低优先级中断的优先级都高
例:要求T0、INT0、T1为高优先级中断,其它为低优先级中断,如何设定,设定后优先级顺序是什么样的?
SETB PT0
SETB PT1
SETB PX0
CLR PX1
CLR PS
高 /INT0 T0 T1 /INT1 串行口 低
3、TCON
TF0
TF1
IE1
IT1
IE0
IT0
T0中断请求标志
T1中断请求标志
INT1中断请求标志
INT1触发方式控制位
INT0中断请求标志
INT0触发方式控制位
=1有中断
=0无中断
=1有中断
=0无中断
=1有中断
=0无中断
=1负脉冲
=0低电平
=1有中断
=0无中断
=1负脉冲
=0低电平
SCON
TI(发送中断标志位)
RI(接收中断标志位)
=1有中断
=0无中断
=1有中断
=0无中断
注意:TF0、TF1、IE1、IE0在CPU响应中断请求后会自动恢复成0
TI、RI即使CPU响应中断请求,它们也不会自动恢复成0,必须要在中断服务程序中用指令清0(在介绍串行通信内容时介绍)
外部中断触发方式控制位:IT0、IT1
1)低电平
2)从高电平向低电平跳变、负脉冲、下降沿、边沿
三、中断程序的编写
1、框架:
1)入口地址的设定
ORG 0000H
LJMP START
ORG 0003H
LJMP WB0FW
ORG 0023H
LJMP CXKFW
ORG 0030H
2)中断初始化设定
设定:中断允许、中断优先级、中断触发方式
START:SETB EA
SETB ET0
SETB EX0
SETB PT0
CLR PX0
SETB IT0
3)中断服务程序
(1)断点保护(堆栈)
(2)中断服务的内容
(3)断点恢复
(4)中断返回
展开阅读全文