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

📄 twt_rs.asm

📁 485通讯的水表程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		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 + -