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

📄 数码时钟.asm

📁 经典的电子数码时钟程序
💻 ASM
字号:
;*****本时钟是通过四位数码管显示的,所以只能显示时和分中间为秒
;*****可以通个3和7进行时和分的连续时间调整.(时间显示很精确的喔)
	  DI_DA DATA 20H	 ;计数
	  SEC DATA 21H		 ;秒
	  MIN DATA 22H		 ;分
	  HOUR DATA 23H		 ;时
	  MIN_ BIT P1.1		  ;时间调整,可以修改口
	  HOUR_ BIT P1.0
	  ORG 0000H
	  AJMP MAIN
	  ORG 000BH	    ;50ms定时入口 (T0)
	  LJMP CLOCK	;50ms定时中断程序入口地址
	  ORG 0030H
MAIN: MOV SP,#60H
      MOV TMOD,#01H
	  MOV TL0,#0B0H
	  MOV TH0,#3CH
	  MOV DI_DA,#00H
	  MOV SEC,#00H
	  MOV MIN,#00H
	  MOV HOUR,#00H
	  SETB ET0
	  SETB TR0
	  MOV 7FH,#00H
	  MOV 7EH,#00H
	  MOV 7DH,#00H
	  MOV 7CH,#00H
	  SETB EA
BEGIN:  MOV P1,#0FH
        MOV A,P1
		CJNE A,#0FH,NEXT
		JB 2FH.0,QUIT1	   ;2FH.0判断秒闪烁标致位
		MOV P2,#81H
		MOV P0,#80H
		JMP QUIT2
QUIT1:  MOV P2,#81H
        MOV P0,#00H
QUIT2:  ACALL DEL8MS
        ACALL CONV		 ;调用计时转换
		ACALL ITX		 ;调用显示
	    AJMP BEGIN
NEXT:   ACALL KEY
        AJMP BEGIN
;*******键盘
KEY:    ACALL DEL8MS
        ACALL DEL8MS
MIN_KEY:  JB MIN_,HOUR_KEY
MIN_ADJ:  CLR C
          MOV A,MIN
		  INC A
		  DA A
		  CJNE A,#60H,X1
		  CLR A
X1:       MOV MIN,A
          MOV 2EH,#30	   ;按键延时刷新
QUIT3:	  ACALL ITX
		  DJNZ 2EH,QUIT3
		  MOV P1,#0FH
		  JNB MIN_,MIN_ADJ
HOUR_KEY: JB HOUR_,X2
HOUR_ADJ: CLR C
          MOV A,HOUR
		  INC A
		  DA A
		  CJNE A,#24H,X3
		  CLR A
X3:       MOV HOUR,A
          MOV 2EH,#30	   ;按键延时刷新
QUIT4:	  ACALL ITX
		  DJNZ 2EH,QUIT4
          ACALL ITX
X2:       MOV P1,#0FH
          JNB HOUR_,HOUR_ADJ
		  RET
;*******计时转换*******
CONV:	MOV A,DI_DA
    CJNE A,#14H,DONE
	MOV DI_DA,#00H
	MOV A,SEC
	ADD A,#01H
	DA A
	MOV SEC,A
	CPL 2FH.0
	CJNE A,#60H,DONE
	MOV SEC,#00H
	MOV A,MIN
	ADD A,#01H
	DA A
	MOV MIN,A
	CJNE A,#60H,DONE
	MOV MIN,#00H
	MOV A,HOUR
	ADD A,#01H
	DA A
	MOV HOUR,A
	CJNE A,#24H,DONE
	MOV HOUR,#00H
DONE:	RET
D0:   MOV A,HOUR
      ANL A,#0FH
	  MOV 7EH,A
	  MOV A,HOUR
	  SWAP A
	  ANL A,#0FH
	  MOV 7FH,A

	  MOV A,MIN
	  ANL A,#0FH
	  MOV 7CH,A
	  MOV A,MIN
	  SWAP A
	  ANL A,#0FH
	  MOV 7DH,A
	  RET
ITX:  ACALL D0
      MOV DPTR,#TAB
	  MOV P2,#80H
	  MOV A,7FH
	  MOVC A,@A+DPTR
	  MOV P0,A
	  ACALL DEL8MS

	  MOV P2,#81H
	  MOV A,7EH
	  MOVC A,@A+DPTR
	  MOV P0,A
	  ACALL DEL8MS

	  MOV P2,#82H
	  MOV A,7DH
	  MOVC A,@A+DPTR
	  MOV P0,A
	  ACALL DEL8MS

	  MOV P2,#83H
	  MOV A,7CH
	  MOVC A,@A+DPTR
	  MOV P0,A
	  ACALL DEL8MS
	  RET
CLOCK:	MOV TL0,#0B0H
	MOV TH0,#3CH
	INC DI_DA
	RETI
DEL8MS: MOV R7,#04H
DEL1:   MOV R6,#0FFH
        DJNZ R6,$
        DJNZ R7,DEL1
        RET

TAB:  DB 0c0H,0f9H,0a4H,0a0H,99H,92H,82H,0f8H
	  DB 80H,90H,88H,83H,0b6H,0a1H,86H,8eH
      DB 0FFH,00H  ;全亮/全灭(#16/#17)
END

⌨️ 快捷键说明

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