我在调串口通信,是用51和PC通信,可误码太高了 连线图 51---ADM2483(MAX485)----232转485-----PC。 程序如下: ORG 0030H START: MOV SP,#60H ;设置堆栈 MOV SCON,#50H ;模式1,SM1=1,REN=1 MOV TMOD,#20H ;模式2,定时器1 MOV TH1,#0FDH ;波特率9600 MOV TL1,#0FDH MOV PCON,#00H SETB TR1 ;启动定时器1
A1: JB RI,UART JMP A1
UART: CLR P2.4 ;接收 CLR RI LCALL DELAY MOV A,SBUF MOV R0,A LCALL DELAY A3: JB RI,A2 JMP A3 A2: SETB P2.4 ;发送 CLR TI LCALL DELAY MOV A,R0 MOV SBUF,A LCALL DELAY A4: JB TI,UART JMP A4
DELAY: MOV R4,#20 D2: MOV R5,#20 DJNZ R5,$ DJNZ R4,D2 RET
END |