51单片机的中断系统详解

单片机的中断系统

概念
中断发生:CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理。
中断响应和中断服务:CPU暂时中断当前的工作,转去处理事件B。
中断返回:将事件B处理完毕后,回到事件A被中断的地方继续处理事件A。
中断源:引起CPU中断的根源。
断点:被中断的地方。


优点

  1. 分时操作:可以分时为多个I/O设备服务
  2. 实时响应
  3. 可靠性高

中断源
五个中断源(2个优先级,二级中断嵌套)
外部中断
I N T 0 ‾ \overline{INT0} INT0
I N T 1 ‾ \overline{INT1} INT1
定时器/计数器
T 0 T0 T0
T 1 T1 T1
串口中断
U A R T UART UART


查询优先级

优先级中断标志中断号
INT0P3.2口,低电平有效0
T0溢出1
INT1P3.3口,低电平有效2
T1溢出3
URAT4

当CPU查询各个中断标志位的时候,会依照上述5个查询优先级顺序依次查询,当数个中断同时请求的时候,会优先查询到高优先级的中断标志,但并不代表高优先级的中断可以打断已经并且执行的低查询优先级的中断服务。


执行优先级
中断的执行优先级就是对中断优先级控制器的设置。
中断系统:中断源、中断标志、中断允许控制寄存器、中断优先级控制寄存器构成。
中断请求标志

  • TCON寄存器
符号字节地址位名称位名称位名称位名称位名称位名称位名称位名称复位值
TCON88HTF1TR1TF0TR0IE1IT1IE0IT000000000
  1. IT0:外部中断0触发方式选择位。外部中断有两种触发方式:电平触发方式跳变触发方式。当IT0=0时,为电平触发方式,引脚INT0上出现低电平时向CPU申请中断。当IT0=1时,为跳变触发方式,引脚INT0出现高电平到低电平的跳变时向CPU申请中断。
  2. IE0:外部中断0请求标志位。表示外部中断0正在向CPU请求中断。在电平触发方式下,若INT0为低电平,则IE0置1,否则清0。
  3. IT1:外部中断1触发方式选择位。
  4. IE1:外部中断1请求标志位。
  5. TF0:定时器/计数器0溢出中断请求标志位。定时/计数器0计数溢出时,TF0置1,向CPU请求中断。
  6. TF1:定时器/计数器0溢出中断请求标志位。
  7. TR0和TR1与中断无关,仅与定时器/计数器T1和T0有关。
  • SCON寄存器
    串行口控制寄存器
符号字节地址位名称位名称位名称位名称位名称位名称位名称位名称复位值
SCON98HSM0/FESM1SM2RENTB8RB8TIRI0000 0000
  1. TI:串行口的发送中断请求标志位,自动置1。
  2. RI:串行口的接收中断请求标志位,自动置1。

中断允许控制寄存器

  • IE寄存器
符号字节地址位名称位名称位名称位名称位名称位名称位名称位名称复位值
IEA8HEAESET1EX1ET0EX000000000
  1. EX0:外部中断0中断允许控制位。EX0=0,禁止中断,EX0=1,允许中断。
  2. ET0:定时器/计数器0溢出中断允许控制位。ET0=0,禁止中断,ET0=1,允许中断。
  3. EX1:外部中断1中断允许控制位。EX1=0,禁止中断,EX1=1,允许中断。
  4. ET1:定时器/计数器1溢出中断允许控制位。ET1=0,禁止中断,ET1=1,允许中断。
  5. ES:串行口中断允许控制位。ES=0,禁止中断,ES=1,允许中断。
  6. EA:CPU中断允许控制位。EA=0,CPU屏蔽所有的中断请求,EA=1,CPU允许所有的中断请求。

中断优先级控制寄存器
中断的三条原则

  1. CPU同时接受到几个中断时,首先响应优先级别最高的中断源。
  2. 正在进行的中断过程,不能被低优先级和同级的中断请求中断。
  3. 正在进行的中断过程,能被高优先级的中断请求打断。
    为了实现2和3,中断系统内部设有两个用户不能寻址的优先级状态寄存器。IPIPH
符号字节地址位名称位名称位名称位名称位名称位名称位名称位名称复位值
IPB8HPSPT1PX1PT0PX00000 0000

1:PS:串行口中断优先级控制位。PS=1,串行口为高优先级中断;PS=0,串行口为低优先级中断。
2:PT1:定时器T1中断优先级控制位。PT1=1,定时器T1为高优先级中断;PT1=0,定时器T1为低优先级中断。
3:PX1:外部中断1优先级控制位。PX1=1,外部中断1为高优先级中断;PX1=0,外部中断1为低优先级中断
4:PT0:定时器T0中断优先级控制位。PT0=1,定时器T1为高优先级中断;PT1=0,定时器T0为低优先级中断
5:PX0:外部中断0优先级控制位。PX0=1,外部中断0为高优先级中断;PX0=0,外部中断0为低优先级中断


CPU的中断响应条件(同时满足)

  1. 有中断源发出中断请求
  2. 中断总允许位EA=1,即CPU允许所有中断源申请中断。
  3. 申请中断的中断源允许位为1,即此中断源可以向CPU申请中断。
  • 8
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
51单片机电子时钟代码的解析可以分为以下几个部分: 1. 引入头文件:通常需要引入一些特定的头文件,例如 `reg51.h`,该头文件定义了 51 单片机的寄存器和位操作函数。 2. 定义变量:需要定义一些全局变量,例如用于存储时间、日期和闹钟设置的变量。 3. 初始化函数:通常在主函数之前会定义一个初始化函数,用于设置相关的时钟、端口和中断等。 4. 主函数:主函数是程序的入口,其中包含了主要的逻辑代码。主要分为以下几个模块: a. 显示模块:根据当前时间和日期,通过数码管或 LCD 屏幕显示出来。 b. 设置模块:通过按键输入设置时间、日期和闹钟等参数。 c. 闹钟模块:检测当前时间是否与闹钟时间匹配,如果匹配则触发相应的操作,例如蜂鸣器响铃。 d. 中断模块:根据需要可以配置定时器中断或外部中断,用于处理一些实时的任务。 e. 其他功能模块:根据实际需求,可以添加一些其他的功能,例如温湿度传感器的读取、红外遥控等。 5. 辅助函数:根据需要可能会定义一些辅助函数,例如时间转换函数、按键扫描函数等。 在代码中,通常会使用寄存器操作来对硬件进行控制,例如设置 IO 口的输入输出方向、读取按键状态等。同时,还会使用定时器和中断来实现一些实时的功能,例如定时更新时间、检测按键输入等。 以上是对 51 单片机电子时钟代码解析的一个简单介绍,实际的代码可能会更加复杂和庞大,具体的实现方式和功能取决于开发者的需求和设计。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值