0

我正在制作简单的消息传递程序,例如我有两台 8051 机器,其中一台是发送器,另一台是接收器。发送器发送 8 个字符,编码为:

     ...
     mov r7, #8
     mov r0, #30h
TRS: clr TI
     mov sbuf, @r0
     inc r0
     jnb TI, $
     djnz r7, TRS

我从键盘上得到这 8 个字符,它们肯定在 30 小时到 37 小时之间。得到这 8 个字符后,我发送数据。然而,我在接收器 LCD 中看到的是 8 字节的第一个字符。即如果我输入 1 2 3 4 5 6 7 8,接收者只能得到 1 并显示它。这是接收器的代码:

     ...
     mov r7, #8
REC: jnb RI, $
     mov a, sbuf
     acall SEND_DATA
     clr RI
     djnz r7, REC

接收者等待另外 7 个字符。当我从发送器接收器输入 64 个字符时,只需要其中的 8 个,它们是 mod8=1。我正在清除 RI 标志并等待 RI 的下一个上升沿,这应该是来自发送器的下一个字符。可能是什么原因?

问候

4

0 回答 0