中断:CPU停止当前任务,去处理中断内容,处理完后自动恢复以前任务。
单片机有5个中断源,2个中断优先级,中断受两级控制:
1、CPU开总中断;
2、中断源开中断。
中断源:引起中断事件的类型。
5个中断源:
1、外部中断请求0,由INT0(P3.2)输入;
2、外部中断请求1,由INT1(P3.3)输入;
3、片内定时器/计数器0溢出中断请求;
4、片内定时器/计数器1溢出中断请求;
5、片内串行口发送/接收中断请求。//很重要,单片机应用中用了很多
定时器/计数器控制寄存器(Timer/counter Control Register):用来查看是否产生了外部中断
IT0,IT1(Interrupt Type):外部中断0、1触发方式选择位,由软件设置。
0-->下降沿触发方式,INT0/INT1引脚上从高到低的复跳变可引起中断;
1-->电平触发方式,INT0/INT1引脚上低电平可引起中断。
IE0,IE1(Interrupt Edge):外部中断0、1请求标志位。
当外部中断0、1依据触发方式满足条件产生中断请求时,由硬件置位(IE0/IE1=1);
当CPU响应中断时,由硬件清楚(IE0/IE1=0).
TF0,TF1(Timer Overflow):定时器/计数器0、1(T/C0、T/C1)溢出中断请求标志。
当T/C0、1计数溢出时,由硬件置位(TF0/TF1);
当CPU相应中断时,由硬件清除(TF0/TF1=0)。
串行口控制寄存器SCON(Serial Port Control Register):用来查看是否产生了串口中断
RI:串行口接收中断请求标志位。
当串行口接收完一帧数据后请求中断时,由硬件置位(RI=1).
RI必须由软件置0.
TI:串行口发送中断请求标志位。
当串口发送完一帧数据后请求中断时,由硬件置位(TI=1).
TI必须由软件置0。
中断的控制:由中断允许寄存器IE和中断优先寄存器IP控制
中断允许寄存器IE(Interrput Enable Register):实现中断的开关管理。
EX0,EX1:外部中断0、1的中断允许位。
1-->外部中断0、1开中断。
0-->外部中断0、1关中断。
ET0,ET1:定时器/计数器0、1(T/C0,T/C1)溢出中断允许位。
1-->开中断
0-->关中断
ES:串行口中断允许位
1-->串行口开中断
0-->串行口关中断
ET2:定时器/计数器2(T/C2)溢出中断允许位
1-->T/C2开中断
0-->T/C2关中断
EA:CPU开关中断寄存器
1-->CPU开中断
0-->CPU关中断
中断优先级寄存器IP(Interrput priority Register):设置中断源优先级
不做介绍了,书上有
中断响应:
void function() interrupt 4
{}
0:外部中断0;
1:定时器/计数器0;
2:外部中断1;
3:定时器/计数器1;
4:串行口中断。
长风破浪会有时,直挂云帆济沧海!