给勤于打卡的我鼓个掌,papapapapapapa啪啪啪啪啪啪啪啪啪

3.4 中断概念

  • 中断是为使单片机具有对外部或内部随即发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或者内部事件的能力,是单片机最重要的功能之一。

51单片机内部有5个中断源,也就是说有5种情况发生会使单片机去处理中断程序。辅导书上先讲解了其中之一——定时器中断,其他4个只要定时器终端的原理真正弄明白,自然融会贯通。

  • 对于单片机来讲,中断是指:

    CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理(中断发生);CPU暂时停止当前的工作(中断响应)转去处理事件B(中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A,如图

#太原理工大学机器人团队# 学习单片机的第9天

单片机在执行程序时,中断时随时随地有可能发生的,无论什么时候发生,只要发生,单片机就立刻停止当前程序,去处理中断程序。

引起CPU中断的根源,称为中断源,是中断源像CPU提出中断请求。实现上述中断功能的部件称为中断系统(中断机构)

  • 与中断有关的知识点还有一个叫中断嵌套,意思是说:如果单片机正在处理一个中断程序,此时有另一个中断现象发生,单片机将停止当前的中断程序,而转去执行新的中断程序,新中断程序处理完毕后再回到刚才的中断程序中继续执行,执行完这个中断后再返回主程序中继续执行主程序。
  • 还有一个知识点叫做中断优先级。如果单片机在执行程序时同时发生了两个中断,那么系统就要判断哪个先哪个后,单片机会通过内部的一个特殊功能寄存器——中断优先级寄存器的设置情况,来判断优先级,这个详细的内容,之后慢慢讲。

我们之前学过的I/O口可上面提到的中断优先级寄存器,都是属于单片机的特殊功能寄存器,中断的开启与关闭、设置启用哪一个中断等都是由特殊功能寄存器决定的,接下来我们会学到更多特殊功能寄存器。

区别于51单片机,52单片机一共有6个中断源,符号名称产生条件解释如下:

  1. INT0—外部中断0,由P3.2端口线接入,低电平或下降沿引起。
  2. INT1—外部中断1,由P3.3端口线接入,低电平或下降沿引起。
  3. T0—定时器/计数器0中断,由T0计数器计满回零引起。
  4. == T1—定时器/计数器1中断,由T1计数器计满回零引起。==
  5. T2—定时器/计数器2中断,由T2计数器计满回零引起。
  6. T1/R1—串行口中断,串行端口完成一帧字符发送/接收后引起。

以上6个中断源中,T2时52单片机特有的。它们默认的中断级别如下图
#太原理工大学机器人团队# 学习单片机的第9天

单片机在使用中断功能时,通常需要设置两个与中断有关的寄存器:中断允许寄存器IE和中断优先寄存器IP

中断允许寄存器IE

中断允许寄存器IE用来设定各中断源的打开和关闭。IE在特殊功能寄存器中,字节地址为A8H,位地址(有低位到高位)分别是A8H~AFH。IE寄存器可以进行位寻址,即可对其每一位进行单独操作。单片机复位时IE全部被清零。
#太原理工大学机器人团队# 学习单片机的第9天
从D0位一直到D7位的位地址分别是A8H~AFH。

  • EA,位地址AFH,全局中断允许位。EA=1,打开全局中断控制,由各中断控制位确定相应终端的打开关闭;EA=0,关闭全部中断。这个东西的作用和之前的锁存器中的OE口的作用一样,控制这个元器件是否可以使用。
  • D6位是无效位,不用理它。
  • ET2,位地址ADH,**定时器/计数器2(T2)**中断允许位。ET2=1,打开T2中断;ET2=0,关闭T2中断。
  • ES,位地址ACH,串行口中断允许位。ES=1,打开串行口中断;ES=0,关闭串行口中断。
  • ET1,位地址ABH,**定时器/计数器1(T1)**中断允许位。ET1=1,打开T1中断;ET1=0,关闭T1中断。
  • EX1,位地址AAH,外部中断1中断允许位。EX1=1,打开外部中断1中断;EX1=0,关闭外部中断1中断。
  • ET0,位地址A9H,**定时器/计数器(T0)**中断允许位。ET0=1,打开T0中断;ET0=0,关闭T0中断。
  • EX0,位地址A8H,外部中断0中断允许位。EX0=1,打开外部中断0中断;EX0=0,关闭外部中断0中断。

中断优先级寄存器IP

中断优先寄存器IP在特殊功能寄存器中的的字节地址为B8H,位地址(由低位到高位)分别是B8H~BFH。IP寄存器可以进行位寻址,即可以对其每一位进行单独操作,单片机复位时IP全部被清0.
#太原理工大学机器人团队# 学习单片机的第9天

  • PS—串行口中断优先级控制位。PS=1,串行口中断定义为高优先级中断;PS=0,串行口中断定义为低优先级中断。
  • PT1—定时器/计数器1中断优先级控制位。PT1=1,定时器/计数器1中断定义为高优先级中断;PT1=0,定时器/计数器1中断定义为低优先级中断。
  • PX1—外部中断1中断优先级控制位。PX1=1,外部中断1中断定义为高优先级中断;PX1=0,外部中断1中断定义为低优先级中断。
  • PT0—定时器/计数器中断优先级控制位。PT0=1,定时器/计数器0中断定义为高优先级中断;PT0=0,定时器/计数器0中断定义为低优先级中断。
  • PX0—外部中断1中断优先级控制位。PX0=1,外部中断0中断定义为高优先级中断;PX0=0,外部中断0中断定义为低优先级中断。

关于单片机优先级之间的关系,感觉书本教的不是十分透彻,在网上搜索了一下,感觉有一位博主的总结很好,故引用。连接https://bbs.csdn.net/topics/320121866
#太原理工大学机器人团队# 学习单片机的第9天
今天先这样啦,内容有点复杂

相关文章:

  • 2021-11-04
  • 2021-04-22
  • 2021-08-25
  • 2021-07-29
  • 2021-12-26
  • 2021-08-02
  • 2021-11-06
  • 2021-09-01
猜你喜欢
  • 2021-06-30
  • 2021-12-05
  • 2021-05-10
  • 2021-08-18
  • 2021-04-03
  • 2021-07-09
  • 2021-11-19
相关资源
相似解决方案