单片机 中断系统

计算机执行某程序时,发生了紧急事件或有特殊请求,CPU暂停某程序的执行,转而去处理上述事件或请求,处理完毕后再重新执行某程序的过程叫做中断。
例如
当你正在洗衣时,突然手机响了(中断发生),你暂时中断洗衣的工作,转去接电话(中断响应和中断服务),待你接完后,再回来继续洗衣(中断返回),这一过程就是中断。

中断系统结构

在这里插入图片描述
引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。

5个中断源

在这里插入图片描述
在这里插入图片描述
INT0 - 外部中断0,由P3.2端口线引入,低电平或下降沿引起
INT1 - 外部中断1,由P3.3端口线引入,低电平或下降沿引起
T0 - 定时器/计数器0中断, 由T0计数器计满回零引起
T1 - 定时器/计数器1中断, 由T1计数器计满回零引起
T2 - 定时器/计数器2中断, 由T2计数器计满回零引起
TI/RI - 串行口中断,串行端口完成一帧字符发送/接收后引起
其中T2是52单片机特有的。

  • INT0、INT1这两个外部中断源标志和它们的触发方式控制位由特殊功能寄存器TCON的低4位控制。
  • T0、T1、TI/RI这3个内部中断源的控制位分别锁存在特殊功能寄存器TCON和SCON中。

TCON

  • TCON
    在这里插入图片描述
  • SCON
    在这里插入图片描述
    在这里插入图片描述

IE

在这里插入图片描述

中断处理函数

<1> 中断函数没有返回值,也不能带参数。
<2> 函数名后面要跟一个关键字interrupt,说明这是一个中断服务函数。
<3> 在关键字interrupt后面要跟上中断号,说明这个中断服务函数是为那个中断服务的。

void int1() interrupt 2  //中断处理函数,加关键字interrupt和入口号
{
	//中断处理语句
}
  • 中断响应条件
    此中断源的中断允许位为1。
    总中断CPU中断打开(EA = 1)。
    中断源有中断请求。
  • 外部中断1初始化例:
    EA = 1; //开总中断
    EX1 = 1; //开外部中断1
    IT1 = 1; //跳变沿触发
  • 外部中断1中断处理函数
    void int1() interrupt 2
    {
    中断处理程序
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值