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

📄 main.asm

📁 《单片机应用系统设计与产品开发》配套源码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
             MOV     R4,#0
             MOV     R6,#LOW(DATA_BUFFER-7)
             MOV     R7,#HIGH(DATA_BUFFER-7)
             MOV     R0,#LOW(DATA_BUFFER0-7)
             MOV     R1,#HIGH(DATA_BUFFER0-7)
MD_COPY:     MOV     DPL,R0
             MOV     DPH,R1
             MOVX    A,@DPTR
             INC     DPTR
             MOV     R0,DPL
             MOV     R1,DPH
             MOV     DPL,R6
             MOV     DPH,R7
             MOVX    @DPTR,A
             INC     DPTR
             MOV     R6,DPL
             MOV     R7,DPH
             CLR     C
             ADD     A,R3
             MOV     R3,A
             MOV     A,R4
             ADDC    A,#0
             MOV     R4,A
             DJNZ    R2,MD_COPY
             CLR     C
             MOV     A,R3
             CPL     A
             ADD     A,#1
             MOV     R3,A
             MOV     A,R4
             CPL     A
             ADDC    A,#0
             MOV     R4,A
             MOV     DPL,R0
             MOV     DPH,R1
             MOVX    A,@DPTR
             XRL     A,R4
             JNZ     MD_ERROR
             INC     DPTR
             MOVX    A,@DPTR
             XRL     A,R3
             JNZ     MD_ERROR
             SETB    ALLOW_TRANS_FLAG
             MOV     TRANSID,SENDID
             MOV     A,SENDID
             CJNE    A,#28,MDXXX
             MOV     SENDID,#0
             AJMP    MD_ERROR
   MDXXX:    INC     SENDID
MD_ERROR:    SETB    ALLOW_SEND_FLAG
             RET


;================================================================
;转化程序,将智能设备的数据格式转化成电总协议的形式,比如ISVOLL空调中
;温度4.9度,却以放大10倍表示为49(31h)本程序就是要将31H转化成4.5的浮点数形式
;00h  00h  44 h  42h,,
;================================================================
MAINLOOPTRANS: JBC    ALLOW_TRANS_FLAG,TP
               RET
TP:            MOV    A,TRANSID

               CJNE   A,#0,RD2
               MOV    DPTR,#DATA_BUFFER       ; 取了两个数,用其中的一个 转化浮点数
               MOV    R0,DPL
               MOV    R1,DPH
               MOV    DPTR,#ADDR_REAL
               MOV    R6,DPL
               MOV    R7,DPH
               LCALL  B1TOF   ;温度转化为浮点数
               MOV    TRANSID,#55   ;用55来破坏TRANSID   ;
               RET

RD2:           CJNE   A,#1,RD5
               MOV    DPTR,#DATA_BUFFER     ; 取了两个数,用其中的一个 转化浮点数
               MOV    R0,DPL
               MOV    R1,DPH
               MOV    DPTR,#ADDR_REAL+4
               MOV    R6,DPL
               MOV    R7,DPH
               LCALL  BTOF     ;湿度
               MOV    TRANSID,#55
               RET
;此处删除了3、4两条命令
RD5:           CJNE   A,#2,RD6
               MOV    DPTR,#DATA_BUFFER
               MOV    R0,DPL
               MOV    R1,DPH
               MOV    DPTR,#ADDR_REAL+8
               MOV    R6,DPL
               MOV    R7,DPH
               LCALL  B4TOF        ;
               LCALL  B4TOF
               LCALL  B4TOF
               LCALL  B4TOF
               LCALL  B4TOF
               LCALL  B4TOF
               LCALL  B4TOF
               LCALL  B4TOF
               LCALL  B4TOF
               LCALL  B4TOF
               MOV    TRANSID,#55
               RET

RD6:           CJNE   A,#3,RD7
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+48)
               MOV    R7,#HIGH(ADDR_REAL+48)
               MOV    R2,#16
               LCALL  COPY
               MOV    TRANSID,#55
               RET

