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

📄 ok.txt

📁 89S51平台
💻 TXT
📖 第 1 页 / 共 2 页
字号:
         CJNE A,#3,NOT_DELL_LED4
         JB S_Flash,NOT_DELL_LED4
         MOV A,#10
         RET
NOT_DELL_LED4:
         MOV R1,SHOW_PC
         INC R1
         INC R1               
         MOV A,@R1
         DIV AB                  
         RET
DELL_LED5: ;-------------------------------------------------DELL_LED5
         MOV A,SHOW_MODEL
         CJNE A,#3,NOT_DELL_LED5
         JB S_Flash,NOT_DELL_LED5
         MOV A,#10
         RET
NOT_DELL_LED5:
         MOV R1,SHOW_PC
         INC R1
         INC R1         
         MOV A,@R1
         DIV AB
         MOV A,B
         RET
;*****************************
;***********************TABLE************************
LED_DELL_DATA : DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;'0,1,2,3,4,5,6,7,8,9,-'
LED_DELL_BIT:   DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH         
         
       
;*****************************
;**********DELAY PROGRAM****************
DELAY3:
         MOV DELAY_ADDR1,#1
DELAY4:
         MOV DELAY_ADDR2,#2
DELAY5:
         MOV  DELAY_ADDR3,#0
         DJNZ DELAY_ADDR3,$
         DJNZ DELAY_ADDR2,DELAY5
         DJNZ DELAY_ADDR1,DELAY4
         RET

              

;***************************************** 
;*********DELLSET PROGRAM***************
DELLSET:
;-----------------------------------DELL_KEY3
        CJNE A,#3,GO_NEXT4
        DJNZ R3,DELL_EXIT
        MOV  R3,#2
        SJMP DELL_EXIT
GO_NEXT4:
;----------------------------------------------DELL_KEY4
        CJNE A,#4,G0_NEXT5
        SJMP DELL_EXIT
        
        
G0_NEXT5:;------------------------------------DELL_KEY5
        CJNE A,#5,G0_NEXT6
        
G0_NEXT6:;-------------------------------------DELL_KEY7                                                   
        CJNE A,#6,GO_NEXT7
        CLR  DELLFLAG
        MOV  R3,#0
        SJMP DELL_EXIT
;----------------------------------------------DELL_KEY8
GO_NEXT7:
        CJNE A,#7,DELL_EXIT
        CLR  DELLFLAG
        MOV  R3,#0
        
DELL_EXIT:               
       RET

;********TIMERCOMPARE PROGRAM*********
TIMERCMP:
RET
;****************
;---------------------------------------------------
GETKEY:                             ;PRESS A KEY THEN GET A FIGURE TO ACC
          MOV A,P1
          CJNE A,#0FEH,GOTO_KEY2    ;DO KEY 1 (TIME SET)PRESS
          MOV A,#1                  ;THEN GET '1' TO A
          RET
GOTO_KEY2:
          CJNE A,#0FDH,GOTO_KEY3    ; DO KEY 2 (DELL SET) PRESS
          MOV A,#2                  ; THEN GET '2' TO A
          RET
GOTO_KEY3:
          CJNE A,#0FBH,GOTO_KEY4    ; DO KEY 3 (MOVE BIT) PRESS
          MOV A,#3                  ; THEN GET '3' TO A
          RET
GOTO_KEY4:
          CJNE A,#0F7H,GOTO_KEY5    ; DO KEY 4(SUBT) PRESS
          MOV A,#4                  ; THEN GET '4' TO A
          RET
GOTO_KEY5:
          CJNE A,#0EFH,GOTO_KEY7   ;  DO KEY 5 (ADD)PRESS
          MOV A,#5                  ; THEN GET '5' TO A
          RET

GOTO_KEY7:
          CJNE A,#0BFH,GOTO_KEY8    ; DO KEY 7 (OK) PRESS
          MOV A,#6                 ; THEN GET '6' TO A
          RET
GOTO_KEY8:
          CJNE A,#7FH,KEY_EXIT      ; DO KEY 8 (CANCEL) PRESS
          MOV A,#7                  ;  THEN GET '7' TO A
          RET
KEY_EXIT:
          MOV A,#0                  ;NONE KEY PRESS
          RET                       ;RETURN
;---------------------------------------------------
INT_T1:                         ;INT_T1
        PUSH    DPH             ;PROTECT DATA
        PUSH    DPL
        PUSH    ACC
        PUSH    PSW
        CLR     TR1
        MOV     TL1,#0B0H        ;50mS
        MOV     TH1,#3CH
        SETB    TR1
        MOV     A,TIMECOUNT
        CJNE    A,#10,COUNT_EXIT
        MOV     TIMECOUNT,#0
        CPL     S_Flash
        MOV     C,S_Flash
        MOV     P3.1,C
        JB      S_Flash,COUNT_EXIT
        MOV     A,SECOND0
        CJNE    A,#9H,SEC0_CHANG  ;IS SECOND HIGH BYTE EQUATE WITH 9 ?
        MOV     SECOND0,#0
        MOV     A,SECOND1
        CJNE    A,#5H,SEC1_CHANG  ;IS SECOND HIGH BYTE EQUATE WITH 5 ?
        MOV     SECOND1,#0
        MOV     A,MINUTER0
        CJNE    A,#9H,MIN0_CHANG  ;IS SECOND HIGH BYTE EQUATE WITH 9 ?
        MOV     MINUTER0,#0
        MOV     A,MINUTER1
        CJNE    A,#5H,MIN1_CHANG  ;IS SECOND HIGH BYTE EQUATE WITH 5 ?
        MOV     MINUTER1,#0
        MOV     A,HOUR0
        CJNE    A,#3H,HOU0_CHANG    ;IS SECOND HIGH BYTE EQUATE WITH 3 ?
        MOV     HOUR0,#0
        MOV     A,HOUR1
        CJNE    A,#2H,HOU1_CHANG    ;IS SECOND HIGH BYTE EQUATE WITH 2 ?
        MOV     HOUR1,#0
HOU1_CHANG:
        INC     HOUR1           ;HOUR HIGH BYTE ADD 1
        SJMP    COUNT_EXIT
HOU0_CHANG:
        INC     HOUR0            ;HOUR LOW BYTE ADD 1
        SJMP    COUNT_EXIT
MIN1_CHANG:
        INC     MINUTER1           ;MINUTE HIGH BYTE ADD 1
        SJMP    COUNT_EXIT
MIN0_CHANG:
        INC     MINUTER0           ;MINUTE LOW BYTE ADD 1
        SJMP    COUNT_EXIT
SEC1_CHANG:
        INC     SECOND1          ;SECOND HIGH BYTE ADD 1
        SJMP    COUNT_EXIT
SEC0_CHANG:
        INC     SECOND0          ;SECOND ADD 1

COUNT_EXIT:
        INC     TIMECOUNT
        POP     PSW
        POP     ACC
        POP     DPL
        POP     DPH
        RETI                    ;RETURN AND CLEAR SIGNAL
;;---------------------------------------------------
;***MODEL0 : 正常显示时间模式
;***MODEL1 : 秒显示一下时间,显示一下" -- "
;***MODEL2 : 分显示一下时间,显示一下" -- "
;***MODEL3 : 小时显示一下时间,显示一下" -- "
;*********TIME DISPLAY MAJOR PROGRAM**********************
DISPLAY:
        MOV R2,#6
ROTATE_SCAN:
        MOV A,R2
        LCALL GET_LED_DATA
        MOV DPTR,#LED_DATA         ;DIPLAY DATA
        MOVC A,@A+DPTR
        MOV P2,0FFH
        MOV P0,A                  ;SCAN FROM SECOND0 TO HOUR1
        MOV A,R2
        DEC A
        MOV DPTR,#LED_DATA_BIT
        MOVC A,@A+DPTR
        MOV P2,A
        LCALL DELAY
        DJNZ R2,ROTATE_SCAN
        MOV P2,#0FFH
        RET

;****************************

GET_LED_DATA:
        MOV DPTR,#TABLE
        DEC A                  ;A-1
        RL A                   ;A*2
        JMP @A+DPTR
TABLE:
        SJMP SHOW_LED5         ;TO SHOW HOUR HIGH BIT
        SJMP SHOW_LED4
        SJMP SHOW_LED3
        SJMP SHOW_LED2
        SJMP SHOW_LED1
        SJMP SHOW_LED0         ;FROM SHOW SECOND LOW BIT

SHOW_LED0: ;-------------------------------------------------TIME_LED0
         MOV A,SHOW_MODEL
         CJNE A,#1,NOT_SHOW_LED0
         JB S_Flash,NOT_SHOW_LED0
         MOV A,#10
         RET
NOT_SHOW_LED0:
         MOV R0,SHOW_PC
         MOV A,@R0
         RET

SHOW_LED1: ;-------------------------------------------------TIME_LED1
         MOV A,SHOW_MODEL
         CJNE A,#1,NOT_SHOW_LED1
         JB S_Flash,NOT_SHOW_LED1
         MOV A,#10
         RET
NOT_SHOW_LED1:
         MOV R0,SHOW_PC
         INC R0
         MOV A,@R0
         RET
SHOW_LED2: ;-------------------------------------------------TIME_LED2
         MOV A,SHOW_MODEL
         CJNE A,#2,NOT_SHOW_LED2
         JB S_Flash,NOT_SHOW_LED2
         MOV A,#10
         RET
NOT_SHOW_LED2:
         MOV R0,SHOW_PC
         INC R0
         INC R0
         MOV A,@R0
         RET
SHOW_LED3: ;-------------------------------------------------TIME_LED3
         MOV A,SHOW_MODEL
         CJNE A,#2,NOT_SHOW_LED3
         JB S_Flash,NOT_SHOW_LED3
         MOV A,#10
         RET
NOT_SHOW_LED3:
         MOV R0,SHOW_PC
         INC R0
         INC R0
         INC R0
         MOV A,@R0
         RET
SHOW_LED4: ;-------------------------------------------------TIME_LED4
         MOV A,SHOW_MODEL
         CJNE A,#3,NOT_SHOW_LED4
         JB S_Flash,NOT_SHOW_LED4
         MOV A,#10
         RET
NOT_SHOW_LED4:
         MOV R0,SHOW_PC
         INC R0
         INC R0
         INC R0
         INC R0
         MOV A,@R0
         RET
SHOW_LED5: ;-------------------------------------------------TIME_LED5
         MOV A,SHOW_MODEL
         CJNE A,#3,NOT_SHOW_LED5
         JB S_Flash,NOT_SHOW_LED5
         MOV A,#10
         RET
NOT_SHOW_LED5:
         MOV R0,SHOW_PC
         INC R0
         INC R0
         INC R0
         INC R0
         INC R0
         MOV A,@R0
         RET
;*****************************
;**********DELAY PROGRAM****************
DELAY:
         MOV DELAY_ADDR1,#1
DELAY2:
         MOV DELAY_ADDR2,#2
DELAY1:
         MOV  DELAY_ADDR3,#0
         DJNZ DELAY_ADDR3,$
         DJNZ DELAY_ADDR2,DELAY1
         DJNZ DELAY_ADDR1,DELAY2
         RET


;***********TABLE**************
LED_DATA_BIT:     DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH    ;SECOND LOW BIT HOUR,SECOND HIGH BIT
                                                      ;MINUTER LOW BIT,MINUTER HIGH BIT
                                                      ;HOUR HIGH BIT,HOUR LOW BIT
LED_DATA:         DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H ;'0,1,2,3,4,5,6,7,8,9,-'

⌨️ 快捷键说明

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