【正确答案】接收子程序编程如下:
RXDB:MOV TMOD,#20H ;置T1定时器工作方式2
MOV TL1,#0F3H ;置T1计数初值
MOV TH1,#0F3H ;置T1计数重装值
CLR ET1 ;禁止T1中断
SETB TR1 ;T1启动
MOV SCON,#40H ;置串行方式1,禁止接收
MOV PCON,#80H ;置SMOD=1
CLR ES ;禁止串行中断
MOV R0,#50H ;置接收数据区首地址
SETB REN ;启动接收
JNB RI,$ ;等待接收数据长度
CLR RI ;清接收中断标志,并重新启动串行接收
MOV R2,SBUF ;读接收数据长度
RDSB:JNB RI,$ ;等待一帧数据接收完毕
CLR RI ;清接收中断标志
MOV A,SBUF ;读接收数据
MOV @R0,A ;存接收数据
INC R0 ;指向下一数据存储单元
DJNZ R2,RDSB ;判数据接收完否?未完继续
RET ;
【答案解析】