⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcm16c550.asm

📁 《单片机应用系统设计与产品开发》配套源码
💻 ASM
📖 第 1 页 / 共 3 页
字号:
                 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 + -