51单片机串口通信是全双工的,但是为什么又说它的发送和接受不可以同时进行呢

51单片机又两个串行口:一个是发送寄存器,一个是接收寄存器,以便mcs—51能以全双工方式进行通信。串行发送时,从片内总线向发送sbuf写入数据;串行接受时,从接收sbuf向片内总线读出数据。它们都是可寻址的寄存器,但因为发送和接收不能同时进行,所以给这两个寄存器赋予同一地址。

51单片机串口通信是全双工的,发送和接受可以同时进行。不可以同时进行的是半双工。

全双工方式分别由两根不同的传输线传送数据时,通信双方都能在同一时刻进行发送和接收操作,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在发送和接受两个方向上传送。

半双工使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据。采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关转接到通信线上,进行方向的切换,因此,会产生时间延迟。收/发开关实际上是由软件控制的电子开关。

扩展资料:

全双工方式在发送设备的发送方和接收设备的接收方之间采取点到点的连接,这意味着在全双工的传送方式下,可以得到更高的数据传输速度。

全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。这种方式要求通讯双方均有发送器和接收器,同时,需要2根数据线传送数据信号。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-10
他的意思是说因为cpu不可以同时发出发送和接受指令,且发送寄存器只能写入而接受寄存器只能读取,所以给这两个寄存器赋予同一地址。
其实发送和接收可以同时进行。本回答被提问者采纳
第2个回答  2018-11-22
串行口内部有两个独立的数据缓冲器sbuf,一个用于向外部发送数据,一个用于接受外部数据。
发送缓冲器只能由CPU写入要发送的数据,CPU不能读出数据。
接受缓冲器只能由CPU读出数据,CPU不能写入数据。
因此,两个缓冲器可以共用一个地址,由读、写指令识别其是发送缓冲器还是接受缓冲器。
第3个回答  推荐于2017-10-06
串口有不同的工作方式,方式0不能全双工,其它的都可以全双工工作。发送SBUF和接收SBUF地址是一样的,但是物理空间是分开的
第4个回答  2020-06-10
51的串口通信是全双工没错,但是51的CPU本身没办法同时收发数据,简单说就是它用不上串口的全双工功能。
相似回答