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