苏州奥联电子科技有限公司
当前位置: 苏州奥联电子科技有限公司 » 单片机

51单片机 (4)中断系统

分类:单片机 发布:2018年05月19日 22:43 浏览:862次 Tag:

相关概念

  • 中断源:引起中断的事件

  • 中断请求:中断源向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


  1. 函数名()interrupt 0 {} //对应外部中断0;

  2. 函数名()interrupt 1 {} //对应定时器/计数器0中断;

  3. 函数名()interrupt 2 {} //对应外部中断1;

  4. 函数名()interrupt 3 {} //对应定时器/计数器1中断;

  5. 函数名()interrupt 4 {} //对应串口中断;

一共5种中断,优先级自上向下;


相关文章
 
资讯栏目
最新资讯
资讯排行
 

在线咨询