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

📄 lcd_g7.asm

📁 国产变频器键盘源程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
                CLR     P1.1
                AJMP    DIS_LOOP1
 DIS_NEXT12:    CJNE    R3,#03H,DIS_NEXT13
                MOV     A,#0FFH
                MOV     P0,A
                SETB    P1.1
                CLR     P1.2
                AJMP    DIS_LOOP1 
 DIS_NEXT13:    MOV     A,#0FFH
                MOV     P0,A
                SETB    P1.2
                CLR     P1.3
                AJMP    DIS_LOOP1 
DIS_NEXT10:     MOV     A,#0FFH
                MOV     P0,A 
                MOV     R3,#00H
                SETB    P1.3
                CLR     P1.4                                
                MOV     A,42H
                MOV     P0,A
                JNB     FLAG3,DIS_NEXT3
                MOV     R7,Counter 
                MOV     A,BUFF5
                CJNE    A,#34H,DIS_NEXT5
                CJNE    R7,#50H,DIS_NEXT3
                SETB    FLAG4
                AJMP    DIS_NEXT6
DIS_NEXT5:      CJNE    R7,#60H,DIS_NEXT3
                SETB    FLAG4
                AJMP    DIS_NEXT3
DIS_NEXT6:      MOV     A,#0FFH
                MOV     P0,A                                  
                DEC     Counter
                MOV     R5,Counter
                CJNE    R5,#00H,DIS_NEXT3
                CLR     FLAG4
DIS_NEXT3:      RET
                                             
RX_DATA:        PUSH    PSW
                PUSH    ACC
                PUSH    DPH
                PUSH    DPL                
                ANL     PSW,#0E7H
                SETB    RS0
                SETB    RS1
                MOV     A,SBUF
                MOV     R5,62H
                JNB     FLAG19,RX_NEXT2
                CJNE    A,#7EH,RX_NEXT0
                CJNE    R5,#12H,RX_NEXT1
                AJMP    RX_NEXT2
RX_NEXT0:       CJNE    R5,#12H,RX_NEXT2
                AJMP    RX_NEXT4
RX_NEXT1:       MOV     R5,#12H
                MOV     63H,#80H
RX_NEXT2:       MOV     R0,63H
                MOV     @R0,A
                INC     R0
                MOV     63H,R0
                DJNZ    62H,RX_NEXT4
                MOV     62H,#12H 
                MOV     63H,#80H
                SETB    FLAG13
RX_NEXT4:       POP     DPL
                POP     DPH
                POP     ACC
                POP     PSW                               
                RET     
                     
CRX_DATA:       PUSH    PSW
                ANL     PSW,#0E7H
                SETB    RS1
                SETB    RS0
                CLR     FLAG13
                ACALL   PASS_DATA1                
                MOV     R0,#93H            
                MOV     R2,#0EH
                MOV     A,#00H
CRX_LOOP0:      ADD     A,@R0
                INC     R0
                DJNZ    R2,CRX_LOOP0
                MOV     R2,A                                 
                MOV     A,@R0            
                CLR     C
                SUBB    A,#30H
                JNB     ACC.4,CRX_NEXT1
                SUBB    A,#07H
CRX_NEXT1:      MOV     64H,A
                INC     R0
                MOV     A,@R0
                CLR     C
                SUBB    A,#30H
                JNB     ACC.4,CRX_NEXT3
                SUBB    A,#07H
CRX_NEXT3:      SWAP    A                
                MOV     R0,#64H
                XCHD    A,@R0
                MOV     64H,R2
                SWAP    A              
                CJNE    A,64H,CRX_1
                ACALL   PASS_DATA2
                ACALL   SELECT
                ACALL   COMPUTE
                ACALL   LED_LIGHT
                ACALL   CHECK
                AJMP    CRX_END               
CRX_1:          SETB    FLAG19
CRX_END:        POP     PSW
                RET                                      

CHECK:          MOV     A,BUFF5
                CJNE    A,#31H,CHECK_NEXT0                 
                MOV     5AH,#00H
                SETB    FLAG27
                CLR     FLAG25
                CLR     FLAG28
                CLR     FLAG46
                AJMP    CHECK_END 
