1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 采用中断方式编写c语言程序 单片机中断应用的c语言编程

采用中断方式编写c语言程序 单片机中断应用的c语言编程

时间:2021-05-01 14:13:49

相关推荐

采用中断方式编写c语言程序 单片机中断应用的c语言编程

c51编译器支持在c源程序中直接开发中断程序,从而减轻了采用编写中断服务程序的繁琐程度。为了满足在c语言源程序中直接编写中断服务程序的需要,c51编译器对函数的定义进行了扩展,增加了一个扩展关键词interrupt。他是函数定义式的一个选项,加上这个选项即可以将一个函数定义成中断服务函数。定义中断服务函数的语法格式如下:

返回值类型函数名()interrupt m [using n]

{

函数体

}

关键词interrupt后面的m是中断号,m的取值为0~31的正整数,编译器从8m+3处产生中断向量,具体的中断号m和中断向量取决于80c51,80c51中断源编号见表。80c51可以在片内ram中使用4个不同的工作寄存器组,每个寄存器组中包含8个寄存器(r0~r7)。c51编译器扩展了一个关键字using,专门用来选择不同的工作寄存器组。using

表80c51单片机中断源编号

编号中断源入口地址编号中断源入口地址

0外部中断00003h3定时/计数器1001bh

1定时/计数器0000bh4串行口中断0023h

2外部中断10013h后面的n是一个0~3的常整数,分别选中4个不同的工作寄存器组。在定义一个函数时,using是一个选项,如果不用该选项,则由编译器自动选择一个寄存器组访问。需要注意的是,关键字using和interrupt的后面都不允许跟带运算符的表达式。

关键字using对函数目标代码的影响如下:

在函数的入口处将当前工作寄存器组保护到堆栈中,指定的工作寄存器内容不会改变;函数退出之前将被保护的工作寄存器组从堆栈中恢复。

使用关键字using

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。