相关概念
- 中止源:引起中止的事情
- 中止恳求:中止源向CPU提出处理的恳求
- 断点:发生中止时被打断程序的暂停点
- 中止呼应:CPU暂停现行程序而转为呼应中止恳求的进程
- 中止处理程序:处理中止源的程序
- 中止处理:CPU碑文有关的中止处理程序
- 中止回来:回来断点的进程
中止与子程序的差异
调用有点类似、但两者是不同的概念。
- 源不同。中止是由外部中止源发生的、具有不行猜测和随机性、比方抛反常。子程序是由主程序组织调用的。
- 呼应不同。中止体系需求维护断点和现场、子程序只需保存断点。
- 功用不同。中止程序首要处理CPU外部异步事情、子程序调用是为主程序服务。
中止类型
- 外部中止源:外部硬件资源发生。上下沿触发和凹凸电平触发。
- 守时中止源:守时器/计数器溢出触发。
- 串口中止源:串行通讯时发送或接纳结束信息触发。
TCON中止标志
- IE1:外部中止1恳求标志位。
- IT1:外部中止1触发方法挑选位。当IT1=0,为低电平触发方法;当IT1=1,为下降沿触发方法。
- IE0:外部中止0恳求标志位。
- IT0:外部中止0触发方法挑选位。 当IT0=0,为低电平触发方法;当IT0=1,为下降沿触发方法。
SCON中止标志
- RI:串行接口时接纳信息结束后、硬件主动置RI=1、CPU呼应中止。留意不会主动清零置RI=0、需软件置RI=0
- TI:串行接口发送信息结束后、硬件主动置TI=1、CPU呼应中止。留意不会主动清零置TI=0、需软件置TI=0
中止初始化的一般过程
1、确认工作方法(即对TMOD赋值);
2、预置守时或计数的初值(可直接将初值写入TH0、TL0或TH1、TL1);
3、根据需求敞开守时器/计数器的中止(直接对IE位赋值);
4、发动守时器/计数器(若已规则用软件发动,则可把TR0或TR1置“1”;若已规则由外中止引脚电平发动,则需给外引脚加发动电平。当完成了发动要求后,守时器即按规则的工作方法和初值开端计数或守时)。
中止答应标志位
- EX1:外部中止1答应位;
- EX0:外部中止0答应位;
- ET1:守时/计数器T1中止答应位;
- ET0:守时/计数器T0中止答应位;
- ES:串行口中止答应位;
- EA: CPU中止答应(总答应)位。
中止优先级标志
0为低优先级、1为高优先级
- PS:串行接口中止优先级设置位
- PT1:守时器/计数器中止1中止优先级设置位
- PT0:守时器/计数器中止0中止优先级设置位
- PX1:外部中止1中止优先级设置位
- PX0:外部中止0中止优先级设置位
51单片机中止号
- 外部中止0(INT0),对应中止号是0, 中止进口地址0003H
- 守时/计数器0(T1),对应中止号1 ,中止进口地址000BH
- 外部中止1(INT1),中止号2 进口地址0013H
- 守时/计数器1(T1)中止号3 进口地址001BH
- 串行口(RI/TI)中止号4 进口地址0023H
- 这五个是AT89S51的,52还多了下面这个
- 守时/计数器2(T2)中止号5,进口地址002BH
- 函数名()interrupt 0 {} //对应外部中止0;
- 函数名()interrupt 1 {} //对应守时器/计数器0中止;
- 函数名()interrupt 2 {} //对应外部中止1;
- 函数名()interrupt 3 {} //对应守时器/计数器1中止;
- 函数名()interrupt 4 {} //对应串口中止;
总共5种中止,优先级自上向下;[摘自百度知道link]