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

📄 do_with_lcd_dis.asm

📁 基于PL3000芯片的单相复费率多功能电表的应用程序。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;************************************************************
;文档类型: 原代码 
;项目编号: 
;文档编号: 
;修订版本: v1.0
;生成日期: 2003.9.25
;文档作者: LI
;审    核: 
;************************************************************
;相关文档: 循显处理程序
;文档编号      说明 
;************************************************************
;修订版本: V5.0
;修订版本: 2005.6.4
;************************************************************
$INCLUDE	(RAML128.INC)
$INCLUDE	(RAMH128.INC)
$INCLUDE	(PL3200.INC)
$INCLUDE	(CONST.INC)
$INCLUDE	(IO.INC)
$INCLUDE	(RAM.INC)

CODE_REG	SEGMENT	CODE
RSEG		CODE_REG
PUBLIC          DO_WITH_LCD_DIS
PUBLIC          LCD_DIS_TEST
PUBLIC          LOOP_R1_TO_R0
PUBLIC          BYTE4_TO_LCD_DIS
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; 内容为10时,显示消隐
;为11时,显示"H";  为12时,显示"L"
;*******************************;调用子程序情况:
EXTRN   CODE(RD_SNO)           
EXTRN   CODE(RD_REV_BCD)   
;EXTRN   CODE(RD_JL_NOW_ZDL) 
EXTRN   CODE(RD_NOW_ZDL)             
EXTRN   CODE(RD_NOW_FL_INT)
EXTRN   CODE(RD_YMD)
;EXTRN   CODE(RD_AUTO_DATE)
EXTRN   CODE(RD_HMS)
EXTRN   CODE(RD_DIS_CRLB)
EXTRN   CODE(CAL_DL_SUM)
EXTRN   CODE(RD_VI)
EXTRN   CODE(RD_FLOAT_ZYG)
;EXTRN   CODE(RD_FLOAT_FYG)
;EXTRN   CODE(RD_NOW_Y_XL)
;EXTRN   CODE(RD_JL_LAST_FL_INT)
;EXTRN   CODE(RD_JL_LAST_ZDL)
EXTRN   CODE(CAL_TO_RD)
;EXTRN   CODE(RD_JL_NOW_FL_DL)
EXTRN   CODE(RD_NOW_FL_DL)
EXTRN   CODE(DPTR_TO_RD4 )
;****************************************               
DO_WITH_LCD_DIS:
                MOV      R0,#DIS_SEC_VALUE
                MOV      A,@R0
                JZ       DO_WITH_00
                
                DEC      @R0
                CJNE     @R0,#0,LOOP_DIS
DO_WITH_00:         
                MOV      R0,#DIS_CODE ;2004.6.26处理为循环显示
                INC      @R0
                SETB     RD24_FLAG    ;设置显示读24数据标志 05.9.8LIHENG
                MOV      R0,#DIS_SEC_VALUE
                MOV      @R0,#120
                JB       READ_BIT,DO_WITH_01
                MOV      R0,#DIS_SEC_VALUE
                MOV      @R0,#8 ;A
             
DO_WITH_01:      
                MOV      LCD_CTRL_B0,#0FFH 
                MOV      LCD_CTRL_B1,#0FFH
                MOV      LCD_CTRL_B2,#0FFH
                JB       READ_BIT,LOOP_DIS
                CALL     RD_DIS_CRLB
                MOV      LCD_CTRL_B0,RD_BUF0 ;*****li
                MOV      LCD_CTRL_B1,RD_BUF1 ;*****li
                MOV      LCD_CTRL_B2,RD_BUF2 ;*****li
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LOOP_DIS:        ;循显LCD
                MOV     R0,#DIS_CODE
                CJNE    @R0,#1,LOOP_DIS_02
                CALL    DISP_V        ;V版本号 上电显示
                RET                

LOOP_DIS_02:  
                MOV     R0,#DIS_CODE
                CJNE    @R0,#2,LOOP_DIS_03
                JNB     NOW_DATE_BIT,INC_CODE_03
                JNB     RD24_FLAG,NO_NEED_02
                CLR     RD24_FLAG
                CALL    LCD_CLR
                CALL    LCD_DIS_DATE        ;DATE 日期
