美文网首页
51 单片机中断系统

51 单片机中断系统

作者: 碎念枫子 | 来源:发表于2020-06-22 14:43 被阅读0次

    中断系统

    51单片机有5个中断系统


    五个中断系统图

    (优先级从高到低)

    中断号 0 1 2 3 4
    名称 INT0 T0 INT1 T1 Rx/Tx

    中断允许控制器 IE寄存器
    字节地址A8H EA ? ? ES ET1 EX1 ET0 EX0
    EX0 外部中断0允许位;
    ET0 定时/计数器T0中断允许位;
    EX1 外部中断0允许位;
    ET1 定时/计数器T1中断允许位;
    ES 串行口中断允许位;
    EA CPU中断允许(总允许)位

    中断请求控制控制寄存器 (TCON寄存器)
    字节地址88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
    IT0 外部中断0触发方式控制位 0为电平触发方式 1位边沿触发方式(下降沿)
    IE0 外部中断0中断请求标志位
    IT1 外部中断1触发请求方式控制位
    IE1 外部中断1触发中断请求标志位
    TR0 T0运行控制位
    TF0 定时/计数器T0溢出中断请求标志位。
    TR1 T1运行控制位。
    TF1 定时/计数器T1溢出中断请求标志位

    CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。
    正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
    正在进行的低优先级中断服务,能被高优先级中断请求所中断。

    为了实现上述后两条原则,中断系统内部设有两个用户不能寻址的优先级状态触发器。其中一个置1,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置1,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。

    中断条件

    中断源有中断请求;
    此中断源的中断允许位为1;
    CPU开中断(即EA=1)。

    代码示例:

    主程序中需要有以下代码:
    EA=1;//打开总中断开关
    EX0=1;//开外部中断0
    IT0=0/1;//设置外部中断的触发方式
    
    中断服务函数:
    
    void   int0   ()  interrupt   0    using  1
    {
        do anything that you want
    }
    

    相关文章

      网友评论

          本文标题:51 单片机中断系统

          本文链接:https://www.haomeiwen.com/subject/yczznctx.html