CHECK_NEXT0:    CJNE    A,#32H,CHECK_NEXT4          
                SETB    FLAG24
                MOV     5AH,#02H
                CLR     FLAG25
                CLR     FLAG28                
                AJMP    CHECK_END                               
CHECK_NEXT4:    CJNE    A,#33H,CHECK_NEXT7
                SETB    FLAG26
                MOV     5AH,#03H
                CLR     FLAG28
                CLR     FLAG25                
                AJMP    CHECK_END
CHECK_NEXT7:    CJNE    A,#34H,CHECK_NEXT1
                SETB    FLAG28
                CLR     FLAG25
                CLR     FLAG27
                SETB    FLAG3               
                MOV     5AH,#01H
                AJMP    CHECK_END
CHECK_NEXT1:    CJNE    A,#36H,CHECK_END
                SETB    FLAG28
                SETB    FLAG25
                CLR     FLAG27
                MOV     5AH,#01H
                CLR     FLAG46
CHECK_END:      RET  

COMPUTE:        JNB     FLAG46,COMPUTE_START
                MOV     A,BUFF9
                CJNE    A,#30H,COMPUTE_NEXT0
                LCALL   TEST_CONTENT
                AJMP    R_END
COMPUTE_NEXT0:  CJNE    A,#31H,COMPUTE_START
                AJMP    R_END
COMPUTE_START:  MOV     R0,#39H
                MOV     R1,#46H
                MOV     R4,#04H             
CRX_LOOP1:      MOV     A,@R0
                MOV     R7,A
                CJNE    A,#20H,CRX_2
                MOV     A,#0FFH
                AJMP    CRX_3 
CRX_2:          ANL     A,#70H
                CJNE    A,#30H,R_4
                MOV     A,R7
                ANL     A,#0FH
                MOV     DPTR,#TAB1
                MOVC    A,@A+DPTR
                MOV     R6,A
                MOV     A,R7
                JNB     ACC.7,R_5 
                MOV     A,R6
                CLR     ACC.7
                AJMP    CRX_3
R_5:            MOV     A,R6
                AJMP    CRX_3
R_4:            MOV     A,R7
                CLR     C
                SUBB    A,#41H 
                MOV     DPTR,#TAB2
                MOVC    A,@A+DPTR            
CRX_3:          MOV     @R1,A
                INC     R0
                DEC     R1
                DJNZ    R4,CRX_LOOP1
R_END:          RET                     

LED_LIGHT:      JNB     FLAG46,LIGHT_START
                AJMP    LIGHT_END
LIGHT_START:    MOV     A,@R0
                CLR     C
                SUBB    A,#30H
                JNB     ACC.4,LIGHT_NEXT0
                SUBB    A,#07H                
LIGHT_NEXT0:    MOV     R4,A             
                INC     R0
                CLR     C
                MOV     A,@R0
                SUBB    A,#30H
                JNB     ACC.4,LIGHT_NEXT1
                SUBB    A,#07H
LIGHT_NEXT1:    ANL     A,#0FH
                MOV     R1,A
                MOV     A,R4
                ANL     A,#0FH               
                SWAP    A
                ORL     A,R1             
                MOV     42H,A
LIGHT_END:      RET


PASS_DATA1:     MOV     R1,#92H
                MOV     R0,#80H
                MOV     R2,#12H
PASS_LOOP1:     MOV     A,@R0
                MOV     @R1,A
                INC     R0
                INC     R1
                DJNZ    R2,PASS_LOOP1
                RET
                     
PASS_DATA2:       CLR     FLAG19 
                  MOV     R0,#92H
                  MOV     R1,#30H
                  MOV     R2,#12H
PASS_LOOP0:       MOV     A,@R0
                  MOV     @R1,A
                  INC     R0
                  INC     R1 
                  DJNZ    R2,PASS_LOOP0
                  JNB     FLAG16,PASS_DATA2_END               
                  MOV     A,BUFF5
                  CJNE    A,#31H,PASS_DATA2_END 
                  SETB    FLAG3 
