ORG 0000H
MAIN: MOV TMOD,#20H MOV TH1,#0F3H;250=0xfa MOV TL1,#0F3H MOV P1,#00H SETB TR1 MOV SCON,#50HWAIT: MOV A,SBUF MOV P1,A MOV DPTR,#TAB MOVC A,@A+DPTR JNB RI,$ CLR RI RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
WAIT: MOV A,SBUF
subb a,#30h
MOV P1,A
减30H不行,因为从P1口的发光二级管可以看到A得到的是10010001B(#A0H)
还需调整顺序,改动后完整程序
ORG 0000H
MAIN:
MOV TMOD,#20H
MOV TH1,#0FdH; 晶振用11.0592M,波特率9600
MOV TL1,#0FdH
MOV P1,#00H
SETB TR1
MOV SCON,#50H
WAIT:jnb RI,$
CLR RI
MOV A,SBUF
subb a,#30h; 如发16进制01该句不要
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P1,A
sjmp wait
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
仿真成功了,一个是波特率改成9600,另外subb a,#30h就得了,有点想不通的是我设成2400(#0F3H)感觉也没错呀
谢谢了
设成2400 (#0xf4)