用51单片机做的很简单的一个双机串行通信程序(Proteus 7上的结果截图,附程序),结果为何会出现移了2位

来源:百度知道 编辑:UC知道 时间:2024/05/20 14:32:48
主机发送了一个0f0H(11110000)的数据到次机,次机收到了数据后把数据发送到P1组,P1应该也是0f0h,可为何是这个结果(00111100)?

方式0,不适合双方都是单片机的情况。

方式0输出,由TXD输出时序脉冲;
方式0输入,也要在TXD输出时序脉冲。

方式0,适合于外接一个“被动”的串行设备。

建议使用方式1,连线改成交叉形式即可。
还要设置T1,控制波特率。

MARK

方式0很少用过,坐等高手!

方式1的话,连线就不对了吧??

方式0输出,由TXD输出时序脉冲;
方式0输入,也要在TXD输出时序脉冲。

明白,受教了!

阁下主机SCON设置的不对,应该是方式1.
主机设置SCON 40H;从机SCON设置50H,然后晶振都是11.0592mHZ看看。

线接错了!哪有这么接线的!让主从机同时在同一数据线上发送或接收,可能吗!?要RXD接TXD,TXD接RXD,就是两条线相互交叉对调下就好了。