?? main.asm
字號:
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 + -