NO_NEED_02:     RET                
INC_CODE_03:  
                MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_03:  
                MOV     R0,#DIS_CODE
                CJNE    @R0,#3,LOOP_DIS_04
                JNB     NOW_TIME_BIT,INC_CODE_04
                CALL    LCD_CLR
                CALL    LCD_DIS_TIME        ;TIME 时间
                RET               
INC_CODE_04:  
                MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_04:
                MOV     R0,#DIS_CODE
                CJNE    @R0,#4,LOOP_DIS_05
                JNB     ADDR_HL_BIT,INC_CODE_05 
                JNB     RD24_FLAG,NO_NEED_04
                CLR     RD24_FLAG
                CALL    LCD_CLR
                CALL    LCD_DIS_ADR012        ;地址低3字节
NO_NEED_04:     RET    
            
INC_CODE_05:  
                MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_05:
                MOV     R0,#DIS_CODE
                CJNE    @R0,#5,LOOP_DIS_06
                JNB     REV_BCD_BIT,INC_CODE_06
                JNB     RD24_FLAG,NO_NEED_05
                CLR     RD24_FLAG
                CALL    LCD_CLR
                CALL    LCD_DIS_REV         ;电表常数
NO_NEED_05:     RET
               
INC_CODE_06:   
                MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_06:
                MOV     R0,#DIS_CODE
                CJNE    @R0,#6,LOOP_DIS_07
                JNB     NOW_P_Z_BIT,INC_CODE_07
                JNB     RD24_FLAG,NO_NEED_06
                CLR     RD24_FLAG
                CALL    LCD_CLR
                CALL    LCD_DIS_NOW_PZ         ;当前有功总电量
NO_NEED_06:     RET 
                                            
INC_CODE_07:  
                MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_07:
                MOV     R0,#DIS_CODE
                CJNE    @R0,#7,LOOP_DIS_08
                JNB     NOW_P_F_BIT,INC_CODE_08 
                JNB     RD24_FLAG,NO_NEED_07
                CLR     RD24_FLAG
                CALL    LCD_CLR
                CALL    LCD_DIS_NOW_PF        ;当前有功峰电量
NO_NEED_07:     RET
                
INC_CODE_08:  
                MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_08:
                MOV     R0,#DIS_CODE
                CJNE    @R0,#8,LOOP_DIS_09
                JNB     NOW_P_P_BIT,INC_CODE_09
                JNB     RD24_FLAG,NO_NEED_08
                CLR     RD24_FLAG 
                CALL    LCD_CLR 
                CALL    LCD_DIS_NOW_PP         ;当前有功平电量
NO_NEED_08:     RET

INC_CODE_09:   
                MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_09:
                MOV     R0,#DIS_CODE
                CJNE    @R0,#9,LOOP_DIS_10
                JNB     NOW_P_G_BIT,INC_CODE_10
                JNB     RD24_FLAG,NO_NEED_09
                CLR     RD24_FLAG
                CALL    LCD_CLR
                CALL    LCD_DIS_NOW_PG         ;当前有功谷电量
NO_NEED_09:     RET

INC_CODE_10: 
                MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_10:
         ;       MOV     R0,#DIS_CODE
         ;       CJNE    @R0,#10,LOOP_DIS_11
         ;       JNB     NOW_F_Z_BIT,INC_CODE_11
         ;       JNB     RD24_FLAG,NO_NEED_10
         ;       CLR     RD24_FLAG
          ;      CALL    LCD_CLR
            ;    CALL    LCD_DIS_NOW_FZ         ;当前有功反总电量
NO_NEED_10: ;    RET

INC_CODE_11:;    MOV      R0,#DIS_CODE
             ;   INC      @R0
LOOP_DIS_11:
           ;     MOV     R0,#DIS_CODE
           ;     CJNE    @R0,#11,LOOP_DIS_12
           ;     JNB     NOW_F_F_BIT,INC_CODE_12
           ;     JNB     RD24_FLAG,NO_NEED_11
           ;     CLR     RD24_FLAG
           ;     CALL    LCD_CLR
            ;    CALL    LCD_DIS_NOW_FF         ;当前有功反峰电量
NO_NEED_11: ;    RET
               
INC_CODE_12:;    MOV      R0,#DIS_CODE
            ;    INC      @R0
LOOP_DIS_12:
            ;    MOV     R0,#DIS_CODE
            ;    CJNE    @R0,#12,LOOP_DIS_13
             ;   JNB     NOW_F_P_BIT,INC_CODE_13
            ;    JNB     RD24_FLAG,NO_NEED_12
            ;    CLR     RD24_FLAG
            ;    CALL    LCD_CLR
            ;    CALL    LCD_DIS_NOW_FP        ;当前有功反平电量
NO_NEED_12: ;    RET

INC_CODE_13:;    MOV      R0,#DIS_CODE
            ;    INC      @R0
LOOP_DIS_13:
           ;     MOV     R0,#DIS_CODE
           ;     CJNE    @R0,#13,LOOP_DIS_14
          ;      JNB     NOW_F_G_BIT,INC_CODE_14
          ;      JNB     RD24_FLAG,NO_NEED_13
          ;      CLR     RD24_FLAG
          ;      CALL    LCD_CLR
          ;      CALL    LCD_DIS_NOW_FG          ;当前有功反谷电量
NO_NEED_13: ;    RET

INC_CODE_14: ;   MOV      R0,#DIS_CODE
             ;   INC      @R0
LOOP_DIS_14:
             ;   MOV     R0,#DIS_CODE
             ;   CJNE    @R0,#14,LOOP_DIS_15
          ;      JNB     NOW_W_BIT,INC_CODE_15
          ;      JNB     RD24_FLAG,NO_NEED_14
          ;      CLR     RD24_FLAG
          ;      CALL    LCD_CLR
          ;      CALL    LCD_DIS_NOW_WZ         ;;当前无功总电量
NO_NEED_14:;     RET
                
INC_CODE_15: ;   MOV      R0,#DIS_CODE
             ;   INC      @R0
LOOP_DIS_15:
            ;    MOV     R0,#DIS_CODE
            ;    CJNE    @R0,#15,LOOP_DIS_16
            ;   CJNE    @R0,#10,LOOP_DIS_16
            ;    JNB     NOW_XL_BIT,INC_CODE_16
           ;     JNB     RD24_FLAG,NO_NEED_15
            ;   CLR     RD24_FLAG
            ;    CALL    LCD_CLR
            ;    CALL    LCD_DIS_NOW_XL         ;;当前月最大需量
NO_NEED_15: ;    RET 

INC_CODE_16: ;  MOV      R0,#DIS_CODE
             ;   INC      @R0
LOOP_DIS_16:
                MOV     R0,#DIS_CODE
               ;CJNE    @R0,#16,LOOP_DIS_17
               CJNE    @R0,#10,LOOP_DIS_17
                JNB     V_A_BIT,INC_CODE_17
                CALL    LCD_CLR
                CALL    LCD_DIS_VA         ;;当前电压
                RET

INC_CODE_17:    MOV      R0,#DIS_CODE
                INC      @R0
LOOP_DIS_17:
                MOV     R0,#DIS_CODE
                ;CJNE    @R0,#17,LOOP_DIS_18
                CJNE    @R0,#11,LOOP_DIS_18
                JNB     I_A_BIT,INC_CODE_18
                CALL    LCD_CLR
                CALL    LCD_DIS_IA         ;;当前电流
                RET


INC_CODE_18: ;   MOV      R0,#DIS_CODE
             ;   INC      @R0
LOOP_DIS_18:
            ;    MOV     R0,#DIS_CODE
               ;CJNE    @R0,#18,LOOP_DIS_19
            ;   CJNE    @R0,#13,LOOP_DIS_19
             ;   JNB     NOW_GL_BIT,INC_CODE_19
            ;    CALL    LCD_CLR
            ;    CALL    LCD_DIS_NOW_GL        ;;当前功率
            ;    RET

INC_CODE_19:  ;  MOV     R0,#DIS_CODE                               ;lxb
              ;  INC     @R0
