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

📄 ask_zb_data.asm

📁 基于PL3000芯片的单相复费率多功能电表的应用程序。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		MOV	R0,#ZB_BUF14      ;发送数据填在ZB_BUF14、15、16、17
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		INC     FL_NUM
		;MOV	FL_NUM,#4         ;2004.6.12,第3费率表底
		CALL	RD_ZR_FL_INT
		MOV	R0,#ZB_BUF18      ;发送数据填在ZB_BUF18、19、20、21
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		RET
;**************************************************************
;ZB读FL X电量,进行BCD CHANG 校验 MOV TO ZB_BUF6--9
;**************************************************************
ZFS_ZR_DL234:	
		MOV	FL_NUM,A          ;2004.6.12
		CALL	RD_ZR_FL_INT
	;	MOV	R0,#ZB_BUF6       ;发送数据填在ZB_BUF6、7、8、9
	;	MOV     R1,#RD_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
	        JMP     ZFS_DATA_RD4		
;**************************************************************
;ZB读总电量,进行BCD CHANG 校验 MOV TO ZB_BUF6--9
;**************************************************************
ZFS_ZR_ZDL:	;MOV     FL_NUM_BAK,#2  
                CALL	RD_ZR_ZDL
	;	MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
	        JMP     ZFS_DATA_CAL4		
;***********************************************
;ZB读所有电量
;***********************************************
ZFS_JL_ZR_DL_ALL:
          	MOV     FL_NUM,FL_NUM_BAK		
		CALL	ZFS_JL_ZR_ZDL
		
		MOV     FL_NUM,FL_NUM_BAK
		CALL	RD_JL_ZR_FL_INT
		MOV	R0,#ZB_BUF10      ;发送数据填在ZB_BUF10、11、12、13
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		
		INC     FL_NUM_BAK
		CALL	RD_JL_ZR_FL_INT
		MOV	R0,#ZB_BUF14      ;发送数据填在ZB_BUF14、15、16、17
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		
		INC     FL_NUM_BAK
		CALL	RD_JL_ZR_FL_INT
		MOV	R0,#ZB_BUF18      ;发送数据填在ZB_BUF18、19、20、21
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		RET
;**************************************************************
;ZB读FL X电量,进行BCD CHANG 校验 MOV TO ZB_BUF6--9
;**************************************************************
ZFS_JL_ZR_DL234:	
		MOV	FL_NUM_BAK,A          ;2004.6.12
		LCALL	RD_JL_ZR_FL_INT
	;	MOV	R0,#ZB_BUF6       ;发送数据填在ZB_BUF6、7、8、9
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
	        JMP     ZFS_DATA_CAL4		
;**************************************************************
;ZB读总电量,进行BCD CHANG 校验 MOV TO ZB_BUF6--9
;**************************************************************
ZFS_JL_ZR_ZDL:	;MOV     FL_NUM_BAK,#2  
                CALL	RD_JL_ZR_ZDL
	;	MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
	        JMP     ZFS_DATA_CAL4	
;*************************************************
;读最大需量
;*************************************************
ZFS_ZR_XL:	CALL	RD_ZR_XL
	        JMP     ZFS_DATA_3
;*************************************************
;读最大需量发生时间
;*************************************************
ZFS_ZR_XL_TIME:
        	CALL	RD_ZR_XL_TIME
                JMP     ZFS_DATA_5

;*************************************************
;读无功总电量
;*************************************************
ZFS_ZR_W_ZDL:   CALL    RD_JL_ZR_W
	    ;    MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
	        JMP     ZFS_DATA_CAL4
;******************************************************
;ZB 读上月所有电量
;2004.6.16 ZB 读上月冻结所有电量,16字节
;***********************************************
ZFS_UP_MM_DL_ALL:
		NOP
                MOV	FL_NUM,FL_NUM_BAK  
		CALL	ZFS_UP_MM_DL
		
                MOV	FL_NUM,FL_NUM_BAK  
		CALL	RD_LAST_FL_INT
		MOV	R0,#ZB_BUF10      ;发送数据填在ZB_BUF10、11、12、13
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		
		INC	FL_NUM            
		CALL	RD_LAST_FL_INT
		MOV	R0,#ZB_BUF14      ;发送数据填在HW_BUF14、15、16、17
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0

		INC	FL_NUM           
		CALL	RD_LAST_FL_INT
		MOV	R0,#ZB_BUF18      ;发送数据填在HW_BUF18、19、20、21
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		RET 
;*************************************************
;ZB 读上月总电量   MOV TO ZB_BUF6--9
; ZB 读上月冻结电量
;*************************************************
ZFS_UP_MM_DL:   CALL	RD_LAST_ZDL
	;	MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
            ;    RET
            JMP     ZFS_DATA_CAL4
;*************************************************
;ZB 读上月FLX电量   MOV TO ZB_BUF6--9
;*************************************************
ZFS_UP_MM_DL234:MOV	FL_NUM,A
		LCALL	RD_LAST_FL_INT
	;	MOV	R0,#ZB_BUF6
	;	MOV     R1,#RD_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
               JMP     ZFS_DATA_RD4					
;******************************************************
;ZB 读上月所有电量
;2004.6.16 ZB 读上月冻结所有电量,16字节
;***********************************************
ZFS_JL_UP_MM_DL_ALL:
		NOP
                MOV	FL_NUM,FL_NUM_BAK  
		CALL	ZFS_JL_UP_MM_DL
		
                MOV	FL_NUM,FL_NUM_BAK  
		CALL	RD_JL_LAST_FL_INT
		MOV	R0,#ZB_BUF10      ;发送数据填在ZB_BUF10、11、12、13
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		
		INC	FL_NUM_BAK            
		CALL	RD_JL_LAST_FL_INT
		MOV	R0,#ZB_BUF14      ;发送数据填在HW_BUF14、15、16、17
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0

		INC	FL_NUM_BAK           
		CALL	RD_JL_LAST_FL_INT
		MOV	R0,#ZB_BUF18      ;发送数据填在HW_BUF18、19、20、21
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		RET 
;*************************************************
;ZB 读上月总电量   MOV TO ZB_BUF6--9
; ZB 读上月冻结电量
;*************************************************
ZFS_JL_UP_MM_DL:
                CALL	RD_JL_LAST_ZDL
	;	MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
          ;      RET
          JMP     ZFS_DATA_CAL4
;*************************************************
;ZB 读上月FLX电量   MOV TO ZB_BUF6--9
;*************************************************
ZFS_JL_UP_MM_DL234:
                MOV	FL_NUM_BAK,A
		CALL	RD_JL_LAST_FL_INT
	;	MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET					
           JMP     ZFS_DATA_CAL4
;*************************************************
;读最大需量
;
;*************************************************
ZFS_LAST_XL:	CALL	RD_LAST_XL
	        JMP     ZFS_DATA_3
;*************************************************
;读最大需量发生时间
;
;*************************************************
ZFS_LAST_XL_TIME:
        	CALL	RD_LAST_XL_TIME
                JMP     ZFS_DATA_5    	

;*************************************************
;读无功总电量
;*************************************************
ZFS_LAST_W_ZDL: CALL    RD_JL_LAST_W
	     ;   MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;;	CALL    LOOP_R1_TO_R0
	;	RET
	JMP     ZFS_DATA_CAL4
;**************************************************************
;电压A
;**************************************************************
ZFS_VA: 	MOV     DPH,#2
                MOV     DPL,#UA_L
                JMP     ZFS_VI						

;**************************************************************
;电流A
;**************************************************************
ZFS_IA: 	MOV     DPH,#2
                MOV     DPL,#IA_L		
ZFS_VI:         MOVX    A,@DPTR
                MOV     RD_BUF0,A
                INC     DPTR
                MOVX    A,@DPTR
                MOV     RD_BUF1,A
                INC     DPTR
                MOVX    A,@DPTR
                MOV     RD_BUF2,A
                MOV     A,RD_BUF0
                ADD     A,RD_BUF1
                ADD     A,#'X'
                CJNE    A,RD_BUF2,ZFS_I_RET
ZFS_DATA_2:     MOV	R0,#ZB_BUF6
		MOV	@R0,RD_BUF0
		INC     R0
		MOV	@R0,RD_BUF1      
		RET		
		
ZFS_I_RET:      MOV    RD_BUF0,#0
                MOV    RD_BUF1,#0 
                JMP    ZFS_DATA_2   
                             		
;**************************************************************
;
;**************************************************************
ZFS_GL:         MOV     DPH,#1
	        MOV     DPL,#NOW_GL_L
                MOVX    A,@DPTR          ;
                MOV     RD_BUF0,A
                INC     DPTR
                MOVX    A,@DPTR
                MOV     RD_BUF1,A
                INC     DPTR
                MOVX    A,@DPTR
                MOV     RD_BUF2,A
                INC     DPTR
                MOVX    A,@DPTR
                MOV     RD_BUF3,A                
                MOV     A,RD_BUF0
                ADD     A,RD_BUF1
                ADD     A,RD_BUF2
                ADD     A,#'X'
                CJNE    A,RD_BUF3,ZFS_RD_GL      
		JMP     ZFS_DATA_3		
		
ZFS_RD_GL:      MOV    RD_BUF0,#0
                MOV    RD_BUF1,#0
                MOV    RD_BUF2,#0    		
		JMP    ZFS_DATA_3




             

		
		END

⌨️ 快捷键说明

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