相关概念中断与子程序的区别调用有点相似、但两者是不同的概念。
源不同。中断是由外部中断源产生的、具有不可预测和随机性、比如抛异常。子程序是由主程序安排调用的。 响应不同。中断系统需要保护断点和现场、子程序只需保存断点。 功能不同。中断程序主要处理CPU外部异步事件、子程序调用是为主程序服务。
中断类型TCON中断标志SCON中断标志
中断初始化的一般步骤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种中断,优先级自上向下;
|