STC/Ai8051U 中断列表

中断表格-查询📖

中断号 中断向量 中断类型
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号保留中断向量,解决中断号不匹配的报错,以下是完整流程和对应的文件内容:

一、操作流程

  1. 修改中断服务函数的中断号:将原中断号改为"13"(13号是保留中断,可借用);
  2. 添加汇编文件重定向中断向量:新建汇编文件,将目标中断的入口地址(如PWM5中断的0103H)跳转到13号中断的入口地址(006BH);
  3. 编译验证: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指令返回主程序。
相关推荐
Industio_触觉智能12 小时前
RK3506 Buildroot系统目录地图-上|7个关键符号链接与构建产物全解析
嵌入式硬件·sdk·智能硬件·固件·瑞芯微·系统编译·rk3506
lzj_pxxw14 小时前
STM32移植FreeRTOS(Cmake+CubeMX)
vscode·stm32·嵌入式硬件
Zwawa15 小时前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
물の韜16 小时前
ZYNQ/FMQL系列Linux之I2C开发实战
linux·arm开发·嵌入式硬件·设备树·iic·zynq
无敌贵点大王19 小时前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
碧海银沙音频科技研究院19 小时前
粉色笔记本电脑每次要等把电池电耗尽才能开机问题解决方法
嵌入式硬件
wuyk5551 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
shijuejianceliu2 天前
传统规则视觉与嵌入式AI智能相机的技术差异
人工智能·嵌入式硬件·视觉检测·相机
不脱发的程序猿2 天前
GD32串口数据收进内存之后DMA如何处理?
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
FPGA小迷弟2 天前
FPGA 与千兆以太网校验和:从原理到 Verilog 实现
嵌入式硬件·fpga开发·无人机·ai编程·fpga