中断表格-查询📖

| 中断号 | 中断向量 | 中断类型 |
|---|---|---|
| 0 | 0003 H | INT0 |
| 1 | 000B H | 定时器0 |
| 2 | 0013 H | INT1 |
| 3 | 001B H | 定时器1 |
| 4 | 0023 H | 串口1 |
| 5 | 002B H | ADC |
| 6 | 0033 H | LVD |
| 8 | 0043 H | 串口2 |
| 9 | 004B H | SPI |
| 10 | 0053 H | INT2 |
| 11 | 005B H | INT3 |
| 12 | 0063 H | 定时器2 |
| 13 | 006B H | NULL |
| 14 | 0073 H | 系统内部中断 |
| 15 | 007B H | 系统内部中断 |
| 16 | 0083 H | INT4 |
| 17 | 008B H | 串口3 |
| 18 | 0093 H | 串口4 |
| 19 | 009B H | 定时器3 |
| 20 | 00A3 H | 定时器4 |
| 21 | 00AB H | 比较器 |
| 24 | 00C3 H | I2C |
| 25 | 00CB H | USB |
| 26 | 00D3 H | PWMA |
| 27 | 00DB H | PWMB |
| 28 | 00E3 H | CAN1 |
| 29 | 00EB H | CAN2 |
| 30 | 00F3 H | LIN |
| 36 | 0123 H | RTC |
| 37 | 012B H | P0口中断 |
| 38 | 0133 H | P1口中断 |
| 39 | 013B H | P2口中断 |
| 40 | 0143 H | P3口中断 |
| 41 | 014B H | P4口中断 |
| 42 | 0153 H | P5口中断 |
| 43 | 015B H | P6口中断 |
| 44 | 0163 H | P7口中断 |
| 45 | 016B H | P8口中断 |
| 46 | 0173 H | P9口中断 |
| 47 | 017BH | M2M DMA中断 |
| 48 | 0183H | ADC DMA中断 |
| 49 | 018BH | SPI DMA中断 |
| 50 | 0193H | URIIT DMA中断 |
| 51 | 019BH | URIR DMA中断 |
| 52 | 01A3H | UR2T DMA中断 |
| 53 | 01ABH | UR2R DMA中断 |
| 54 | 01B3H | UR3T DMA中断 |
| 55 | 01BBH | UR3R DMA中断 |
| 56 | 01C3H | UR4T DMA中断 |
| 57 | 01CBH | UR4R DMA中断 |
| 58 | 01D3H | TFT彩屏DMA中断 |
| 59 | 01DBH | TFT彩屏中断 |
| 60 | 01E3H | I2CT DMA中断 |
| 61 | 01EBH | I2CR DMA中断 |
| 62 | 01F3H | I2S中断 |
| 63 | 01FBH | I2ST DMA中断 |
| 64 | 0203H | I2SR DMA中断 |
如果中断超出31以后需要如下操作(Keil4/5)!
这个方法的核心是借用13号保留中断向量,解决中断号不匹配的报错,以下是完整流程和对应的文件内容:
一、操作流程
- 修改中断服务函数的中断号:将原中断号改为"13"(13号是保留中断,可借用);
- 添加汇编文件重定向中断向量:新建汇编文件,将目标中断的入口地址(如PWM5中断的0103H)跳转到13号中断的入口地址(006BH);
- 编译验证:Keil会自动将13号中断映射到实际中断服务函数,完成中断响应。
二、对应文件内容
1. C文件(如Demo.c)
c
#include <Ai8051U.h>
#include <intrins.h>
#define FOSC 42000000UL
#define BAUD 65536 - FOSC/115200/4 // 波特率计算
// 将中断服务函数的中断号改为13
void PWM5_ISR(void) __interrupt 13
{
// 此处写PWM5中断的处理逻辑
}
void main(void)
{
P_SW2 = 0xe80;
WTST = 0x00;
CCOCON = 0x00;
// 其他初始化代码...
while(1);
}
2. 汇编文件(如Isr.asm)
asm
CSBG AT 0103H ; 定位到PWM5中断的入口地址0103H
LJMP 006BH ; 跳转到13号中断的入口地址006BH
END
三、原理说明
- 硬件触发PWM5中断时,会自动跳转到
0103H地址; - 汇编文件中
LJMP 006BH会将执行流跳转到13号中断的入口地址006BH; - Keil编译后,
006BH处会自动生成LJMP PWM5_ISR,最终跳转到实际的中断服务函数; - 中断执行完成后,通过
RETI指令返回主程序。