zoukankan      html  css  js  c++  java
  • 51单片机中断系统

    51中断系统

    1.什么是中断

    中断是CPU在执行程序是不需要管中断源的状态,当中断源满足中断触发条件时CPU再去进行终端处理

    2.中断源

    80C51共五个中断源分别是两个外部中断源:INT0、INT1,两个定时中断源T0、T1,一个串行口中断源

    每个中断源对应着一个中断入口地址

    中断源

    入口地址

    外部中断源INT0

    0003H

    定时器T0

    000BH

    外部中断源INT1

    0013H

    定时器T1

    001BH

    串行口中断

    0023H

    3.中断控制

    3.1.     定时控制寄存器TCON

    控制对象

    T1

    T0

    INT1

    INT0

    位序

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    位名

    TF1

    TR1

    TF0

    TR0

    IE1

    IT1

    IE0

    IT0

    TF 定时器溢出标志

    TR 定时器运行控制位

    IE 中断请求标志

    IT 中断触发方式:1时下降沿触发,0时低电平触发

    3.2.     串行控制寄存器SCON

    D0 位名为RI 发送中断标志

    D1位名是TI 接受中断标志

    接收或发送完一桢数据时相应的D0或D1置1,且需要在中断服务程序中进行复位

    3.3.     中断允许控制寄存器IE

    位序

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    位名

    EA

    /

    /

    ES

    ET1

    EX1

    ET0

    EX0

    EA   cpu中断总允许位

    ES 串行口中断允许位

    ET1定时器1中断允许位

    EX1外部中断1允许位

    3.4.     中断优先级控制寄存器

    位序

    D7

    D6

    D5

    D4

    D3

    D2

    D1

    D0

    位名

    /

    /

    /

    PS

    PT1

    PX1

    PT0

    PX0

    PS 串行口中断优先级

    PT 定时器中断优先级

    PX外部中断优先级

    值为1则为高优先级

    值为0则为低优先级

    4.中断处理过程

    4.1.     采样

    中断采样发生在每个机器中期的S5P2期间,对INT0 INT1引脚进行检测,根据检测结果设置IE0、IE1

    若为下降沿有效的中断则其高电平和低电平的时间都不得小于一个机器周期

    若为电平触发则有效信号不小于一个机器周期

    4.2.     查询

    在每个机器周期的S6期间按先后顺序对各个中断标志位进行查询,若有中断则按中断优先级在下一个机器周期进行中断处理(装入中断矢量),

    中断查询顺序:IE0->TF0->IE1->TF1->RI和TI

    4.3.     响应

    4.3.1     响应条件

    中断源发出中断请求,CPU开中断EA=1

    相应的中断使能位开启ES,ET1ET0,EX1,EX0

    无同级或更高级的终端服务,当前机器周期不是当前指令的最后一个周期

    4.3.2.        响应

    包括两个部分:断点保护和转向中断程序服务入口。

    断点保护:把断点位置的PC压入堆栈

    把中断矢量赋给PC

    全部由硬件自动完成

    4.3.3.        处理

    处理过程如图:

     

    4.3.4.        响应时间

    从中断请求标志位置位到CPU执行终端服务程序的第一条指令所持续的时间

    4.4.     返回

    中断返回指令是RETI 

    用在中断子程序结束时,不能和RET混淆

    5.中断请求的撤销

    5.1.      定时计数器CPU自动撤销,不需要再处理

    5.2.      串行口中断请求需要再中断程序服务里面撤销:如CLR TI    CLR RI

    5.3.      外部中断请求的撤销

      脉冲触发的中断不必考虑

      电平出发的中断则需要使用外部硬件撤销请求信号

    此博客出自稻草人LXB,转载请注明原文地址
    博客地址:http://www.cnblogs.com/scarecrowlxb/
    个人网址:https://www.bingxl.cn
    邮箱:   scarecrowlxb@qq.com
  • 相关阅读:
    MySql 范式
    MySql 多表关系
    MySql 约束条件
    MySql 枚举和集合 详解
    【RoR win32】新建rails项目找不到script/server的解决办法
    【RoR win32】安装RoR
    【RoR win32】提高rails new时bundle install运行速度
    【bs4】安装beautifulsoup
    【py分析网页】可能有用的-re去除网页上的杂碎
    【pyQuery】抓取startup news首页
  • 原文地址:https://www.cnblogs.com/scarecrowlxb/p/6194634.html
Copyright © 2011-2022 走看看