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

📄 可数字设置定时的数字钟3.asm

📁 时间计数器
💻 ASM
字号:
SECOND  EQU 30H
MINITE  EQU 31H
HOUR    EQU 32H
KEYBUF  EQU 30H
DISPBUF EQU 40H
DISPBIT EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
        ORG 00H
        LJMP START
        ORG  0BH
        LJMP INT_T0
START: MOV KEYBUF,#0
       MOV SECOND,#00H
       MOV MINITE,#00H
       MOV HOUR,#12
       MOV DISPBIT,#00H
       MOV T2SCNTA,#00H
       MOV T2SCNTB,#00H
       LCALL DISP
       MOV TMOD,#01H
       MOV TH0,#(65536-1000)/256
       MOV TL0,#(65536-1000)%256
       SETB TR0
       SETB ET0
       SETB EA
WAIT:  MOV P2,#0FFH
       CLR P2.4
       MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JZ NOKEY1
       LCALL DELY10MS
       MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JZ NOKEY1
       MOV A,P2
       ANL A,#0FH
       CJNE A,#0EH,NK1
       MOV KEYBUF,#1
       LJMP DK1
NK1:   CJNE A,#0DH,NK2
       MOV KEYBUF,#2
       LJMP DK1
NK2:   CJNE A,#0BH,NK3
       MOV KEYBUF,#3
       LJMP DK1
NK3:   CJNE A,#07H,NK4
       MOV KEYBUF,#10  ;A=up
       LJMP DK1
NK4:   NOP
DK1:   MOV A,KEYBUF
       MOV DPTR,#TABLE
       MOVC A,@A+DPTR
       MOV P0,A
DK1A:  MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JNZ DK1A
NOKEY1:MOV P2,#0FFH
       CLR P2.5
       MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JZ NOKEY2
       LCALL DELY10MS
       MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JZ NOKEY2
       MOV A,P2
       ANL A,#0FH
       CJNE A,#0EH,NK5
       MOV KEYBUF,#4
       LJMP DK2
NK5:   CJNE A,#0DH,NK6
       MOV KEYBUF,#5
       LJMP DK2
NK6:   CJNE A,#0BH,NK7
       MOV KEYBUF,#6
       LJMP DK2
NK7:   CJNE A,#07H,NK8
       MOV KEYBUF,#11  ;B=down
       LJMP DK2
NK8:   NOP
DK2:   MOV A,KEYBUF
       MOV DPTR,#TABLE
       MOVC A,@A+DPTR
       MOV P0,A
DK2A:  MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JNZ DK2A
NOKEY2:MOV P2,#0FFH
       CLR P2.6
       MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JZ NOKEY3
       LCALL DELY10MS
       MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JZ NOKEY3
       MOV A,P2
       ANL A,#0FH
       CJNE A,#0EH,NK9
       MOV KEYBUF,#7
       LJMP DK3
NK9:   CJNE A,#0DH,NK10
       MOV KEYBUF,#8
       LJMP DK3
NK10:  CJNE A,#0BH,NK11
       MOV KEYBUF,#9
       LJMP DK3
NK11:  CJNE A,#07H,NK12
       MOV KEYBUF,#12   ;C=2ND
       LJMP DK3
NK12:  NOP
DK3:   MOV A,KEYBUF
       MOV DPTR,#TABLE
       MOVC A,@A+DPTR
       MOV P0,A
DK3A:  MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JNZ DK3A
NOKEY3:MOV P2,#0FFH
       CLR P2.7
       MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JZ NOKEY4
       LCALL DELY10MS
       MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JZ NOKEY4
       MOV A,P2
       ANL A,#0FH
       CJNE A,#0EH,NK13
       MOV KEYBUF,#15   ;F=clear
       LJMP DK4
NK13:  CJNE A,#0DH,NK14
       MOV KEYBUF,#0
       LJMP DK4
NK14:  CJNE A,#0BH,NK15
       MOV KEYBUF,#14   ;E=help
       LJMP DK4
NK15:  CJNE A,#07H,NK16
       MOV KEYBUF,#13   ;D=enter
       LJMP DK4
NK16:  NOP
DK4:   MOV A,KEYBUF
       MOV DPTR,#TABLE
       MOVC A,@A+DPTR
       MOV P0,A
DK4A:  MOV A,P2
       ANL A,#0FH
       XRL A,#0FH
       JNZ DK4A
NOKEY4:LJMP WAIT
DELY10MS:
       MOV R6,#10
D1:    MOV R7,#248
       DJNZ R7,$
       DJNZ R6,D1
       RET
DISP:   MOV A,#DISPBUF
        ADD A,#8
        DEC A
        MOV R1,A 	;保存间接寻址到R1
        MOV A,HOUR	;取出小时
        MOV B,#10
        DIV AB
        MOV @R1,A	;存入十位
        DEC R1
        MOV A,B
        MOV @R1,A	;存入个位
        DEC R1
        MOV A,#10
        MOV @R1,A
        DEC R1
        MOV A,MINITE	;分钟处理
        MOV B,#10
        DIV AB
        MOV @R1,A
        DEC R1
        MOV A,B
        MOV @R1,A
        DEC R1
        MOV A,#10
        MOV @R1,A
        DEC R1
        MOV A,SECOND	;秒处理
        MOV B,#10
        DIV AB
        MOV @R1,A
        DEC R1
        MOV A,B
        MOV @R1,A
        DEC R1
        RET
INT_T0:MOV TH0,#(65536-1000)/256
       MOV TL0,#(65536-1000)%256
       MOV A,#DISPBUF
       ADD A,DISPBIT
       MOV R0,A
       MOV A,@R0
       MOV DPTR,#TABLE
       MOVC A,@A+DPTR
       MOV P1,A
       MOV A,DISPBIT
       MOV DPTR,#TAB
       MOVC A,@A+DPTR
       MOV P3,A
       INC DISPBIT
       MOV A,DISPBIT
       CJNE A,#08H,KNA
       MOV DISPBIT,#00H
KNA:   INC T2SCNTA
       MOV A,T2SCNTA
       CJNE A,#100,DONE
       MOV T2SCNTA,#00H
       INC T2SCNTB
       MOV A,T2SCNTB
       CJNE A,#10H,DONE
       MOV T2SCNTB,#00H
       INC SECOND
       MOV A,SECOND
       CJNE A,#60,NEXT
       MOV SECOND,#00H
       INC MINITE
       MOV A,MINITE
       CJNE A,#60,NEXT
       MOV MINITE,#00H
       INC HOUR
       MOV A,HOUR
       CJNE A,#24,NEXT
       MOV HOUR,#00H
NEXT:  LCALL DISP
DONE:  RETI
TABLE:  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
        DB 77H,7CH,39H,5EH,79H,71H,40H
TAB:    DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
        END

⌨️ 快捷键说明

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