初學單片機,請教一下這兩個串口收發程序那里出了問題,兩機通訊不能收發.
中斷發送程序:
ORG 00H
AJMP START
ORG 0023H
AJMP SER
ORG 30H
START:
MOV SP,#5FH ;設置堆棧
MOV TMOD,#20H ;T1工作模式2
MOV PCON,#80H ;SMOD=1,雙倍波波特率
MOV TH1,#0FDH ;設波特率為19200
MOV TL1,#0FDH
MOV SCON,#50H ;設定串口方式2,REN=1,允許接收
MOV R0,#0AAH ;設定緩沖數據
SETB TR1 ;開T1定時器
SETB EA ;開總允許中斷
SETB ES ;開串行中斷
SJMP $ ;等待中斷
SER: ;中斷發送程序
MOV A,R0
MOV SBUF,A ;發送數據
CLR TI
CPL A
MOV R0,A
CALL DELAY
RETI
DELAY: ;延時子程序
MOV R7,#0FFH
DJNZ R7,$
RET
END
===========================================================
中斷接收程序:
ORG 00H
AJMP START
ORG 23H
AJMP SER
ORG 30H
START:
MOV SP,#5FH ;設置堆棧
MOV TMOD,#20H ;T1工作模式2
MOV PCON,#80H ;SMOD=1,雙倍波特率
MOV TH1,#0FDH ;設置波特率為19200
MOV TL1,#0FDH
MOV SCON,#50H ;設定串口方式2,REN=1,允許接收
SETB TR1 ;開T1定時器
SETB EA ;開總允許中斷
SETB ES ;開串行中斷
SJMP $
SER: ;中斷接收程序
MOV A,SBUF ;取數據,并輸出P1口
MOV P1,A
CLR RI ;清RI標志位
CALL DELAY
RETI
DELAY: ;延時子程序
MOV R7,#0FFH
DJNZ R7,$
RET
END
請教一個串口中斷程序
全部回復(6)
正序查看
倒序查看