51单片机中断函数的声明

来源:互联网 发布:环太平洋 知乎 机型 编辑:程序博客网 时间:2024/06/04 20:12

中断使用interrupt 关键字和终端编号0-4来实现:

返回值 函数名  interrupt n

n对应中断源的编号,中断编号告诉中断器中断程序的入口地址,它对应着IE寄存器中的使能位,即IE寄存器中的0位对应着外部中断0。

8051单片机的中断源以及终端编号如下:

 

中断编号中断源入口地址0外部中断00003H1定时器/计数器0 溢出000BH2外部中断10013H3定时器/计数器1 溢出001BH4串行口中断0023H

 

在51系列单片机中,有的单片机多达32个中断源,所以终端编号是0-31。要是某个中断源的申请得到相应,必须保证EA=1和相应的允许位为1。

当正在执行一个特定的任务时,可能有更紧急的事情需要CPU处理,这就涉及到了中断优先级。高优先级中断可以中断正在处理的低优先级中断程序,因而最好给每种优先级程序分配不同的寄存器组。在C51中可使用using指定寄存器组,using后的变量为0-3的常整数,分别表示51单片机内的4哥寄存器组。中断函数的完整语法如下:

返回值  函数名([参数])[模式][重入]interrupt n[usingn]


一般情况下,只要这样定义一个中断函数就行了:
void FuncName() interrupt lvl
其中lvl就是中断源的编号。


出处:http://blog.sina.com.cn/s/blog_5fb757b40100cs75.html


0 0