ORG 0000H
LJMP START
ORG 0030H
START:MOV TMOD ,#20H; 定时器方式2
MOV TH1,#FAH; 置初值
MOV TL1,#FAH; 置初值
MOV PCON ,#00H; 波特率不增倍
MOV SCON,#50H; 串行方式1,REN=1允许接收
SETB TR1; 启动定时
RECEIVE:JNB RI,$; 没有收到原地等待
CLR RI; 收完后置0
MOV A,SBUF; 将接收缓冲区中的数放A
CLR TR1; 关定时
CJNE A,#00,NEXT01; 收到的数与00比较,相同转NEXT00,不同转NEXT01与其它数比较
NEXT00:CLR P0.0; 上到00后执行动作
NEXT01:CJNE A,#01,NEXT02; 与01比
CLR P0.1
NEXT02:CJNE A,#02,NEXT03; 与02比
.....
.....
.....
子程序后要不要RET?
应该是可以的,你仿真试一下