跟你的不一样 可以参考一下
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
 |