zoukankan      html  css  js  c++  java
  • 51单片机 | 中断系统概念及结构

    ————————————————————————————————————————————

    中断的过程:

    对于单片机来讲,中断是指CPU在处理某一时间A时,发生了另一事件B请求CPU立刻去处理(中断发生);CPU暂时停止当前的工作(中断响应),转而去处理事件B(中断服务),待CPU处理事件B完成后,再回到原来事件A被中断的地方继续处理事件A(中断返回)

    中断源 // 5个中断源都有一个中断入口地址,当某个中断源产生中断时,CPU响应中断便到相应的中断入口地址执行中断服务程序

    中断的嵌套与优先级处理

    中断的响应过程

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    中断系统结构

    • 外部中断请求源:INT0、INT1

      外部中断0(INT0)由外部引脚P3.2引入,外部中断1(INT1)由外部引脚P3.3引入

    • 内部中断请求源:T0、T1、串口中断

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    程序定义方式

    • 定义中断函数的一般形式

      void 函数名() interrupt 中断号 using 寄存器工作组

      p.s.如果中断函数中调用了其他函数,则被调用函数所使用的寄存器组必须与中断函数相同。中断函数不能参数传递,没有返回值,不能直接被调用。

    • 中断序号

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    中断优先级

       

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    中断系统寄存器

    • TCON:低4位给外部中断请求源使用,高4位给内部中断请求源定时器T0 T1使用

      外部请求源

      • IT0:INT0触发方式控制位,可由软件进行置位和复位。IT0=0时,INT0为低电平触发方式。IT0=1时,INT0为负跳变触发方式。
      • IE0:INT0中断请求标志位。当有外部的中断请求时,该位置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0清0。
      • IT1、IE1的用途和IT0、IE0相似。

      内部请求源

      • TF0:定时/计数器T0溢出中断标记,当T0产生溢出时,TF0置位。当CPU响应中断后,硬件将TF0复位
      • TR0:T0的开闭控制位,TR0=1时定时计数器打开,TR0=0时定时计数器关闭
      • TF1、TR1与TF0、TR0相似。
    • SCON:低2位与串口中断相关

      内部请求源

      • TI、RI:串行口发送、接收中断
    • IE:中断允许寄存器

      • EA:中断总控制位。EA=1,CPU开放所有中断;EA=0,CPU禁止所有中断。
      • ES:串行口中断控制位。ES=1,允许串行口中断;ES=0,屏蔽串行口中断。
      • ET1:定时/计数器TI中断控制位。ET1=1,允许T1中断;ET1=0,禁止T1中断。
      • EX1:外部中断1中断控制位。EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
      • ET0:定时/计数器T0中断控制位。ET0=1,允许T0中断;ET0=0,禁止T0中断。
      • EX0:外部中断0中断控制位。EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0断。
    • IP:中断优先级寄存器

      在该寄存器中,优先级分为1 0两级,对应的位置为1则为高优先级,位置为0则为低优先级。执行时先将高优先级的中断执行完后才会执行低优先级(同样高优先级情况下,按默认优先级排)。

      • PS:串行口中断优先级控制位
      • PT1:定时器1优先级控制位
      • PX1:外部中断1优先级控制位
      • PT0:定时器0优先级控制位
      • PX0:外部中断0优先级控制位

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    补充:

    外部中断的触发方式选择

    • 电平触发方式(低电平触发)

      CPU在每个机器周期采样到的外部中断输入线的电平。在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。

      适于外中断以低电平输入且中断服务程序能清除外部中断请求(即外部中断输入电平又变为高电平)的情况。

    • 跳沿触发方式

      连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置"1"中断请求标志,直到CPU响应此中断时,该标志才清0。这样不会丢失中断,但输入的负脉冲宽度至少保持1个机器周期。

  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/hughdong/p/6878684.html
Copyright © 2011-2022 走看看