PASS_DATA2_END:   RET
                     
SELECT:         MOV     A,BUFF5
                CJNE    A,#32H,SELECT_NEXT0
                JB      FLAG17,SELECT_NEXT1
                SETB    FLAG17 
                SETB    FLAG2 
                CLR     FLAG3
                CLR     FLAG18
                CLR     FLAG27
                CLR     FLAG21        ;ADD
;                CLR     FLAG46
                AJMP    SELECT_NEXT1
SELECT_NEXT0:   CLR     FLAG17
                CJNE    A,#33H,SELECT_NEXT1
                JB      FLAG18,SELECT_NEXT3
                SETB    FLAG18
                SETB    FLAG16
                SETB    FLAG2
                CLR     FLAG27
;                CLR     FLAG46
                AJMP    SELECT_NEXT3
SELECT_NEXT1:   CLR     FLAG18
                CLR     FLAG21
                CJNE    A,#34H,SELECT_NEXT2
                JB      FLAG22,SELECT_NEXT3
                SETB    FLAG22
                SETB    FLAG2
;                CLR     FLAG46
                AJMP    SELECT_NEXT3   
SELECT_NEXT2:   CJNE    A,#35H,SELECT_NEXT4
                SETB    FLAG46 
                CLR     FLAG28
                CLR     FLAG26
                CLR     FLAG27
                CLR     FLAG24
                CLR     FLAG17
                CLR     FLAG18
                CLR     FLAG25
                MOV     A,BUFF9
                CJNE    A,#31H,SELECT_NEXT4
                JNB     FLAG2,SELECT_NEXT4
                MOV     46H,#0FFH
                MOV     45H,#0FFH
                MOV     42H,#0FFH 
SELECT_NEXT4:   CLR     FLAG22
SELECT_NEXT3:   ACALL   HD
                RET
                                           
TX_DATA:         PUSH   PSW
                 ANL    PSW,#0E7H
                 SETB   RS1
                 CLR    FLAG12 
                 CJNE   R7,#12H,TX_1                 
                 MOV    BUFF10,#30H
                 MOV    BUFF11,#30H
                 MOV    BUFF12,#30H
                 MOV    BUFF13,#30H
                 MOV    BUFF14,#30H
                 MOV    BUFF15,#30H
                 MOV    BUFF6,#30H
                 MOV    BUFF4,#30H                  
                 MOV    R0,#31H                  
                 MOV    R5,#0DH 
                 MOV    A,@R0                  
 TX_LOOP1:       INC    R0
                 ADD    A,@R0                  
                 DJNZ   R5,TX_LOOP1
                 MOV    R6,A
                 MOV    R5,#02H
                 MOV    R1,#BUFF16
                 SWAP   A
 TX_LOOP2:       ANL    A,#0FH
                 CLR    C
                 SUBB   A,#0AH
                 JNC    TX_NEXT0
                 ADD    A,#0AH
                 ORL    A,#30H
                 AJMP   TX_NEXT3 
TX_NEXT0:        ADD    A,#41H                                  
TX_NEXT3:        MOV    @R1,A                 
                 MOV    A,R6
                 INC    R1
                 DJNZ   R5,TX_LOOP2               
                 MOV    R0,#30H  
TX_1:            MOV    A,@R0
                 MOV    SBUF,A                  
                 INC    R0
                 POP    PSW                 
                 RET

 IE_SLECTION:   JB      TI,TX_CLR
                LCALL   RX_DATA
                CLR     RI
                AJMP    IE_END
 TX_CLR:        PUSH    PSW
                PUSH    ACC
                PUSH    DPH
                PUSH    DPL
                ANL     PSW,#0E7H
                SETB    RS1
                SETB    FLAG12
                DJNZ    R7,TX_END
                MOV     R7,#12H                 
                CLR     FLAG1                 
 TX_END:        POP     DPL
                POP     DPH
                POP     ACC
                POP     PSW
                CLR     TI

⌨️ 快捷键说明

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