📄 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 + -