c语言程序 中断函数示例,单片机中断应用的C语言编程 -解决方案-华强电子网

本文介绍了如何在C51编译器中使用`interrupt`和`using`关键字来编写中断服务函数。中断号m对应中断向量地址,using n用于选择工作寄存器组。中断函数不应有参数和返回值,不能被直接调用,且调用其他函数时需确保使用相同寄存器组。最后提供了一个中断编程实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

后面的n是一个0~3的常整数,分别选中4个不同的工作寄存器组。在定义一个函数时,using是一个选项ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值