第六章 中断系统
中断技术概述
中断技术消除查询等待时间,提高效率和实时性
中断系统结构
5中断源
外部中断
低电平/负跳变有效
中断引脚 INT0/INT1
中断标志 IE0/IE1
定时器/计数器溢出中断
中断标志
T0 TF0
T1 TF1
串行口中断
中断标志
发送中断 TI
接收中断 RI
2种优先级
可嵌套
同级不打断
中断请求标志寄存器
定时器/计数器控制寄存器 TCON
SFR 88H
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
复位时五个中断标志位均为零,无中断
TF1 定时器/计数器T1溢出中断请求标志
1 中断
0 响应中断后硬件/软件清零
TF0 定时器/计数器T0溢出中断请求标志
IE1 外部中断请求1中断请求标志位
1 中断
0 响应后硬件清零
IE0 外部中断请求0中断请求标志位
IT1 外中断请求1触发方式
0 电平触发????????????????????????????????????????????????????????
1 负跳变触发
IT0 外中断请求0触发方式
串行口控制寄存器 SCON
SFR 98H
- - - - - - TI RI
TI 串行口发送中断请求标志
1 中断 硬件自动置1
CPU -> 1B数据 -> SBUF -> 发送1帧数据 -> 置TI为1
0 中断服务程序中指令清零
RI 串行口接收中断请求标志
1 中断 硬件自动置1
接收1帧数据 -> 置RI为1
0 中断服务程序中指令清零
中断允许与中断优先级
中断允许寄存器 IE
SFR A8H
EA - - ES ET1 EX1 ET0 EX0
复位清零,禁止中断
EA 总中断开关
0 屏蔽所有中断请求
1 开中断
ES 串行口中断
ET1 定时器/计数器T1溢出中断
EX1 外部中断1
ET0 定时器/计数器T0溢出中断
EX0 外部中断0
中断优先级寄存器 IP
SFR B8H
- - - PS PT1 PX1 PT0 PX0
复位清零,均为低级
PS 串行口中断优先级
0 低级
1 高级
PT1 定时器/计数器T1溢出中断优先级
PX1 外部中断1优先级
PT0 定时器/计数器T0溢出中断优先级
PX0 外部中断0优先级
同级查询顺序
外部中断0
T0溢出
外部中断1
T1溢出
串行口中断
中断响应条件
响应的必要条件
EA=1
中断标志=1
中断允许位=1
无同级或高级中断在处理
中断封锁条件
有同级或更高级中断在处理
查询的机器周期是不是最后一个机器周期
正在执行的指令是RETI或访问IE IP
RETI 2机器周期
还原PC
清除优先级激活触发器
访问IE IP 中断允许与响应冲突
中断响应
硬件生成长调用指令
PC入栈
PC=中断入口地址 8*n+3
外部中断0 0003H
T0溢出 +8
外部中断1 +8
T1溢出 +8
串行口中断 +8
中断响应时间
置中断标志位~中断响应
3~8机器周期
最短 3机器周期
查询标志位 1
长调用 2
最长 8机器周期
RETI或访问IE IP 2
乘除指令 4
长调用 2
外部中断
电平触发
低电平有效
提高响应速度
中断服务结束前必须撤销
跳沿触发
负跳变
负脉冲保持1机器周期
中断请求撤销
定时器/计数器
硬件自动清零,自动撤销
外部中断
电平方式
中断标志位自动清零
修改引脚电平,手动改为高电平
跳沿方式
中断标志位清零 IE0 IE1 硬件自动清零
外中断信号撤销,脉冲结束,自动撤销
中断函数
中断服务函数
void 函数名() interrupt m using n
m 中断号 0~4
n 工作寄存器组 0~3
不能直接调用
其调用的函数所用寄存器区应与中断函数不同