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

📄 数字钟2.asm

📁 自己做的单片机Proteus仿真实例
💻 ASM
字号:
RIQI    BIT  P1.0
DAY_SET BIT  P1.1
MON_SET BIT  P1.2
YEL_SET BIT  P1.3
YEH_SET BIT  P1.4
ENSURE  BIT  P1.5
SECOND  EQU  30H
MINUTE  EQU  31H
HOUR    EQU  32H
ALARM_SECOND  EQU  33H
ALARM_MINUTE  EQU  34H
ALARM_HOUR    EQU  35H
CLOCK_SECOND  EQU  36H
CLOCK_MINUTE  EQU  37H
CLOCK_HOUR    EQU  38H
DAY   EQU  39H
MONTH EQU  40H
YEARL EQU  41H 
YEARH EQU  42H 
TCNT  EQU  43H     

	  ORG 0000H
	  LJMP  START
	  ORG 000BH
	  LJMP  T00
	  ORG 0030H

START:  MOV DPTR,#TAB
		MOV TCNT,#0
        MOV HOUR,#23
		MOV MINUTE,#59
		MOV SECOND,#56
		
		MOV ALARM_SECOND,#0
		MOV ALARM_MINUTE,#0
		MOV ALARM_HOUR,#7

		MOV DAY,#28
        MOV MONTH,#2
		MOV YEARL,#00
		MOV YEARH,#19

		MOV TMOD,#01H
		MOV TH0,#(65536-50000)/256
		MOV TL0,#(65536-50000) MOD 256
		MOV IE,#83H
		SETB PT0
		SETB TR0
L1:		LCALL  DISPLAY
		SJMP  L1





T00:    MOV TH0,#(65536-50000)/256
		MOV TL0,#(65536-50000) MOD 256
		INC   TCNT
		MOV   A,TCNT
		CJNE  A,#20,RETUNE1
		MOV   TCNT,#0
		INC   SECOND	
		MOV   A,SECOND
		CJNE  A,#60,RETUNE1
		INC   MINUTE
		MOV   SECOND,#0
		MOV   A,MINUTE
		CJNE  A,#60,RETUNE1
		INC   HOUR
		MOV   MINUTE,#0
		MOV   A,HOUR
		CJNE  A,#24,RETUNE1
		MOV   HOUR,#0
		INC   DAY
    	MOV   A,MONTH
		CJNE  A,#8,T01
		LJMP  T01
RETUNE1:LJMP  RETUNE
T01:    JC    T02
        RRC   A
		JC    T011
		MOV   A,DAY
		CJNE  A,#32,RETUNE
		INC   MONTH
		MOV   DAY,#1
		MOV   A,MONTH
		CJNE  A,#13,RETUNE
		INC   YEARL
		MOV   MONTH,#1
		MOV   A,YEARL
		CJNE  A,#100,RETUNE
		INC   YEARH
		MOV   YEARL,#1
		SJMP  RETUNE
T011:   MOV   A,DAY
		CJNE  A,#31,RETUNE
		INC   MONTH
		MOV   DAY,#1
		SJMP  RETUNE
T02:    RRC   A
  		JNC   T03
		MOV   A,DAY
		CJNE  A,#32,RETUNE
		INC   MONTH
		MOV   DAY,#1
		SJMP  RETUNE
T03:    MOV   A,MONTH
    	CJNE  A,#2,T04
		MOV   A,YEARL
	    CJNE  A,#0,T031
		MOV   A,YEARH
		MOV   B,#04
		DIV   AB
		MOV   A,B
		CJNE  A,#0,T04
		SJMP  T032
T031:   MOV   A,YEARL
		MOV   B,#04
		DIV   AB
		MOV   A,B
		CJNE  A,#0,T04
T032:	MOV   A,DAY
		CJNE  A,#30,RETUNE
		INC   MONTH
		MOV   DAY,#1 
		SJMP  RETUNE


T04:    MOV   A,DAY
		CJNE  A,#29,RETUNE
		INC   MONTH
		MOV   DAY,#1 
RETUNE: LCALL  DISPLAY
        RETI


DISPLAY:JNB P1.0,DISDATA
        MOV  A,SECOND
		MOV  B,#10
		DIV  AB
		CLR  P2.6
		MOVC A,@A+DPTR
		MOV  P0,A
		LCALL  DELAY
		SETB P2.6
		MOV  A,B
		CLR  P2.7
		MOVC A,@A+DPTR
		MOV  P0,A
		LCALL  DELAY
		SETB P2.7

		CLR  P2.5
		MOV P0,#40H
		LCALL  DELAY
		SETB P2.5
		
		MOV  A,MINUTE
		MOV  B,#10
		DIV  AB
		CLR  P2.3
		MOVC A,@A+DPTR
		MOV  P0,A
		LCALL  DELAY
		SETB P2.3
		MOV  A,B
		CLR  P2.4
		MOVC A,@A+DPTR
		MOV  P0,A
		LCALL  DELAY
		SETB P2.4

		CLR  P2.2
		MOV P0,#40H
		LCALL  DELAY
		SETB P2.2


		MOV  A,HOUR
		MOV  B,#10
		DIV  AB
		CLR  P2.0
		MOVC A,@A+DPTR
		MOV  P0,A
		LCALL  DELAY
		SETB P2.0
		MOV  A,B
		CLR  P2.1
		MOVC A,@A+DPTR
		MOV  P0,A
		LCALL  DELAY
		SETB P2.1
		SJMP EXIT
DISDATA:MOV  R0,#DAY
		MOV  R1,#60H
		MOV  R7,#4
DIS1:	MOV  A,@R0
		MOV  B,#10
		DIV  AB
		MOV  @R1,B
		INC  R1
		MOV  @R1,A
		INC  R1
		INC  R0
		DJNZ R7,DIS1
    
		MOV  R0,#60H
		MOV  R7,#8
DIS2:	MOV  A,@R0
		MOVC  A,@A+DPTR
		MOV  @R0,A
		INC  R0
		DJNZ R7,DIS2
	
		MOV  R0,#67H
		MOV  R7,#8
		MOV  A,#0FEH
DIS3:	MOV  P2,A
		MOV  P0,@R0
		LCALL  DELAY
	    DEC  R0
		RL   A
		DJNZ R7,DIS3


EXIT:		RET
DELAY:  MOV  R5,#10
D1:     MOV  R6,#100
        DJNZ R6,$
		DJNZ R5,D1
		RET
TAB:  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
	  ;   0   1   2   3   4   5   6   7   8   9
	 
	 
	  END




⌨️ 快捷键说明

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