串列通信主機接收試驗程式

;R2存放從機地址,R4數據幀計數器,#03H請求數據命令,#00H廣播命令,#0FFH結束命令
;>>>>>>>>>>>>>>>>>串列通信主機接收子程式<<<<<<<<<<<<<<<<<<<;容錯機制善不健全

ORG 0000H
LJMP MAIN
ORG 0023H
LJMP SERVE1
ORG 0060H
MAIN: MOV TMOD,#20H ;程式序初始化
MOV TH1,#0F3H
MOV TL1,#0F3H
SETB TR1
MOV PCON,#80H
MOV SCON,#0D0H
MOV R4,#03H
SETB ES
SETB EA
SETB TB8
MOV P2,#0FFH
MOV R3,#00H
CLR P2.1
MOV R5,#10H
KEY: LCALL DT10
djnz R5,KEY
MOV dptr,#LIB0
MOV A,R3
MOVC A,@A+DPTR
MOV R2,A
MOV SBUF,R2
SETB P2.1
SJMP $

;>>>>中斷服務程式<<<<

SERVE1:JBC RI,LOP ;接收中斷,清RI,轉LOP
CLR TI ;是傳送中斷,清除標誌,中斷返回
SJMP ENDT
LOP: MOV R5,SBUF ;接收數
MOV A,R5
XRL A,R2 ;判斷地址
JZ LOP2
LOP1: MOV SBUF,#0FFH
SJMP ENDT ;*跳轉返回
LOP2: CLR P2.3
SETB TB8 ;******************
MOV R1,#LIB1
MOV R0,#LIB1 ;*****************
MOV SBUF,#03H ;傳送請求數據命令
JNB RI,$
LOP3: MOV A,SBUF ;接收數據
MOV @R1,A
INC R1 ;*
SHOW: CLR P2.1
SHO2: MOV A,@R0
MOV P1,A
INC R0
LCALL DT10
LCALL DT10
MOV P1,#0FFH
SETB P2.1
RET
DT10: MOV R7,#0EFH
TS1: MOV R6,#0FFH
TS2: DJNZ R6,TS2
DJNZ R7,TS1
RET
DT11: MOV R7,#04FH
TD1: MOV R6,#0FFH
TD2: DJNZ R6,TD2
DJNZ R7,TD1 ;********調用數碼管顯示子程式;調用時 單片機無反應
ret
CLR RI
CLR P2.5
MOV SBUF,#03H ;傳送請求數據命令
MOV A,R4
JZ LOP4 ;*****************************************
JNB RI,$ ;***需加故障處理
LOP4: CLR P2.7
DJNZ R4,LOP3 ;循環指令接收數據
;MOV SBUF,#0FFH ;髮結束命令
CLR P2.1

;SED: NOP ;掃描從機
;NOP
;SETB TB8
;INC R3
;CJNE R3,#02H,LOP5
;CLR ES
;RETI
;LOP5: MOV DPTR,#LIB0 ;**
;MOV R3,A
;MOVC A,@A+DPTR
;MOV R2,A
;MOV SBUF,R2
ENDT: CLR RI
RETI

;>>>>>>>>>>>>>>>>>>>數碼管顯示子程式<<<<<<<<<<<<<<<<<<<

;>>>>>>>存儲空間<<<<<<<<<<<

LIB0: DB 01H,02H,03H
LIB1: DS 0FH
END

相關詞條

熱門詞條

聯絡我們