2016-12-17 18:19:25 | 人围观 | 评论:
C51编译器支持在C源程序中直接开发中断程序,从而减轻了采用汇编语言编写中断服务程序的繁琐程度。为了满足在C语言源程序中直接编写中断服务程序的需要,C51编译器对函数的定义进行了扩展,增加了一个扩展关键词interrupt。他是函数定义式的一个选项,加上这个选项即可以将一个函数定义成中断服务函数。定义中断服务函数的语法格式如下:
返回值类型 函数名( )interrupt m [using n]<?XML:NAMESPACE PREFIX = O />
{
函数体
}
关键词interrupt后面的m是中断号,m的取值为0~31的正整数,编译器从8m+3处产生中断向量,具体的中断号m和中断向量取决于80C51,80C51中断源编号见表。80C51单片机可以在片内RAM中使用4个不同的工作寄存器组,每个寄存器组中包含8个寄存器(R0~R7)。C51编译器扩展了一个关键字using,专门用来选择不同的工作寄存器组。using
表 80C51单片机中断源编号
编号 | 中断源 | 入口地址 | 编号 | 中断源 | 入口地址 |
0 | 外部中断0 | 0003H | 3 | 定时/计数器1 | 001BH |
1 | 定时/计数器0 | 000BH | 4 | 串行口中断 | 0023H |
2 | 外部中断1 | 0013H | | | |