我想知道,51单片机,如果一个定时器,我写了两个中断系统,定时器怎么会知道我想执行哪个中断系统,又如果我开了两个定时器,写了两个中断,怎么选择他们需要执行哪个中断。
有中断向量表,在中断向量表里面配置你要用的那个处理函数
?两个中断系统什么意思?如果是两个定时器,硬件上的区分,有各自的中断函数,如果是一个中断函数有两个中断处理方法,就是软件上,你自己做好标志位区分
//定时器 0 中断程序,中断号 1
void timer0() interrupt 1
{
}
//timer0 是函数名,以好懂好记为主可以随意起名字。
//interrupt 1 这个 1 是中断号,在51中这个号是固定的,比如下表中断中号的定义
// 中断名称 中断号
#define INT0_VECT 0 //外部中断0
#define TMR0_VECT 1 //定时器0
#define INT1_VECT 2 //外部中断1
#define TMR1_VECT 3 //定时器1
#define COM0_VECT 4 //串行中断
#define TMR2_VECT 5 //定时器2
//其他中断函数举例
//外部中断0 中断程序,中断号 1
void int0() interrupt 0
{
}
//串口0 中断程序,中断号 4
void com0() interrupt 4
{
}