📄 twt_rs.asm
字号:
BTFSS STATUS,Z
GOTO NOT_TX_DATA ;非法通信
WRITE_PA ;修改密码命令
MOVLW 08H
XORWF IR_DATA9,0
BTFSS STATUS,Z
GOTO NOT_TX_DATA ;非法通信
MOVLW MIMA0
CALL FSR_ZHUANHUAN_4
MOVLW IR_DATAA
MOVWF FSR
MOVF BUF05,0
XORWF IR_DATAB,0
BTFSS STATUS,Z
GOTO DATA_MIMA_CUO_PAGE1
MOVF BUF06,0
XORWF IR_DATA0+0CH,0
BTFSS STATUS,Z
GOTO DATA_MIMA_CUO_PAGE1
MOVF BUF07,0
XORWF IR_DATA0+0DH,0
BTFSS STATUS,Z
GOTO DATA_MIMA_CUO_PAGE1
MOVLW IR_DATA0+0EH
CALL FSR_ZHUANHUAN_4
MOVLW MIMA0
MOVWF FSR
MOVF BUF04,0
MOVWF MIMA0
MOVF BUF05,0
MOVWF MIMA1
MOVF BUF06,0
MOVWF MIMA2
MOVF BUF07,0
MOVWF MIMA3
MOVLW IR_DATA0+0AH
MOVWF FSR
MOVF BUF04,0
MOVWF IR_DATA0+0AH
MOVF BUF05,0
MOVWF IR_DATA0+0BH
MOVF BUF06,0
MOVWF IR_DATA0+0CH
MOVF BUF07,0
MOVWF IR_DATA0+0DH
MOVLW MIMA0
MOVWF FSR
MOVLW 04H
MOVWF COUNT1
MOVLW 30H
MOVWF ADDR
MOVLW 04H
BCF STATUS,PA0
BSF STATUS,PA1
GOTO FILL_HUANCHONG
NOT_TX_DATA
GOTO WATER_TONGXUN
CLRWDT
SLEEP
DATA_MIMA_CUO_PAGE1
BCF STATUS,PA0
BSF STATUS,PA1
GOTO DATA_MIMA_CUO
READ_DA_PAGE1
BCF STATUS,PA0
BSF STATUS,PA1
GOTO READ_DA
WRITE_DA_PAGE1
BCF STATUS,PA0
BSF STATUS,PA1
GOTO WRITE_DA
;****************************************************************************************
;****************************************************************************************
;****************************************************************************************
ORG 400H
;****************************************************************************************
;****************************************************************************************
;****************************************************************************************
;833.2us,455k
TX_DATA
MOVLW .26
MOVWF COUNT0
DECFSZ COUNT0
GOTO $-1
RETLW 0
;****************************************************************************************
;子程序文件名:FSR_ZHUANHUAN
;实现功能:
;版本:
;作者:
;日期:
;测试人员:
;测试日期:
;测试文件:
;修改说明:
;程序所属区块:PA0/PA1=01
;入口参数:
;
;出口参数:
;
;
;影响的局部寄存器:
;影响的全局寄存器:
;堆栈深度:
;执行时间:
;调用的程序:
;特殊说明:
;****************************************************************************************
FSR_ZHUANHUAN_PAGE1
MOVWF FSR
MOVF INDF,0
MOVWF BUF02
FSR_ZHUANHUAN_5_PAGE1
INCF FSR
MOVF INDF,0
MOVWF BUF03
FSR_ZHUANHUAN_4_PAGE1
INCF FSR
MOVF INDF,0
MOVWF BUF04
FSR_ZHUANHUAN_3_PAGE1
INCF FSR
MOVF INDF,0
MOVWF BUF05
FSR_ZHUANHUAN_2_PAGE1
INCF FSR
MOVF INDF,0
MOVWF BUF06
FSR_ZHUANHUAN_1_PAGE1
INCF FSR
MOVF INDF,0
MOVWF BUF07
RETLW 0
;****************************************************************************************
READ_DA
MOVLW 02H
XORWF IR_DATA9,0
BTFSS STATUS,Z
GOTO NOT_TX_DATA_PAGE2
MOVLW 90H
XORWF IR_DATAB,0
BTFSC STATUS,Z
GOTO READ_DA_90
MOVLW 9AH
XORWF IR_DATAB,0
BTFSC STATUS,Z
GOTO READ_DA_9A
MOVLW 0C0H
XORWF IR_DATAB,0
BTFSC STATUS,Z
GOTO READ_DA_C0
GOTO DATA_BIAOSHI_CUO
READ_DA_90
MOVLW 10H
XORWF IR_DATAA,0
BTFSS STATUS,Z
GOTO DATA_BIAOSHI_CUO
MOVLW YDL0 ;填充总用电量
CALL FSR_ZHUANHUAN_PAGE1
GOTO FILL_DL_COM
READ_DA_9A
MOVLW 1FH
XORWF IR_DATAA,0
BTFSS STATUS,Z
GOTO DATA_BIAOSHI_CUO
MOVLW DJDL0 ;填充冻结电量
CALL FSR_ZHUANHUAN_PAGE1
FILL_DL_COM
MOVLW IR_DATAC
MOVWF FSR
MOVF BUF02,0
MOVWF IR_DATAC
MOVF BUF03,0
MOVWF IR_DATAD
MOVF BUF04,0
MOVWF IR_DATAE
MOVF BUF05,0
MOVWF IR_DATAF
MOVLW 06H
GOTO FILL_HUANCHONG
READ_DA_C0
MOVLW 20H
XORWF IR_DATAA,0
BTFSS STATUS,Z
GOTO READ_DA_C032
;MOVLW SYSTEM_STATUS
MOVWF FSR
MOVF INDF,0
MOVWF BUF04
;MOVLW SYSTEM_STATUS
MOVWF FSR
MOVF BUF04
MOVF IR_DATAB
MOVLW 03H
GOTO FILL_HUANCHONG ;填充表运行状态
READ_DA_C032
MOVLW 32H
XORWF IR_DATAA,0
BTFSS STATUS,Z
GOTO DATA_BIAOSHI_CUO
MOVLW ID00
CALL FSR_ZHUANHUAN_PAGE1
MOVLW IR_DATAC
MOVWF FSR
MOVF BUF02,0
MOVWF IR_DATAC
MOVF BUF03,0
MOVWF IR_DATAD
MOVF BUF04,0
MOVWF IR_DATAE
MOVF BUF05,0
MOVWF IR_DATAF
MOVF BUF06,0
MOVWF IR_DATA10
MOVF BUF07,0
MOVWF IR_DATA11
MOVLW 08H
GOTO FILL_HUANCHONG
;****************************************************************************************
WRITE_DA
MOVLW MIMA0
CALL FSR_ZHUANHUAN_PAGE1
MOVLW IR_DATA0+0CH
MOVWF FSR
MOVF IR_DATA0+0DH,0
XORWF BUF03,0
BTFSS STATUS,Z
GOTO DATA_MIMA_CUO
MOVF IR_DATA0+0EH,0
XORWF BUF04,0
BTFSS STATUS,Z
GOTO DATA_MIMA_CUO
MOVF IR_DATA0+0FH,0
XORWF BUF05,0
BTFSS STATUS,Z
GOTO DATA_MIMA_CUO
;****************************************************************************************
MOVLW 0C0H
XORWF IR_DATA0+0BH,0
BTFSC STATUS,Z
GOTO WRITE_DA_C0
MOVLW 0C1H
XORWF IR_DATA0+0BH,0
BTFSC STATUS,Z
GOTO WRITE_DA_C1
MOVLW 0C2H
XORWF IR_DATA0+0BH,0
BTFSS STATUS,Z
GOTO DATA_BIAOSHI_CUO
MOVLW .10
XORWF IR_DATA0+09H,0
BTFSS STATUS,Z
GOTO NOT_TX_DATA_PAGE2
MOVLW 12H
XORWF IR_DATA0+0AH,0
BTFSS STATUS,Z
GOTO DATA_BIAOSHI_CUO
MOVLW IR_DATA0+10H
CALL FSR_ZHUANHUAN_4
MOVLW MIMA0
MOVWF FSR
MOVF BUF02,0
MOVWF MIMA0
MOVF BUF03,0
MOVWF MIMA1
MOVF BUF04,0
MOVWF MIMA2
MOVF BUF05,0
MOVWF MIMA3
MOVLW IR_DATA0+0AH
MOVWF FSR
MOVF BUF02,0
MOVWF IR_DATA0+0CH
MOVF BUF03,0
MOVWF IR_DATA0+0DH
MOVF BUF04,0
MOVWF IR_DATA0+0EH
MOVF BUF05,0
MOVWF IR_DATA0+0FH
MOVLW 00H
GOTO FILL_HUANCHONG
WRITE_DA_C0
MOVLW .12
XORWF IR_DATA0+09H,0
BTFSS STATUS,Z
GOTO NOT_TX_DATA_PAGE2
MOVLW 32H
XORWF IR_DATA0+0AH,0
BTFSS STATUS,Z
GOTO DATA_BIAOSHI_CUO
MOVLW IR_DATA0+10H
CALL FSR_ZHUANHUAN_PAGE1
MOVLW ID00
MOVWF FSR
MOVF BUF02,0
MOVWF ID00
MOVF BUF03,0
MOVWF ID01
MOVF BUF04,0
MOVWF ID02
MOVF BUF05,0
MOVWF ID03
MOVF BUF06,0
MOVWF ID04
MOVF BUF07,0
MOVWF ID05
MOVLW IR_DATA0
MOVWF FSR
MOVF BUF02,0
MOVWF IR_DATA0+01H
MOVF BUF03,0
MOVWF IR_DATA0+02H
MOVF BUF04,0
MOVWF IR_DATA0+03H
MOVF BUF05,0
MOVWF IR_DATA0+04H
MOVF BUF06,0
MOVWF IR_DATA0+05H
MOVF BUF07,0
MOVWF IR_DATA0+06H
MOVLW 00H
GOTO FILL_HUANCHONG
WRITE_DA_C1
MOVLW .10
XORWF IR_DATA0+09H,0
BTFSS STATUS,Z
GOTO NOT_TX_DATA_PAGE2
MOVF IR_DATA0+0CH,1
BTFSS STATUS,Z
GOTO DATA_MIMA_CUO
MOVLW IR_DATA0+10H
CALL FSR_ZHUANHUAN_PAGE1
MOVLW YDL0
MOVWF FSR
MOVF BUF02,0
MOVWF YDL0
MOVF BUF03,0
MOVWF YDL1
MOVF BUF04,0
MOVWF YDL2
MOVF BUF05,0
MOVWF YDL3
CLRF YDL0-1H
CLRF YDL0-2H
CLRF YDL0-3H
CLRF YDL0-4H
MOVLW 00H
GOTO FILL_HUANCHONG
;****************************************************************************************
DATA_BIAOSHI_CUO
MOVLW 02H
GOTO FILL_HUANCHONG_00
DATA_MIMA_CUO
MOVLW 04H
GOTO FILL_HUANCHONG_00
DATA_FEIFA
MOVLW 01H
FILL_HUANCHONG_00
MOVWF IR_DATA0+0AH
MOVLW 0C0H
IORWF IR_DATA0+08H,1
MOVLW 01H
MOVWF IR_DATA0+09H
GOTO FILL_HUANCHONG_01
;****************************************************************************************
FILL_HUANCHONG
MOVWF IR_DATA9
MOVLW 80H
IORWF IR_DATA8,1
FILL_HUANCHONG_01
MOVF IR_DATA9,0
BTFSC STATUS,Z
GOTO COMPUTER_CS
MOVWF BUF00
MOVLW IR_DATAA
MOVWF FSR
ADD_DATA_33H
MOVLW 33H
ADDWF INDF
INCF FSR
DECFSZ BUF00
GOTO ADD_DATA_33H
COMPUTER_CS
MOVF IR_DATA9,0
MOVWF BUF00
MOVLW .10
ADDWF BUF00
MOVF BUF00,0
MOVWF BUF02
CLRF BUF01
MOVLW IR_DATA0
MOVWF FSR
COMPUTER_CS_LOOP
MOVF INDF,0
ADDWF BUF01,1
INCF FSR
BSF FSR,4
DECFSZ BUF00
GOTO COMPUTER_CS_LOOP
MOVF BUF01,0
MOVWF INDF
INCF FSR
MOVLW 16H
MOVWF INDF
;**********************************************************************************
MOVLW T485_STATUS
MOVWF FSR
MOVLW 0AAH
MOVWF T485_STATUS
MOVLW 03H
ADDWF BUF02,0
MOVWF T485_CNT2
MOVLW B'11110001'
TRIS PORTA
GOTO $+1
BSF PORTA,T485_DE
BSF PORTA,T485_RE
CLRF BUF07
MOVLW 0FEH
GOTO TX_DATA_FE
;****************************************************************************************
;****************************************************************************************
;****************************************************************************************
T485_TRANT
MOVLW IR_DATA0-1
ADDWF BUF07,0
MOVWF FSR
BSF FSR,4
MOVF INDF,0
TX_DATA_FE
MOVWF COUNT1
BCF PORTA,T485_TX ; 发串行起始位“0“
CALL TX_DATA
GOTO $+1
GOTO $+1
MOVLW 08H
MOVWF BUF03
CLRF BUF02 ;偶校验工作寄存器
TX_DATA_LOOP
MOVF COUNT1,0
ADDWF BUF02,1 ; 生成偶校验
BTFSS COUNT1,0
BCF PORTA,T485_TX
BTFSC COUNT1,0
BSF PORTA,T485_TX
CALL TX_DATA
NOP
RRF COUNT1,1
DECFSZ BUF03
GOTO TX_DATA_LOOP
NOP
GOTO $+1
BTFSS BUF02,0
BCF PORTA,T485_TX
BTFSC BUF02,0
BSF PORTA,T485_TX
CALL TX_DATA
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
BSF PORTA,T485_TX ; 发停止位“1“
CALL TX_DATA
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
GOTO $+1
INCF BUF07
MOVLW 50H
MOVWF FSR
DECFSZ T485_CNT2,1
GOTO TX_DATA_LOOP0
MOVLW 50H
MOVWF FSR
CLRF T485_STATUS
MOVLW B'11110101'
TRIS PORTA
BCF PORTA,T485_RE
BCF PORTA,T485_DE
GOTO TX_DATA_LOOP0
GOTO NOT_TX_DATA_PAGE2
TX_DATA_LOOP0
BCF STATUS,PA0
BCF STATUS,PA1
GOTO WAKE_SLEEP
NOT_TX_DATA_PAGE2
CLRWDT
SLEEP
;****************************************************************************************
;****************************************************************************************
;****************************************************************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -