中断系统
中断请求 -> 中断响应 -> 中断处理 -> 中断返回
什么是中断系统
计算机执行某程序时,发生了紧急事件或有特殊请求,CPU暂停某程序的执行,转而去处理上述事件或请求,处理完毕后再重新执行某程序的过程叫做中断。
数据的输入/输出传送方式
1.无条件传送方式:
一方对另一方来说总是准备好的
2.查询传送方式(LOOK UP):
传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待。
3.中断传送方式(IRQ):
一方通过申请中断的方式与另一方进行数据传送。
4.直接存储器存储方式(DMA):
双方直接通过总线传送数据,不经CPU中转。适用于数据量大高速通讯的设备,不占用CPU时间。
51子系列允许5个中断源
外部中断源(2个):
INT0 — 由P3.2端口线引入,低电平或下降沿引起
INT1 — 由P3.3端口线引入,低电平或下降沿引起
这两个外部中断源标志和他们的触发方式控制位由特殊功能寄存器TCON的低四位控制.
内部中断源(3个):
T0 — 定时器/计数器0中断,由T0回零溢出引起.
T1 — 定时器/计数器1中断,由T1回零溢出引起.
TI/RI —串行I/O中断,串行端口完成一帧字符发送/接收后引起
这三个内部中断源的控制位分别锁存在特殊功能寄存器TCON和SCON中.
如何去使用单片机中断系统
1. 允许中断
2.配置中断方式
编写中断函数
中断优先级处理原则
对同时发生多个终端申请时:
-
不同优先级的中断同时申请(很难遇到)----先高后低
-
相同优先级的中断同时申请(很难遇到)----按序进行
-
正处理低优先级中断又接到高级别中断----高打断低
-
正处理高优先级中断又接到低级别中断----高不理低
单片机同优先级中内部查询顺序
内部查询顺序:在同时受到几个同一优先级的中断请求时,哪一个中断请求能优先得到响应,取决于内部的查询顺序.这相当于在同一优先级内,还同时存在另一辅助优先级结构,其查询顺序如下:
中断响应条件
- 此中断源的中断允许位为1
- 此中断CPU中断打开(EA=1)
- 中断源有中断请求
例 :外部中断1初始化
- EA = 1;//开总中断
- EX1 = 1;//开外部中断1
- IT1 = 1;//跳变沿触发
中断处理函数
void int1() interrupt 2 //中断处理函数,加关键字interrupt和入口号
{
中断处理语句
}