关于单片机中断

给你一囗甜甜゛ 提交于 2020-02-02 03:57:43

中断:CPU停止当前任务,去处理中断内容,处理完后自动恢复以前任务。

  单片机有5个中断源,2个中断优先级,中断受两级控制:

    1、CPU开总中断;

    2、中断源开中断。

中断源:引起中断事件的类型。

   5个中断源:

    1、外部中断请求0,由INT0(P3.2)输入;

    2、外部中断请求1,由INT1(P3.3)输入;

    3、片内定时器/计数器0溢出中断请求;

    4、片内定时器/计数器1溢出中断请求;

    5、片内串行口发送/接收中断请求。//很重要,单片机应用中用了很多

 

      定时器/计数器控制寄存器(Timer/counter Control Register):用来查看是否产生了外部中断

      

      IT0,IT1(Interrupt Type):外部中断0、1触发方式选择位,由软件设置。

        0-->下降沿触发方式,INT0/INT1引脚上从高到低的复跳变可引起中断;

        1-->电平触发方式,INT0/INT1引脚上低电平可引起中断。

      IE0,IE1(Interrupt Edge):外部中断0、1请求标志位。

        当外部中断0、1依据触发方式满足条件产生中断请求时,由硬件置位(IE0/IE1=1);

        当CPU响应中断时,由硬件清楚(IE0/IE1=0).

      TF0,TF1(Timer Overflow):定时器/计数器0、1(T/C0、T/C1)溢出中断请求标志。

        当T/C0、1计数溢出时,由硬件置位(TF0/TF1);

        当CPU相应中断时,由硬件清除(TF0/TF1=0)。

 

      串行口控制寄存器SCON(Serial Port Control Register):用来查看是否产生了串口中断

      

      RI:串行口接收中断请求标志位。

        当串行口接收完一帧数据后请求中断时,由硬件置位(RI=1).

        RI必须由软件置0.

      TI:串行口发送中断请求标志位。

        当串口发送完一帧数据后请求中断时,由硬件置位(TI=1).

        TI必须由软件置0。

中断的控制:由中断允许寄存器IE和中断优先寄存器IP控制

    中断允许寄存器IE(Interrput Enable Register):实现中断的开关管理。

    

    EX0,EX1:外部中断0、1的中断允许位。

      1-->外部中断0、1开中断。

      0-->外部中断0、1关中断。

    ET0,ET1:定时器/计数器0、1(T/C0,T/C1)溢出中断允许位。

      1-->开中断

      0-->关中断

    ES:串行口中断允许位

      1-->串行口开中断

      0-->串行口关中断

    ET2:定时器/计数器2(T/C2)溢出中断允许位

      1-->T/C2开中断

      0-->T/C2关中断

    EA:CPU开关中断寄存器

      1-->CPU开中断

      0-->CPU关中断

    中断优先级寄存器IP(Interrput priority Register):设置中断源优先级

    

     不做介绍了,书上有

中断响应

    void function() interrupt 4

    {}

      0:外部中断0;

      1:定时器/计数器0;

      2:外部中断1;

      3:定时器/计数器1;

      4:串行口中断。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!