中断使用interrupt 关键字和终端编号0-4来实现: 返回值 函数名 n对应中断源的编号,中断编号告诉中断器中断程序的入口地址,它对应着IE寄存器中的使能位,即IE寄存器中的0位对应着外部中断0。 8051单片机的中断源以及终端编号如下:
在51系列单片机中,有的单片机多达32哥中断源,所以终端编号是0-31. 当正在执行一个特定的任务时,可能有更紧急的事情需要CPU处理,这就涉及到了中断优先级。高优先级中断可以中断正在处理的低优先级中断程序,因而最好给每种优先级程序分配不同的寄存器组。在C51中可使用using指定寄存器组,using后的变量为0-3的常整数,分别表示51单片机内的4哥寄存器组。中断函数的完整语法如下: unsigned int interruptcnt; unsigned char second; void timer0(void) interrupt 1 using 2 if(++interruptcnt==4000) second++; interruptcnt=0; |
|