甲机: ORG 1000H
START:MOV TMOD,#20H MOV TH1, #0F4H MOV TL1, #0F4H SETB TR1
MOV SCON,#0C0H
MOV PCON,#80H MOV P2,#20H MOV R0 ,#00H MOV R3,#00H MOV R2,#00H TXSUB:CLR TI MOV SBUF, R2 JNB TI, $ CLR TI
TTXD: MOVX A,@R0 MOV SBUF, A JNB TI, $ CLR TI ADD A.R3 MOV R3, A INC R0 DJNZ R2, TTXD TXSUM: MOV SBUF, R3
JNB TI, $ CLR TI CLR RI SETB REN JNB RI, $ CLR RI JNZ START SJMP $ END
乙机:
ORG 1000H
START:MOV TMOD,#20H MOV TH1, #0F4H MOV TL1, #0F4H SETB TR1
MOV SCON,#0D0H
MOV PCON,#80H MOV P2,#21H MOV R0 ,#00H
MOV R3,#00H MOV R2,#00H RXSUB:CLR RI JNB RI, $ CLR RI MOV A, SBUF MOV R2, A ADD A, R3
MOV R3, A
RRXD: JNB RI, $ CLR RI MOV A, SBUF MOV @R0, A ADD A, R3 INC R0 DJNZ R2, RRXD RXSUM: JNB RI, $ CLR RI MOV A, SBUF XRL A, R3 JNZ ERROR MOV SBUF, #00H SJMP $ ERROR: MOV SBUF, #0FFH LJMP RXSUB
18. 简述利用串行口进行多机通讯的原理。
答:当一片89S51(主机)与多片89S51(从机)通信时,所有从机的SM2位都置1。主机首先发送的一帧数据为地址,即某从机机号,其中第9位为1,所有的从机接收到数据后,将其中第9位装入RB8中。各从机根据收到的第9位数据(RB8中)的值来决定从机可否再接收主机的信息。若(RB8)=0,说明是数据帧,则使接收中断标志位RI=0,信息丢失;若(RB8)=1说明是地址帧,数据装入SBUF并置RI=1,中断所有从机,只有被寻址的目标从机清除SM2(SM2=0),以接收主机发来的一帧数据(点对点通信)。其他从机仍然保持SM2=1。
19. 串行通信的接口标准有那几种?
答:RS-232C,RS-422,RS-423和RS-485。

