51单片机串口接收中断连续接收字符串,中断一直占有CPU时间直到字符串接收完毕?

如题所述

1楼的说法明显不对,串口接收时有标志位RI,当串口接收到一个字符(8位)时,RI会自动被置1,此时CPU会从主程序转去执行串行中断,普通单串口51单片机一般为 interrupt 4 子程序,当执行完时会自动回到主程序继续执行,因此自 interrupt 4子程序结尾要把RI清零,以接受下一个中断,否则无法再接收下一个数据
interrupt 4主程序中一般处理方式是将接收寄存器SBUF中的数据转存到事先定义的缓存中,如果是接受字符串时请注意缓存需移位,例程如下:
void Serial_interrupt() interrupt 4
{
uchar temp;
rec_data[i++]=SBUF; // rec_data为事先定义的接收缓存,可以持续接收,直到你需要串口数据时来取为止
RI=0;//接收中断信号清零,表示将继续接收
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-11-28
理解的没错,说法有点不对,是中断子程序一直运行,直到字符串接收完毕,这时会有一个状态标志位的变化。
第2个回答  2012-11-19
不是的 ,中断后去执行中断子程序了

51单片机串口接收中断连续接收字符串,中断一直占有CPU时间直到字符串...
1楼的说法明显不对,串口接收时有标志位RI,当串口接收到一个字符(8位)时,RI会自动被置1,此时CPU会从主程序转去执行串行中断,普通单串口51单片机一般为 interrupt 4 子程序,当执行完时会自动回到主程序继续执行,因此自 interrupt 4子程序结尾要把RI清零,以接受下一个中断,否则无法再接收下一...

51单片机,如果中断函数比较长,执行到一半又触发了这个中断,程序会停 ...
另外,51的串口中断比较特别,因为需要软件清除串口中断标志,所以只要在未清串口中断标志前,是不会发生上述这样的中断嵌套的。

51单片机串口接收多个字符(假如是4字节),是分4次中断传输的,还是一次中 ...
对于51而言,每帧产生一次中断。接收4个字节是分4次中断接收完成的。51的UART模块从串行移位寄存器接收完成后是直接放入接收缓冲的,而且接收缓冲只有一个单元。

51单片机中中断服务程序占用时间不?
要考虑程序段是否能在中断定时时间内完成;若能完成,那么使用非自动赋值时也存在时间差异,两个高低8位的赋值语句也将至少浪费两个机器(还需要放在中断的最前面),所以要求时间较为精确时,一定要使用自动装载方式,若是使用非中断方式,C语言程序是无法保证的,要使用汇编,一个一个指令进行计算。而所...

51单片机关于中断优先级和中断优先权是如何规定的?
而串口通信的中断则会在CPU空闲时得到处理。综上所述,51单片机的中断优先级和中断优先权是通过结合中断优先级寄存器和中断使能触发器的设置来共同实现的。这种机制为嵌入式系统设计师提供了强大的工具,使他们能够根据实际情况灵活配置中断的响应顺序,从而确保系统的高效、稳定运行。

51单片机在什么情况下会产生串口中断
通常要生成串行中断或其他中断,首先必须有中断和总中断。例如:串行中断EA=1;//ES总中断量=1;//串行中断},那么只有在中断源事件发生时,你指的是串行中断,是当串口发送或接收完成TI和RI中断造成的定位,从微观的角度来看,它引发了内部的逻辑电路的逻辑功能。

51单片机中断优先级问题请教!~
51单片机的默认(此时的IP寄存器不做设置)中断优先级为:外部中断0 > 定时\/计数器0 > 外部中断1 > 定时\/计数器1 > 串行中断;但这种优先级只是逻辑上的优先级,当同时有几种中断到达时,高优先级中断会先得到服务。这种优先级实际上是中断同时到达的情况下,谁先得到服务的优先级,而不是可提供...

51单片机第一次进入中断的时间特别长
则该中断函数就会被重新从头开始执行(中断嵌套)。这是因为除串口中断以外的其他中断,在 CPU 响应该中断,程序转入该中断函数前就已经将该中断的中断标志清零了。另外,51的串口中断比较特别,因为需要软件清除串口中断标志,所以只要在未清串口中断标志前,是不会发生上述这样的中断嵌套的。

高分:51单片机汇编程序,数码管跳动问题
应该是串口收发导致单片机忙不过来,显示就会闪烁,因为你的延时程序是空操作,也占用CPU,建议你用定时中断做显示程序,中断时间定在5ms就可以了,这个定时器可以通过计数干很多其他事,比如500ms干一次。这样就不用CPU做空操作干等了。给你贴一个我写的显示程序(在定时中断中调用,这个程序显示两组数据...

51单片机串口中断怎么分
由中断号决定,一般计数器0是interrupt 0,定时器0是interrupt 1,接下来是计数器1,再是定时器1,再是串口,有些单片机还会有ADC,串口2,PCI等中断,具体看单片机的资料。Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表...

相似回答