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

📄 do_with_lcd_dis.asm

📁 基于PL3000芯片的单相复费率多功能电表的应用程序。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	        MOV     @R0,#10
	        MOV     R0,#LCD_2
	        MOV     @R0,#10        ;消隐
		MOV     R0,#LCD_3
	        MOV     @R0,#10        ;消隐
		CALL    RD_HMS
		CALL    BYTE3_TO_LCD_DIS
                SETB	TIME_BIT
DATE_TIME_SAME:                
                SETB    COL1_BIT
                SETB    COL2_BIT
;显示当前费率时段                
FL_NUM_END:     MOV     A,FL_NUM_JS
                CJNE    A,#2,FL_NUM_T3
                SETB    FDL_BIT
FL_NUM_T3:      CJNE    A,#3,FL_NUM_T4
                SETB    PDL_BIT                 
FL_NUM_T4:      CJNE    A,#4,FL_NUM_T
                SETB    GDL_BIT       
FL_NUM_T:       RET	
;***************************************************
;2004.6.26 LCD显示通讯地址低3字节时间  当前费率号 
;***************************************************
LCD_DIS_ADR012: MOV     R0,#LCD_1
	        MOV     @R0,#10
		CALL	RD_SNO
	        MOV     R0,#LCD_2
	        MOV     @R0,#10        
		MOV     R0,#LCD_3
	        MOV     @R0,#10        ;消隐
		CALL    BYTE3_TO_LCD_DIS
                SETB	BH_BIT
                JMP     FL_NUM_END	
;;***************************************************
;2004.6.26 LCD显示标准转数 3字节  当前费率号度 
;***************************************************
LCD_DIS_REV:    MOV     R0,#LCD_1
	        MOV     @R0,#10
		CALL	RD_REV_BCD
		CALL    LCD2_5_0  ;压缩程序05-12-06 LIHENG
		CALL    BYTE2_TO_LCD_DIS
                SETB	REV_BIT
                JMP     FL_NUM_END      
;***************************************************
;2005.11.17 LCD显示当上月有功总  4字节   
;***************************************************
;LCD_DIS_SY_ZDL: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;                MOV     FL_NUM_BAK,#2   ;
;                CALL    RD_JL_LAST_ZDL               
;               CALL    CAL_TO_RD
;                SETB	ZDL_BIT
;SY_ZFPG_SAME:
;                CALL    BYTE4_TO_LCD_DIS             
;                SETB	KW_BIT
;                SETB    H_BIT 
;                SETB    DP_BIT
;                SETB	DL_BIT
;                SETB	SYDL_BIT
;                RET	
;***************************************************
;2005.11.18 LCD显示上月有功峰  4字节   
;***************************************************
;LCD_DIS_SY_FDL: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;	        MOV     FL_NUM_BAK,#2
;	        CALL    RD_JL_LAST_FL_INT
;	        CALL    CAL_TO_RD
;                SETB	FDL_BIT
;		JMP     SY_ZFPG_SAME
;***************************************************
;2005.11.17 LCD显示上月有功平  4字节   
;***************************************************
;LCD_DIS_SY_PDL: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;                MOV     FL_NUM_BAK,#3
;                CALL    RD_JL_LAST_FL_INT
;	        CALL    CAL_TO_RD
;               SETB	PDL_BIT
;		JMP     SY_ZFPG_SAME
;***************************************************
;2005.11.17 LCD显示上月有功谷  4字节   
;***************************************************
;LCD_DIS_SY_GDL:	MOV     R0,#LCD_1
;	        MOV     @R0,#10
;                MOV     FL_NUM_BAK,#4
;                CALL    RD_JL_LAST_FL_INT
;	        CALL    CAL_TO_RD
	        
;                SETB	GDL_BIT
;		JMP     SY_ZFPG_SAME                
                                                     
;***************************************************
;2004.6.26 LCD显示当前有功总  4字节   
;***************************************************
                    
LCD_DIS_NOW_PZ: MOV     R0,#LCD_1
	        MOV     @R0,#10
                MOV     FL_NUM_BAK,#2   ;
             ;  CALL    RD_JL_NOW_ZDL
                CALL    RD_NOW_ZDL
                CALL    CAL_TO_RD
                SETB	ZDL_BIT
NOW_ZFPG_SAME:
                CALL    BYTE4_TO_LCD_DIS             
                SETB	KW_BIT
                SETB    H_BIT 
                SETB    DP_BIT
                SETB	DL_BIT
                SETB	NOW_BIT
                RET	
;***************************************************
;2004.6.26 LCD显示当前有功峰  4字节   
;***************************************************
LCD_DIS_NOW_PF: MOV     R0,#LCD_1
	        MOV     @R0,#10
	        MOV     FL_NUM_BAK,#2
            ;    CALL    RD_JL_NOW_FL_DL
                CALL    RD_NOW_FL_DL
            ;    CALL    CAL_TO_RD
                SETB	FDL_BIT
		JMP     NOW_ZFPG_SAME
;***************************************************
;2004.6.26 LCD显示当前有功平  4字节   
;***************************************************
LCD_DIS_NOW_PP: MOV     R0,#LCD_1
	        MOV     @R0,#10
                MOV     FL_NUM_BAK,#3
            ;    CALL    RD_JL_NOW_FL_DL
            ;    CALL    CAL_TO_RD
            CALL    RD_NOW_FL_DL
                SETB	PDL_BIT
		JMP     NOW_ZFPG_SAME
;***************************************************
;2004.6.26 LCD显示当前有功谷  4字节   
;***************************************************
LCD_DIS_NOW_PG:	MOV     R0,#LCD_1
	        MOV     @R0,#10
                MOV     FL_NUM_BAK,#4
           ;     CALL    RD_JL_NOW_FL_DL
            ;    CALL    CAL_TO_RD
            CALL    RD_NOW_FL_DL
                SETB	GDL_BIT
		JMP     NOW_ZFPG_SAME
;***************************************************
;2004.6.26 LCD显示当前有功反向总  4字节   
;***************************************************
;LCD_DIS_NOW_FZ: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;                MOV     FL_NUM_BAK,#6   ;
;                CALL    RD_NOW_ZDL
;                CALL    CAL_TO_RD
;                SETB	ZDL_BIT
;                SETB    REVP_BIT
;                JMP     NOW_ZFPG_SAME
;***************************************************
;2004.6.26 LCD显示当前有功反向峰  4字节   
;***************************************************
;LCD_DIS_NOW_FF: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;                MOV     FL_NUM,#6
;                CALL    RD_NOW_FL_DL
;                SETB	FDL_BIT
;                SETB    REVP_BIT
;		JMP     NOW_ZFPG_SAME
;***************************************************
;2004.6.26 LCD显示当前有功反向平  4字节   
;***************************************************
;LCD_DIS_NOW_FP: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;                MOV     FL_NUM,#7
;                CALL    RD_NOW_FL_DL
;                SETB	PDL_BIT
;                SETB    REVP_BIT
;		JMP     NOW_ZFPG_SAME
;***************************************************
;2004.6.26 LCD显示当前有功反向谷  4字节   
;***************************************************
;LCD_DIS_NOW_FG: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;                MOV     FL_NUM,#8
;                CALL    RD_NOW_FL_DL
;                SETB	GDL_BIT
;                SETB    REVP_BIT
;		JMP     NOW_ZFPG_SAME				
;***************************************************
;2005.5.19 LCD显示当前正向无功电量    
;***************************************************
;LCD_DIS_NOW_WZ:
;                CALL    RD_JL_NOW_W
;                CALL    CAL_TO_RD
;                SETB	NOW_BIT
;LCD_DIS_WG:                
;                MOV     R0,#LCD_1
;	        MOV     @R0,#10
;                SETB    WG_BIT
;	        CALL    BYTE4_TO_LCD_DIS
;	        SETB    DP_BIT
;                SETB	DL_BIT
                
;                RET 
;***************************************************
;2005.5.19 LCD显示上月正向无功电量    
;***************************************************                           
;LCD_DIS_SY_WGDL:CALL    RD_JL_LAST_W
;                CALL    CAL_TO_RD
;                SETB	SYDL_BIT
;                JMP     LCD_DIS_WG                             
;***************************************************
;2005.5.19 LCD显示VA  电压 
;***************************************************
LCD_DIS_VA:     MOV     R0,#LCD_1;8.16压缩修改
	        MOV     @R0,#V
	        CALL    LCD2_5_0  ;压缩程序05-12-06 LIHENG
	        MOV     DPH,#2
                MOV     DPL,#UA_L
                CALL    RD_VI
	        CALL    BYTE2_TO_LCD_DIS 
                ;SETB    DP_BIT
                RET                

;***************************************************
;2005.5.19 LCD显示IA  电流  
;***************************************************
LCD_DIS_IA:     MOV     R0,#LCD_1;8.16压缩修改
	        MOV     @R0,#1
	        CALL    LCD2_5_0  ;压缩程序05-12-06 LIHENG
	        MOV     DPH,#2
                MOV     DPL,#IA_L               	              	        
                CALL    RD_VI
	        CALL    BYTE2_TO_LCD_DIS 
                SETB    DP_BIT
                RET 
;***************************************************
;2005.5.19 LCD显示当前需量  
;***************************************************                              
;LCD_DIS_NOW_XL: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;	        CALL    LCD2_5_0  ;压缩程序05-12-06 LIHENG
;	        CALL    RD_NOW_Y_XL 	                                    
;LCD_XL1:        
;               MOV    RD_BUF0,RD_BUF1
;                MOV    RD_BUF1,RD_BUF2 
;              	CALL   BYTE2_TO_LCD_DIS 
;                SETB    DP_BIT
;                SETB    XL_BIT
;                SETB    KW_BIT
;                RET 
                
;***************************************************
;2005.5.19 LCD显示当前一分钟功率  
;***************************************************                              
;LCD_DIS_NOW_GL: MOV     R0,#LCD_1
;	        MOV     @R0,#10
;	        CALL    LCD2_5_0  ;压缩程序05-12-06 LIHENG
;	        MOV     DPH,#1
;	        MOV     DPL,#NOW_GL_L
;                CALL    DPTR_TO_RD4                
;                MOV     A,RD_BUF0
;                ADD     A,RD_BUF1
;                ADD     A,RD_BUF2
;                ADD     A,#'X'
;                CJNE    A,RD_BUF3,LCD_GL      
;		JMP     LCD_GL1		
		
;LCD_GL:         MOV    RD_BUF0,#0
;                MOV    RD_BUF1,#0
;                MOV    RD_BUF2,#0                                
;LCD_GL1:
;               MOV    RD_BUF0,RD_BUF1
;                MOV    RD_BUF1,RD_BUF2 
;                CALL   BYTE2_TO_LCD_DIS 
;                SETB    DP_BIT
;                SETB     KW_BIT
;                RET                                                                      
;************************************************************
; 显示版本号
;************************************************************
DISP_V: 	
                MOV     R0,#LCD_1
                MOV     @R0,#10 
                MOV     R0,#LCD_2
	        MOV     @R0,#MC_H 
		MOV     R0,#LCD_3
	        MOV     @R0,#MC_M
		MOV     R0,#LCD_4
	        MOV     @R0,#MC_L
                MOV     R0,#LCD_5
	        MOV     @R0,#10 
                MOV     R0,#LCD_6
	        MOV     @R0,#V
                MOV     R0,#LCD_7
	        MOV     @R0,#V_H
                MOV     R0,#LCD_8
	        MOV     @R0,#V_M                
                MOV     R0,#LCD_9
	        MOV     @R0,#V_L
	        SETB    DP_BIT
                RET                                                                		
;;****************************************
;2004.6.12 将显示数据进行分离以显示
;入口参数:RD_BUF0、1、2、3,BUF0为低字节
;出口参数:LCD_2...LCD_9,为6.2数据宽
;****************************************
BYTE4_TO_LCD_DIS:
                MOV	A,RD_BUF3
                ANL	A,#0F0H
                SWAP	A
                MOV     R0,#LCD_2
                MOV     @R0,A
                
                MOV     R0,#LCD_3
                ANL     RD_BUF3,#0FH
                MOV     @R0,RD_BUF3
                
BYTE3_TO_LCD_DIS:
                MOV	A,RD_BUF2
                ANL	A,#0F0H
                SWAP	A
                MOV     R0,#LCD_4
                MOV     @R0,A
                
                MOV     R0,#LCD_5
                ANL     RD_BUF2,#0FH
                MOV     @R0,RD_BUF2
                
BYTE2_TO_LCD_DIS:
                MOV	A,RD_BUF1
                ANL	A,#0F0H
                SWAP	A
                MOV     R0,#LCD_6
                MOV     @R0,A
                
                MOV     R0,#LCD_7
                ANL     RD_BUF1,#0FH
                MOV     @R0,RD_BUF1
BYTE1_TO_LCD_DIS:
                MOV	A,RD_BUF0
                ANL	A,#0F0H
                SWAP	A
                MOV     R0,#LCD_8
                MOV     @R0,A
                
                MOV     R0,#LCD_9
                ANL     RD_BUF0,#0FH
                MOV     @R0,RD_BUF0
                RET
;*************************************************
LOOP_R1_TO_R0:                              ;2005.5.20移动到此
        	MOV     A,@R1	
		MOV     @R0,A
		INC     R0
		INC     R1
		DJNZ    R7,LOOP_R1_TO_R0
		RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;05.9.8 LIHENG
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LCD_CLR:        CLR     H18_BIT
                MOV     LCD_8BIT,#0
                
		MOV	A,LCD_B10
		ANL	A,#00010000B      ;QDL   
		MOV	LCD_B10,A
		
		MOV	A,LCD_B11
		ANL	A,#10000001B      ;FF OFF  GJ  
		MOV	LCD_B11,A
		
		MOV	A,LCD_B12
		ANL     A,#00001100B     ; GZ  PROG
		MOV	LCD_B12,A 
	        RET
;************************************************
;压缩程序 05-12-06 LIHENG
;************************************************	        
LCD2_5_0:       MOV     R0,#LCD_2
	        MOV     @R0,#10
	        MOV     R0,#LCD_3
	        MOV     @R0,#10
	        MOV     R0,#LCD_4
	        MOV     @R0,#10
	        MOV     R0,#LCD_5
	        MOV     @R0,#10	        
	        RET
	        
                END                

⌨️ 快捷键说明

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