c语言中中断服务子程序与其他子程序的区别

在单片机c51中如果一个中断服务子程序并在mai.c(主函数在其中)文件中而在另一个c文件中,那么这个中断服务子程序需要在头文件中进行声明吗?以上的表述可能不明确,先另行... 在单片机c51中如果一个中断服务子程序并在mai.c(主函数在其中)文件中而在另一个c文件中,那么这个中断服务子程序需要在头文件中进行声明吗?
以上的表述可能不明确,先另行表述:
我想问的问题是中断服务子程序与其他子程序的区别。主要是:当中断服务子程序与主函数不在同一个文件中时,中断服务子程序是否需要在主函数所在的文件中进行声明。
展开
 我来答
大别山的蜗牛
高粉答主

推荐于2018-03-02 · 一只互联网搬运的蜗牛
大别山的蜗牛
采纳数:6928 获赞数:12024

向TA提问 私信TA
展开全部
中断是单片机的一个重要功能,中断子程序专为执行中断功能,它是在发生中断后,自动执行的,不需要主程序调用;普通子函数要主程序调用才能执行。

汇编里的区别:
普通子函数用RET返回;中断子程序用RETI返回,RETI返回时要清除中断标志的;
普通子函数调用时直接进入函数入口地址,中断函数在中断发生时先进中断入口
03H、08H、13H、18H、23H后随即写一个跳转指令,再跳转到相应语句。

C语言区别:
普通子函数用的是C语言里的主函数调用子函数的方法,子函数可以有参数,有返回值;中断函数没有参数,没有返回值;
中断函数的写法也不一样,以80c51为例:
void INT0() interrupt 0 using 1
{

}

interrupt 0不是是外部中断0引发的中断,必须写; using 1
表示在中断函数里用第一组寄存器R0-R7.这个可以省略。
vbtraz
推荐于2017-10-13 · TA获得超过5532个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4450万
展开全部
“并在mai.c(主函数在其中)文件中而在另一个c文件中 ” 完全无法理解你这句话啥意思

最好是声明。 这种语法要求跟你怎么用这个函数完全没关系的, 无论是什么函数只要你用到了最好就是先声明
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csatong
2009-07-24 · 超过30用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:0
展开全部
中断服务子程序只需添加关键字 interrupt 0/1/2/3/4/5,且不能有返回参数及输入参数,其他使用方法同普通子程序一样.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pingxuejiu
2009-07-19
知道答主
回答量:20
采纳率:0%
帮助的人:9.5万
展开全部
要, #include" "这相当于文件包含 只需头文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式