?? pcm16c550.asm
字號:
MOV LENGTH,#20
PDAS: MOVX A,@DPTR ;前面的形成校驗
LCALL INT_CHKSUM
INC DPTR
DJNZ LENGTH,PDAS
MOV R0,#LOW(BUFFER2)
MOV R1,#HIGH(BUFFER2)
MOV R6,#LOW(HEAD_SETUP+21)
MOV R7,#HIGH(HEAD_SETUP+21)
MOV DPTR,#LEN_SETUP
INC DPH
MOV R4,DPL
MOV R5,DPH
LCALL WAHAHA
MOV DPTR,#HEAD_SETUP
MOV POINTL,DPL
MOV POINTH,DPH
setb ctrl_485
nop
MOV DPTR,#ier ;關接收,開發送中斷
MOV A,#2
MOVX @DPTR,A
;MOV DPTR,#ACE_PORT
;clr a
;MOVX @DPTR,A
RET
PDA_OTHER: MOV CMD_STATE,#CMD2_OTHER
RET
;============================================================
;將接收好的數據拆成3部分,準備發送,入口:源,目的地址和長度
;============================================================
WAHAHA: MOV DPL,R0
MOV DPH,R1
MOVX A,@DPTR
INC DPTR
MOV R0,DPL
MOV R1,DPH
MOV B,A
ANL A,#0F0H
SWAP A
LCALL ASCII
MOV DPL,R6
MOV DPH,R7
MOVX @DPTR,A
LCALL INT_CHKSUM
INC DPTR
MOV A,B
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
LCALL INT_CHKSUM
INC DPTR
MOV R6,DPL
MOV R7,DPH
DJNZ R4,WAHAHA
DJNZ R5,WAHAHA
CLR C
MOV A,REG_CHK2L
CPL A
ADD A,#1
MOV REG_CHK2L,A
MOV A,REG_CHK2H
CPL A
ADDC A,#0
MOV REG_CHK2H,A
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,REG_CHK2H
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,REG_CHK2L
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,REG_CHK2L
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#0DH
MOVX @DPTR,A ;3個ODH。保證有0D結尾
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
RET
;*******************************************
;應答上位機的頭部數據,一個完整的數據沒有準備好應答信息
;****************************************
INIT_HEAD: MOV DPTR,#HEAD_REAL
MOV A,#7EH
MOVX @DPTR,A
INC DPTR
MOV A,#32H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR ;地址由程序中給出
MOV A,PCM_ADDR
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,PCM_ADDR
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#44H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#LCHK_REALH
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#LCHK_REALH
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#LCHK_REALL
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#LCHK_REALL
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#34H
MOVX @DPTR,A
INC DPTR
MOV A,#31H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
;*******************************************
;應答上位機的頭部數據,一個完整的數據沒有準備好應答信息
;****************************************
INIT_PARA: MOV DPTR,#HEAD_PARA
MOV A,#7EH
MOVX @DPTR,A
INC DPTR
MOV A,#32H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR ;地址由程序中給出
MOV A,PCM_ADDR
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,PCM_ADDR
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#44H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#LCHK_PARAH
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#LCHK_PARAH
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#LCHK_PARAL
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#LCHK_PARAL
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#34H
MOVX @DPTR,A
INC DPTR
MOV A,#36H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
;*******************************************
;應答上位機的頭部數據,一個完整的數據沒有準備好應答信息
;****************************************
INIT_SETUP: MOV DPTR,#HEAD_SETUP
MOV A,#7EH
MOVX @DPTR,A
INC DPTR
MOV A,#32H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR ;地址由程序中給出
MOV A,PCM_ADDR
ANL A,#0F0H
SWAP A
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,PCM_ADDR
ANL A,#0FH
LCALL ASCII
MOVX @DPTR,A
INC DPTR
MOV A,#44H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#44H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOV A,#31H
MOVX @DPTR,A
INC DPTR
MOV A,#32H
MOVX @DPTR,A
INC DPTR
MOV A,#34H
MOVX @DPTR,A
INC DPTR
MOV A,#35H
MOVX @DPTR,A
INC DPTR
MOV A,#30H
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
RET
SYS_DELAY: MOV R0,#100
SD: MOV R1,#100
DJNZ R1,$
DJNZ R0,SD
RET
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -