51单片机中断函数可以有返回值吗

51单片机中断函数可以有返回值吗?unsignedcharreceiveCharacter(void)interrupt4{tempChar=SBUF;TI=0;retu... 51单片机中断函数可以有返回值吗?
unsigned char receiveCharacter( void ) interrupt 4
{

tempChar = SBUF;
TI = 0;

return( tempChar );
}
非常感谢 shark_8309和 谢应宸 两人的回答,谢谢。
展开
 我来答
天蝎神经侠侣
高粉答主

2015-07-19 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:768万
展开全部
中断函数不会返回
中断使用interrupt 关键字和终端编号0-4来实现:
返回值 函数名 interrupt n
n对应中断源的编号,中断编号告诉中断器中断程序的入口地址,它对应着IE寄存器中的使能位,即IE寄存器中的0位对应着外部中断0。
8051单片机的中断源以及终端编号如下:

中断编号 中断源 入口地址
0 外部中断0 0003H
1 定时器/计数器0 溢出 000BH
2 外部中断1 0013H
3 定时器/计数器1 溢出 001BH
4 串行口中断 0023H

在51系列单片机中,有的单片机多达32哥中断源,所以终端编号是0-31.
当正在执行一个特定的任务时,可能有更紧急的事情需要CPU处理,这就涉及到了中断优先级。高优先级中断可以中断正在处理的低优先级中断程序,因而最好给每种优先级程序分配不同的寄存器组。在C51中可使用using指定寄存器组,using后的变量为0-3的常整数,分别表示51单片机内的4哥寄存器组。中断函数的完整语法如下:
返回值 函数名([参数])[模式][重入]interrupt n[usingn]
unsigned int interruptcnt;
unsigned char second;
void timer0(void) interrupt 1 using 2
if(++interruptcnt==4000) // 计数到4000
second++; //另一个计数器
interruptcnt=0; //计数器清零
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机原理由运算器、控制器、存储器、输入输出设备构成,单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程;单片机的应用:节能控制;智能语音设备;报警控制;医疗设备。 单片机原理及应用 本书详细地介绍了MC... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
shark_8309
2010-07-30 · TA获得超过1024个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:287万
展开全部
这样恐怕编译不通过吧。

你想想,中断函数是硬件调用的,你想返回什么给硬件?

如果你想返回什么信息给主程序的话就只能使用全局变量了。暂时我都没想到其他好的方法。

通常像你这种情况我是使用队列表的,由中断函数把读到的数据写入队列,然后在主程序读数的时候就可以逐个字节读出了。当然,51就不要用链表做队列表了。通过指针求余就好了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谢应宸
2010-07-30 · TA获得超过2640个赞
知道大有可为答主
回答量:2731
采纳率:66%
帮助的人:2183万
展开全部
中断函数不会返回

中断函数是一个特殊的函数,没有参数,也没有返回值;但是程序中允不允许使用return呢?答案是允许的,不过只能用"return;",不能用"return(z);";用在一些需要快速返回的地方,对应的汇编会有多个ret语句,相对效率会高一些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友86904c4
2010-08-04 · TA获得超过297个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:86.7万
展开全部
把tempchar定义为一个全局变量不就行了,中断函数不能有返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
koalin
2010-07-30 · 超过10用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:31.6万
展开全部
不会吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式