51单片机在什么情况下会产生串口中断

子函数:void serial() interrupt 4
{ P1=SBUF;
RI=0;
}
别的中断都是在某个I/O口为低电平时产生中断,串口中断是在什么情况下产生呢?

所说的串口中断“其他中断是在I/O口低的时候产生的”是指外部中断,它是在单片机的外部I/O口电平改变的时候产生的。

而串口中断是一种内部中断,所谓内部中断,是单片机执行内部程序,由内部定时器或其他中断源触发的,通常要生成串行中断或其他中断,首先必须有中断和总中断。

例如:串行中断EA=1;//ES总中断量=1;//串行中断},那么只有在中断源事件发生时,你指的是串行中断,是当串口发送或接收完成TI和RI中断造成的定位,从微观的角度来看,它引发了内部的逻辑电路的逻辑功能。

扩展资料:

单片机定时器的工作原理及使用方法:

TMOD:控制定时器的工作方式。8位,高4位控制T1,低4位控制T0。因为计时器有四种工作方式;TMOD=0x00(工作模式0),TMOD=0x01(工作模式0),TMOD=0x02(工作模式2),TMOD=0x03(工作模式3)。

作用:

例如:在工业控制、汽车工业等领域,单片机的应用已经非常广泛,如智能仪表、实时工业控制、通信设备、导航系统、家用电器等。

通信方面,51单片机在GPS、红外、射频等方面有着非常广泛的应用。导航航空,虽然ARM已经逐渐占据主导地位,但是各个模块底层的51单片机仍在使用。

在工业控制领域,许多设备的底层控制是通过51单片机来实现的。51单片机由于仪器成本低,所以在行业中很受欢迎。汽车工业中,一辆汽车控制单片机众多,51单片机也占有一席之地

其他方面,其实作为最早的大量单片机之一,51单片机在各行各业并没有退出历史舞台,仍在发挥着作用。

51单片机只有一个累加器ACC,很多过程都需要通过ACC来完成,所以需要寄存器来保存中间结果。只能间接访问外部数据存储。

使用@dptr访问所有64k(包括您的扩展打印机、监视器、键盘等),或者使用P2和R0或R1访问某个区域。如果使用了中断,并且在中断中使用了更多的寄存器,可以交换整个寄存器组,引导隐式为0组,可以改为1、2、3组。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-23
首先,你要用软件允许中断,即
C语言中
EA = 1; //允许总中断
ES = 1; //允许串口中断
汇编中可用
SETB EA ;允许总中断
SETB ES ;允许串口中断

当单片机接收到一帧数据后,RI会置1,向CPU申请中断,若之前有中断允许,则产生了中断,进入中断服务程序。当然,单片机发送完一帧数据,TI也会置1,同样会产生中断!

一般我们在发送数据时要关中断,因为一般你不用在发送时不用处理数据;接收数据时要开中断,以便你在中断服务程序中将接收到的数据进行存储并处理。

补充:其实,不管你有没有允许中断,上位机(此时即给单片机发送信息的机器)只要给单片机发送数据,单片机就会自动接收数据,并把它放在数据缓冲器SBUF中,如果你之前有允许串行口中断,RI就会置1,向单片机CPU申请中断,并进入中断服务程序,即你问题中的serial()函数,做完这个函数后就会自动返回断点。如果你没有允许中断,便不会产生串行中断。

其实,你的问题有个错误:别的中断都是某个I/O口电平变化产生。这只是外部中断产生条件,不过,你之前也需要用软件允许外部中断。另外,常见的51系列单片机有5个中断源三种中断5:1、外部中断0和1;2、定时器/计数器溢出中断0和1;3、串行口中断。另外,STC51系列还有定时器/计数器T2中断,A/D转换中断,PWM中断,串行中断2等等。你还有什么不懂的可以自己多翻一翻书,学到后面去了你就明白了。

你的问题中那个serial()函数中 P1=SBUF; 是把接收的数据送到并行P1口,然后那条 RI=0;是不可少的,这是用软件清零RI,准备再次接受一帧数据产生中断,如果你没有这条语句,就会进入死循环,出不来了。

有什么问题还可以Q我(1445090023),希望能给我评个最佳答案。本回答被提问者采纳
第2个回答  2010-04-12
长话短说,废话少说
我简明扼要地跟你说:
你说指的“别的中断都是在某个I/O口为低电平时产生中断”是外部中断,那些是单片机外部I/O口发生电平变化的时候产生的中断;
而串口中断是属于内部中断,所谓的内部中断,就是单片机执行内部程序过程中,被内部的定时器或其他中断源触发引起的。理解否?
总的来说,要产生串口中断或其他中断也好,首先你必须开中断以及总中断
{比如你所指的串口中断EA = 1; //开总中断ES = 1; //开串口中断},其次只有在中断源事件发生之后才会产生中断,你所指的串口中断,就是当串口发送完毕或者接受完毕的时候置位了中断标志TI和RI所引起的,微观角度来说,它触发了内部逻辑电路的逻辑功能
第3个回答  2010-04-11
串口中断是在串口中断寄存器RI为1的时候发生中断,也就是接受完串口的数据的时候!
第4个回答  2010-04-11
当你的外设给单片机发送一个字节的数据后,单片机就知道产生中断,并运行中断程序。

51单片机在什么情况下会产生串口中断
所说的串口中断“其他中断是在I/O口低的时候产生的”是指外部中断,它是在单片机的外部I/O口电平改变的时候产生的。而串口中断是一种内部中断,所谓内部中断,是单片机执行内部程序,由内部定时器或其他中断源触发的,通常要生成串行中断或其他中断,首先必须有中断和总中断。例如:串行中断EA=1;/...

51单片机串口发送数据时会产生中断吗
如果开了串口中断,接收,发送都会产生中断。建议,都用中断方式。串口接收到数据后,如果没有读出来,又接收到数据了,前面的一个数据就丢掉了。特别是当你接收到字符串的时候,你关中断,或者用查询方式,就容易掉数据。

单片机中的串口中断什么时候被触发
比如51单片机:根据你设置的串口工作方式,当接收或者发送够相应位的时候,,自动把TI和RI置1,就会进入串行中断,并且TI和RI需要软件清零。当然,需要你总中断和串口中断打开的情况下。

单片机在什么情况下可以引起串口中断?
开串口中断了,有数据发送或允许接收而有数据接收时,就会引起串口中断

【51单片机系列】C51中的中断系统
C51中断系统是单片机中的关键组件,它如同生活中的应急机制,能快速响应突发状况,提升CPU的处理效率。理解它,就如同掌握了一把处理突发事件的钥匙。在89C51系列中,中断系统由中断源、中断响应和中断返回三大组件组成,共设有8个中断源,包括外部中断、定时器和串口,每种都有独特的功能和优先级划分,最...

单片机中,比如51单片机有五个中断源,两个外部中断源,两个定时器中断源...
MCS-51单片机中断系统的结构:5个中断源的符号、名称及产生的条件如下。INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。T0:定时器/计数器0中断,由T0计满回零引起。T1:定时器/计数器l中断,由T1计满回零引起。TI/RI...

51单片机串口通信问题
1、是在一个字节接收成功或一个字节发送成功以后进入中断程序(不过,一般在发送时是将中断关闭的,也就不进入中断了)。此时,定时器的作用就是为了设定串口速率,因为单片机的速度和串口的速度不是一个数量级的,所以一定要有个变速箱。2、数据的接收是由硬件控制的,其实,数据的接收发送都是有一个...

51单片机什么时候进入中断程序
第一、什么可经引起中断,生活中很多事件可以引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了….等等诸如此类的事件,我们把可以引起中断的称之为中断源,单片机中也有一些可以引起中断的事件,8031中一共有5个:两个外部中断,两个计数\/定时器中断,一个串行口中断。第二、...

51单片机串口接收中断怎么触发?
如果你都已经配置好了,那么下降沿+有效起始位就能触发串口接收中断。

大家说说单片机串口中断是怎么回事?
单片机串口中断,例如用串口接收GPS模块的数据(这一般都是串口相连的),单片机可能需要一直的工作,不管是干什么,但是你最需要的是接收GPS数据并进行处理,于是当接收到GPS信号时,就会产生串口中断,然后进入中断接收GPS数据,存储在串口寄存器当中,当接收完之后关掉中断,单片机继续其他工作,当又有GPS数据...

相似回答