LOOP_DIS_19:    
              ;  MOV     R0,#DIS_CODE
              ;  CJNE    @R0,#19,LOOP_DIS_20
           ;     JNB     SY_Z_BIT,INC_CODE_20
           ;     JNB     RD24_FLAG,NO_NEED_19
           ;     CLR     RD24_FLAG
           ;     CALL    LCD_CLR
           ;    CALL    LCD_DIS_SY_ZDL
NO_NEED_19: ;    RET

INC_CODE_20: ;  MOV     R0,#DIS_CODE                               ;lxb
             ;   INC     @R0
LOOP_DIS_20:    
            ;    MOV     R0,#DIS_CODE
            ;    CJNE    @R0,#20,LOOP_DIS_21
          ;     JNB     SY_F_BIT,INC_CODE_21
          ;      JNB     RD24_FLAG,NO_NEED_20
          ;      CLR     RD24_FLAG
          ;      CALL    LCD_CLR
          ;      CALL    LCD_DIS_SY_FDL
NO_NEED_20:;     RET
           
INC_CODE_21: ;  MOV     R0,#DIS_CODE                               ;lxb
             ;   INC     @R0
LOOP_DIS_21:    
             ;   MOV     R0,#DIS_CODE
             ;   CJNE    @R0,#21,LOOP_DIS_22
          ;      JNB     SY_P_BIT,INC_CODE_22
           ;     JNB     RD24_FLAG,NO_NEED_21
           ;     CLR     RD24_FLAG
           ;;     CALL    LCD_CLR
           ;     CALL    LCD_DIS_SY_PDL
NO_NEED_21:;     RET

INC_CODE_22: ;   MOV     R0,#DIS_CODE                               ;lxb
             ;   INC     @R0
LOOP_DIS_22:    
             ;   MOV     R0,#DIS_CODE
             ;   CJNE    @R0,#22,LOOP_DIS_23
           ;    JNB     SY_G_BIT,INC_CODE_23
           ;     JNB     RD24_FLAG,NO_NEED_22
           ;     CLR     RD24_FLAG
           ;     CALL    LCD_CLR
           ;     CALL    LCD_DIS_SY_GDL
NO_NEED_22: ;    RET
   
INC_CODE_23:  ;  MOV     R0,#DIS_CODE                               ;lxb
              ;  INC     @R0
LOOP_DIS_23:    
             ;   MOV     R0,#DIS_CODE
             ;   CJNE    @R0,#23,LOOP_DIS_24
          ;      JNB     SY_WG_BIT,INC_CODE_24
          ;      JNB     RD24_FLAG,NO_NEED_23
          ;      CLR     RD24_FLAG
           ;     CALL    LCD_CLR
           ;     CALL    LCD_DIS_SY_WGDL
NO_NEED_23:;      RET              
                
INC_CODE_24:                 
LOOP_DIS_24:                                        
                MOV     R0,#DIS_CODE
                MOV     @R0,#1                                                        
                JMP     DO_WITH_00
               
;****************************************
;2004.6.26 测试为LCD全部点亮自检  
;****************************************
LCD_DIS_TEST:   MOV     EXT_ADR,#0FEH
                SETB    LED_LCD
                MOV     R6,#0
                MOV     R7,#12
DIS_TEST:         
                MOV     EXT_ADR,R6      
                MOV     EXT_DAT,#0FFH
                INC     R6
                DJNZ    R7,DIS_TEST
                RET
;****************************************
;2004.6.26 LCD显示日期:年月日  当前费率号 
;****************************************
LCD_DIS_DATE:   MOV     R0,#LCD_1
	        MOV     @R0,#10
		MOV     R0,#LCD_2
	        MOV     @R0,#2         ;20XX年
		MOV     R0,#LCD_3
	        MOV     @R0,#0 
		CALL    RD_YMD
		CALL    BYTE3_TO_LCD_DIS
                
                SETB	DATE_BIT
                JMP     DATE_TIME_SAME
;****************************************
;2004.6.26 LCD显示时间:时分秒  当前费率号
;****************************************
LCD_DIS_TIME:   MOV     R0,#LCD_1

⌨️ 快捷键说明

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