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

📄 huyuyang.asm

📁 汇编数字钟表非常不错的设计
💻 ASM
字号:
SECOND         EQU 60H 
MINITE         EQU 61H 
HOUR           EQU 62H 
HOURK          BIT P2.3
MINITEK        BIT P2.2 
SECONDK        BIT P2.1
DISPBUF        EQU 40H 
DISPBIT        EQU 48H 
T2SCNTA        EQU 49H 
T2SCNTB        EQU 4AH 
TEMP           EQU 4BH 

        ORG 00H
	LJMP START
	ORG 0BH	 
	LJMP INT_T0

    
 
		 
        

START:  MOV SECOND,#00H 
	MOV MINITE,#00H 
	MOV HOUR,#12 
        MOV DISPBIT,#00H 
        MOV T2SCNTA,#00H 
        MOV T2SCNTB,#00H 
        MOV TEMP,#0FEH 
        LCALL DISP 
        MOV TMOD,#01H 
        MOV TH0,#(65536-2000) / 256 
        MOV TL0,#(65536-2000) MOD 256 
        SETB TR0 
        SETB ET0 
        SETB EA 
WT:     JB SECONDK,NK1 
        LCALL DELY10MS 
        JB SECONDK,NK1 
        INC SECOND 
        MOV A,SECOND 
        CJNE A,#60,NS60 
        MOV SECOND,#00H 

NS60:   LCALL DISP 
        JNB SECONDK,$ 
NK1:    JB MINITEK,NK2 
        LCALL DELY10MS 
        JB MINITEK,NK2 
        INC MINITE 
        MOV A,MINITE 
        CJNE A,#60,NM60 
        MOV MINITE,#00H 
NM60:   LCALL DISP 
        JNB MINITEK,$ 
NK2:    JB HOURK,NK3 
        LCALL DELY10MS 
        JB HOURK,NK3 
        INC HOUR 
        MOV A,HOUR 
        CJNE A,#24,NH24 
        MOV HOUR,#00H 
NH24:   LCALL DISP 
        JNB HOURK,$ 
NK3:    LJMP WT 

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 
        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-2000) / 256 

        MOV TL0,#(65536-2000) MOD 256 

        MOV A,#DISPBUF 

        ADD A,DISPBIT 

        MOV R0,A 

        MOV A,@R0 

        MOV DPTR,#TABLE 

        MOVC A,@A+DPTR 

        MOV P0,A 

        MOV A,DISPBIT 

        MOV DPTR,#TAB 

        MOVC A,@A+DPTR 

        MOV P1,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,#05H,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 
;=================================================
     ; 延时子程序
     ;=============================882
     DELAY882: ;1.085x ((202x4)+5)=882
         MOV R7,#202
     DELAY882_A:
         NOP
         NOP
         DJNZ    R7,DELAY882_A
     RET
     
     ;=============================1000
     DELAY1000: ;1.085x ((229x4)+5)=999.285
         MOV R7,#229
     DELAY1000_A:
         NOP
         NOP
         DJNZ    R7,DELAY1000_A
     RET
     ;=============================2400
     DELAY2400: ;1.085x ((245x9)+5)=2397.85
         MOV R7,#245
     DELAY2400_A:
         NOP
         NOP
         NOP
         NOP
         NOP
        NOP
         NOP
         DJNZ    R7,DELAY2400_A
     RET

NEXT:   LCALL DISP 

DONE:   RETI 

TABLE:  DB  0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf
TAB:    DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH 

        END 

⌨️ 快捷键说明

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