【51单片机系列】C51中的中断系统
C51中断系统是单片机中的核心部分,类似于生活中的应急机制,能够快速响应突发状况,从而提高CPU的处理效率。掌握该系统,就如同掌握了处理突发事件的钥匙。在89C51系列中,中断系统由三个主要组件构成:中断源、中断响应和中断返回,共有8个中断源,包括外部中断、定时器和串口,各自具有独特的功能和优先级划分,最高优先级的中断可以打断低优先级的任务。
中断源一览:
- INT0: 当P3.2脚为低电平或下降沿触发,或T0定时器溢出时产生中断请求。
- INT1: P3.3脚低电平或下降沿,以及T1定时器溢出也可触发中断。
- TI/RI: 串行通信完成后,中断标志触发,表示数据传输完成。
中断响应有三大条件必须满足:中断源发出请求、中断允许位(IE)打开,以及CPU处于中断模式(EA=1)。
以外部INT0为例,中断使用的步骤如下:
- 在主程序中设置:
- EA=1(开启全局中断)
- EX0=1(启用外部中断0)
- IT0=0/1(选择中断触发方式,0为电平触发,1为边沿触发)
- 编写中断服务函数,例如:
int0 interrupt 0 using 1
(自定义函数名,用于处理INT0中断任务)。
在STC89C5X系列中,中断优先级的设置尤为重要,通过设置IPH寄存器来实现四级优先级的划分,确保高优先级中断能够优先响应。在中断请求处理中,记录中断请求状态的寄存器TCON,负责中断处理的准确性。
C51单片机中断程序中的interrupt1、2、3是由什么决定的?
中断是指因某些事件(硬件或软件)发生,计算机暂停当前程序的执行,转而处理另一程序,待处理完毕后再返回继续执行原程序。中断是处理器工作状态的一种描述。
- INT0: 外部中断0,通过P3.2端口引入,低电平或下降沿引起,默认优先级最高。
- INT1: 外部中断1,通过P3.3端口引入,低电平或下降沿引起,默认优先级第二。
- T0: 定时器/计数器0中断,由T0计数器计满回零引起,默认优先级第三。
- T1: 定时器/计数器1中断,由T1计数器计满回零引起,默认优先级第四。
- T2: 定时器/计数器2中断,由T2计数器计满回零引起,默认优先级第五。
扩展资料:
单片机中断源类型:
- 外部设备请求中断。外部设备如键盘、打印机和A/D转换器等,在完成操作后向CPU发出请求。
- 故障强迫中断。关键部位有故障检测装置,如运算溢出、设备故障等会引起中断处理。
- 实时时钟请求中断。用于定时检测和控制的外部时钟电路,会在达到时间时发出中断请求。
- 数据通道中断。即直接存储器存取(DMA)操作中断,主要用于与存储器交换数据的设备。
- 程序自愿中断。因特殊指令或硬件电路引起的中断,通常用于程序调试。
C51单片机中断程序中的interrupt1、2、3是如何决定的?
interrupt X
表示使用的第几个中断。中断的编号(1、2、3)是由中断向量表决定的,即中断入口地址的顺序,这是硬件所决定的软件不能更改。
例如:
- 外部中断0是
interrupt 0
- 定时器0是
interrupt 1
- 外部中断1是
interrupt 2
- 定时器2是
interrupt 3
- 串口是
interrupt 4
如何设置C51单片机C语言中的中断优先级?
在C51中设置中断优先级,需要对中断寄存器IP进行配置。具体值需要根据用户需求的优先级顺序确定,设置方法如下:
IP = 06H;
// 5个中断同时发生时的响应顺序为:定时器0 -> 外中断1 -> 外中断0 -> 定时器1 -> 串行中断
以下是IP寄存器中每位的含义:
- PX0: 外部中断0优先级位。
- PT0: 定时/计数器0优先级位。
- PX1: 外部中断1优先级位。
- PT1: 定时/计数器1优先级位。
- PS: 串行口优先级位。
- PT2: 定时/计数器2优先级位(适用于80C52的T2)。
- IP.6 和 IP.7: 无意义,均为0(在C51中PT2也设置为0)。
注:IP的默认值为00H,此时优先级顺序为:外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断。