C51中断函数在什么情况下被调用?

2025-05-19 04:07:35
推荐回答(1个)
回答1:

一、中断函数的调用\x0d\x0a中断函数是硬件或者操作系统自动调用的,也就是说只要满足触发条件,就会自动调用中断函数(此时主函数是停止的)。当中断函数执行完毕,又返回主函数继续执行主函数。然后这样不断的循环,反正只要是触发中断的条件一满足。就会自动进入中断(前提是你的中断的配置是正确的)\x0d\x0a二、中断函数的定义 \x0d\x0a1、中断函数定义的格式为: \x0d\x0a 函数类型 函数名 interrupt n using n \x0d\x0a\x0d\x0a其中: Interrupt后面的n是中断号。 \x0d\x0a关键字using后面的n是所选择的寄存器组,取值范围是0-3. \x0d\x0a定义中断函数时,using是一个选项,可以省略不用。如果不用则由编译器选择一个寄存器组作为绝对寄存器组。 \x0d\x0a2、8051的中断过程通过使用interrupt关键字和中断号来实现,中断号告诉编译器中断程序的入口地址。中断号对应着IE寄存器中的使能位,换句话说,IE寄存器中的0位对应着外部中断0,相应的外部中断0的中断号是0. IE寄存器中的使能位与外部中断对应关系: \x0d\x0a 中断号 中断源 \x0d\x0a\x0d\x0a 0 外部中断0 \x0d\x0a\x0d\x0a 1 定时器0 \x0d\x0a\x0d\x0a 2 外部中断1 \x0d\x0a\x0d\x0a 3 定时器1中断\x0d\x0a 4 串行口中断 \x0d\x0a\x0d\x0a 5 定时器2中断