C51编程:at89c52的串口通信问题[求助]我写了一个简单的串口测试程序:89c52收到两个字节,然后原样返回给pc机。但89c52返回的字
节总不对,如pc机发送“2440”(两个十六机制字节),89c52返回的却是“24FF”。代码如
下,请各位大侠指点问题所在,谢谢!
org 0000h
ljmp test_main
org 0023h
ljmp test_serial
org 0050h
test_main:
mov sp,#80h
MOV PCON,#80H ;SMOD=1
MOV SCON,#0D0H ;SerialPortWorking three,SM2=0
MOV TMOD,#22H ;TimerWorking two
MOV TL1, #0FAH ;BaudRate=9600bps
MOV TH1, #0FAH
SETB TR1
SETB ES
setb ea
wait: sjmp wait
test_serial:
clr ea
mov r0,#2
mov r1,#65h
loop1: clr ri
mov a,sbuf
mov @r1,a
inc r1
jnb ri,$
djnz r0,loop1
clr ri
mov r0,#2
mov r1,#65h
loop2: mov a,@r1
mov sbuf,a
jnb ti,$
clr ti
inc r1
djnz r0,loop2
nop
nop
setb ea
reti
end