RD7:           CJNE   A,#4,RD8
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+64)
               MOV    R7,#HIGH(ADDR_REAL+64)
               MOV    R2,#4
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD8:           CJNE   A,#5,RD9
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+68)
               MOV    R7,#HIGH(ADDR_REAL+68)
               MOV    R2,#4
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD9:           CJNE   A,#6,RD10
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+72)
               MOV    R7,#HIGH(ADDR_REAL+72)
               MOV    R2,#7
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD10:          CJNE   A,#7,RD11
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+79)
               MOV    R7,#HIGH(ADDR_REAL+79)
               MOV    R2,#3
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD11:          CJNE   A,#8,RD12
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+82)
               MOV    R7,#HIGH(ADDR_REAL+82)
               MOV    R2,#4
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD12:          CJNE   A,#9,RD13
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+86)
               MOV    R7,#HIGH(ADDR_REAL+86)
               MOV    R2,#3
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD13:          CJNE   A,#10,RD14
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+89)
               MOV    R7,#HIGH(ADDR_REAL+89)
               MOV    R2,#4
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD14:          CJNE   A,#11,RD15
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+93)
               MOV    R7,#HIGH(ADDR_REAL+93)
               MOV    R2,#3
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD15:          CJNE   A,#12,RD16
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_REAL+96)
               MOV    R7,#HIGH(ADDR_REAL+96)
               MOV    R2,#4
               LCALL  COPY_ALARM
               MOV    TRANSID,#55
               RET

RD16:          CJNE   A,#13,PD1
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+36)
               MOV    R7,#HIGH(ADDR_PARA+36)
               MOV    R2,#1
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD1:           CJNE   A,#14,PD2
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA)
               MOV    R7,#HIGH(ADDR_PARA)
               LCALL  BTOF
               MOV    TRANSID,#55
               RET

PD2:           CJNE   A,#15,PD3
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+4)
               MOV    R7,#HIGH(ADDR_PARA+4)
               LCALL  B1TOF
               LCALL  B1TOF
               MOV    TRANSID,#55
               RET

PD3:           CJNE   A,#16,PD4
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+12)
               MOV    R7,#HIGH(ADDR_PARA+12)
               LCALL  B1TOF
               LCALL  B1TOF
               LCALL  B1TOF
               MOV    TRANSID,#55
               RET

PD4:           CJNE   A,#17,PD5
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+24)
               MOV    R7,#HIGH(ADDR_PARA+24)
               LCALL  BTOF
               LCALL  BTOF
               MOV    TRANSID,#55
               RET
;删去当前时间

PD5:           CJNE   A,#18,PD6
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+32)
               MOV    R7,#HIGH(ADDR_PARA+32)
               MOV    R2,#3
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD6:           CJNE   A,#19,PD7
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+37)
               MOV    R7,#HIGH(ADDR_PARA+37)
               MOV    R2,#4
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD7:           CJNE   A,#20,PD8
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+41)
               MOV    R7,#HIGH(ADDR_PARA+41)
               MOV    R2,#4
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD8:           CJNE   A,#21,PD9
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+45)
               MOV    R7,#HIGH(ADDR_PARA+45)
               MOV    R2,#7
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD9:           CJNE   A,#22,PD10
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+52)
               MOV    R7,#HIGH(ADDR_PARA+52)
               MOV    R2,#3
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD10:          CJNE   A,#23,PD11
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+55)
               MOV    R7,#HIGH(ADDR_PARA+55)
               MOV    R2,#4
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD11:          CJNE   A,#24,PD12
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+59)
               MOV    R7,#HIGH(ADDR_PARA+59)
               MOV    R2,#3
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD12:          CJNE   A,#25,PD13
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+62)
               MOV    R7,#HIGH(ADDR_PARA+62)
               MOV    R2,#4
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD13:          CJNE   A,#26,PD14
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+66)
               MOV    R7,#HIGH(ADDR_PARA+66)
               MOV    R2,#3
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD14:          CJNE   A,#27,PD15
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+69)
               MOV    R7,#HIGH(ADDR_PARA+69)
               MOV    R2,#4
               LCALL  COPY
               MOV    TRANSID,#55
               RET

PD15:          CJNE   A,#28,TRANS_OTHER
               MOV    R0,#LOW(DATA_BUFFER)
               MOV    R1,#HIGH(DATA_BUFFER)
               MOV    R6,#LOW(ADDR_PARA+73)
               MOV    R7,#HIGH(ADDR_PARA+73)
               MOV    R2,#19
               LCALL  COPY
               MOV    TRANSID,#55
TRANS_OTHER:   RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -