[求助]串口通讯和仿真器问题小弟在做串口通讯时(用伟幅的E2000,仿真头P8X5X,选2051)仿真以下程序没有问题,但把它写到AT89C2051
里就有问题:
ORG 0000H
AJMP MAIN
ORG 0023H
AJMP SERIAL
ORG 0030H
MAIN:
MOV SP,#60H
CLR P3.3
MOV TMOD,#21H ; 设置串口9600
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV TH0,#00H
MOV TL0,#00H
MOV SCON,#50H
MOV PCON,#00H
MOV 30H,#10
MOV 31H,#10
MOV R3,#0FFH
MOV R0,#00H
MOV R2,#00H
SETB EA
SETB ES
CLR ET1
CLR ET0
CLR EX0
CLR EX1
SETB TR1
ALARM: ;在此还有一些别的代码
MOV R3,#00H
MOV SBUF,R1
AJMP ALARM
;-------------------------
;串口中断程序
SERIAL: CLR EA
PUSH ACC
JB TI,TIOVER
JNB RI,OVER
CJNE R3,#00H,NOALARM
CLR RI
MOV A,SBUF
MOV 31H,A
MOV SBUF,31H ;用龚建伟的串口调试助手不能收到
JNB TI,$
CLR TI
MOV SBUF,#99H
JNB TI,$
CLR TI
AJMP OVER
NOALARM:CLR RI
MOV A,SBUF
MOV 30H,A
MOV 31H,A
MOV SBUF,#55H ;用龚建伟的串口调试助手不能收到
JNB TI,$
CLR TI
AJMP OVER
TIOVER: CLR TI ;用龚建伟的串口调试助手能收到88
MOV SBUF,#88H
JNB TI,$
CLR TI
OVER: POP ACC
SETB EA
RETI
END
请各位大侠指点一二,谢谢!