双机通信: ORG 0000H AJMP MAIN ORG 0023H AJMP INTRT
ORG 0030H MAIN:MOV TMOD,#20H ;设置定时器1的工作方式 MOV TH1,#0E6H ;设置波特率1200 MOV TL1,#0E6H SETB TR1 ;启动定时器1 MOV SCON,#50H ;设置串口工作方式 CLR RI ;清除标志位 CLR TI ;清除标志位 SETB ES ;开串口中断 SETB EA ;开总中断 LOOP:JNB P3.2,S3OK ;检测按键是否按下 JNB P3.3,S4OK AJMP LOOP S3OK:MOV A,#0FBH ;点亮LED4 MOV SBUF,A JNB TI,$ ;等待发送完 SJMP LOOP2 S4OK:MOV A,#0F7H ;点亮LED5 MOV SBUF,A JNB TI,$ ;等待发送完 LOOP2:ACALL DELAY AJMP LOOP
INTRT:PUSH ACC JNB TI,NEXT CLR TI AJMP OUT NEXT: CLR RI ;清标志 MOV A,SBUF ;读取接收的数据 MOV P1,A ;送P1口 OUT: POP ACC RETI
DELAY:MOV R3,#60 ; 延时0.6秒 D1: MOV R4,#20 D2: MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 DJNZ R3,D1 RET
END
|