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

📄 时钟.asm

📁 刚学时编的小程序
💻 ASM
字号:
		SECOND 	EQU 30H				
		MINITE	EQU 31H
		HOUR   	EQU 32H
		COUNT  	EQU 33H
		COUNT1 	EQU 34H
		COUNT2	EQU 35H
		COUNT3 	EQU 36H
		COUNT4  EQU 37H
		UUU		EQU 38H
		UUU2	EQU 39H
		UUU3	EQU 3AH
		UUU4	EQU 3BH
		SHIJIAN	EQU 40H
		JIAGE	EQU 48H
		ZJ		EQU 50H
		LC		EQU 70H
		WEI1	BIT 22H.1
		WEI2    BIT 22H.2
		WEI3	BIT 22H.3
		WEI4	BIT 22H.4
		WEI5	BIT 22H.5
		WEI6	BIT 22H.6
		WEI7	BIT 22H.7
		WEI8	BIT 23H.0
		WEI9	BIT 23H.1
		WEI10	BIT 23H.2
		ORG 0000H
		LJMP MAIN
		ORG 000BH
		LJMP T0X
		ORG 0013H
		LJMP INT_1
		ORG 0030H

MAIN:	MOV SP,#60H
		MOV SECOND,#00
		MOV MINITE,#00
		MOV HOUR,#00
		MOV COUNT,#00
		MOV COUNT1,#00
		MOV COUNT3,#00
		MOV R3,#9 
		SETB WEI1
		CLR WEI2
		CLR WEI3
		CLR WEI5
		CLR WEI6
		CLR C
		LCALL DISP
		MOV TMOD,#01H
		MOV TH0,#(65535-5000) / 256
		MOV TL0,#(65535-5000) MOD 256
		SETB EA
		SETB ET0
		SETB TR0 
		LCALL CSLC
		LCALL CSHJ
		LCALL CSZJ
KEY:	JB P1.0,JIAN2
		JNB P1.0,$
		LCALL TIAOSHI
JIAN2:	JB P1.1,JIAN3
		JNB P1.1,$
		LCALL JIJIA
JIAN3:	JB P1.2,JIAN4
		JNB P1.2,$
		LCALL GAIJIA
JIAN4:	JB P1.3,BAITIAN
		LCALL WSJ
		LJMP KEY
BAITIAN:LCALL BTJ
		LJMP KEY

DISP:	MOV A,#SHIJIAN
		ADD A,#8
		DEC A
		MOV R0,A
		MOV A,HOUR
		MOV B,#10
		DIV AB
		MOV @R0,A
		DEC R0
		MOV A,B
		MOV @R0,A
		DEC R0
		MOV A,#21
		MOV @R0,A
		DEC R0
		MOV A,MINITE
		MOV B,#10
		DIV AB
		MOV @R0,A
		DEC R0
		MOV A,B
		MOV @R0,A
		DEC R0
		MOV A,#21
		MOV @R0,A
		DEC R0
		MOV A,SECOND
		MOV B,#10
		DIV AB
		MOV @R0,A
		DEC R0
		MOV A,B
		MOV @R0,A
		DEC R0
		RET
	
BTJ:	MOV 50H,48H
		MOV 51H,49H
		RET
	
WSJ:	MOV 50H,4EH
		MOV 51H,4FH
		RET

ZTJ:	MOV 50H,4BH
		MOV 51H,4CH
		RET

DISP2:	MOV A,70H
		INC A
		CJNE A,#10,DI0
		MOV 70H,#00
		JB IE1,D
		INC UUU4
		MOV A,UUU4
		CJNE A,#4,DD
		MOV UUU4,#0
		LCALL ZTJ
		MOV A,55H							 
		ADD A,50H
		MOV B,#10
		DIV AB
		MOV 55H,B
		JZ ZTJ3
		SETB WEI7
ZTJ3:	MOV A,56H
		ADDC A,51H
		JNB WEI7,ZTJ2
		INC A
		CLR WEI7
ZTJ2:	MOV B,#10
		DIV AB
		CJNE A,#2,ZTJ0
		MOV A,B
		ADD A,#10
		MOV 56H,A
		LJMP D 
ZTJ0:	CJNE A,#3,D
		MOV A,B
		ADD A,#10
		MOV 56H,A 
ZTJ1:	INC 57H
		MOV A,57H
		CJNE A,#10,D
		MOV 57H,#0
		LJMP D 
DD:		JB P1.3,DDD
		LCALL WSJ
		LJMP D
DDD:    LCALL BTJ
D:		MOV A,71H
		INC A
		CJNE A,#6,DI1
		MOV 71H,#00
		MOV A,72H
		INC A
		CJNE A,#20,DI2
		MOV 72H,#10
		MOV A,73H
		INC A
		CJNE A,#6,DI3
		MOV 73H,#00
DI0:	MOV 70H,A
		LJMP EXIT4
DI1:	MOV 71H,A
		LJMP EXIT4
DI2:	MOV 72H,A
		LJMP EXIT4
DI3:	MOV 73H,A
		LJMP EXIT4
EXIT4:	RET

T0X:	PUSH PSW
		PUSH ACC
		MOV TH0,#(65535-5000) / 256
		MOV TL0,#(65535-5000) MOD 256
		INC COUNT1
		MOV A,COUNT1
		CJNE A,#8,NEXT
		MOV COUNT1,#00

NEXT:	MOV	A,COUNT1
		MOV DPTR,#TAB
		MOVC A,@A+DPTR
		MOV P2,A
		MOV	A,COUNT1
		JB WEI5,XLCZJ
		JB WEI3,XLC
		MOV UUU,R3
		CJNE A,UUU,NEXT0
		LJMP SHANG
NEXT0:	JB WEI2,NEXT1
		DEC UUU
		CJNE A,UUU,NEXT1
SHANG:	MOV A,COUNT
		MOV B,#100
		DIV AB
		JZ NEXT1
		MOV P0,#00H
		LJMP NEXT2
NEXT1:	JB WEI2, XIANJIA
		MOV A,#SHIJIAN	
		ADD A,COUNT1
		MOV R0,A
		MOV A,@R0
		MOV DPTR,#TABLE
		MOVC A,@A+DPTR
		MOV P0,A
		LJMP NEXT2
XIANJIA:MOV A,#JIAGE
		ADD A,COUNT1
		MOV R1,A
		MOV A,@R1
		MOV DPTR,#TABLE
		MOVC A,@A+DPTR
		MOV P0,A
		LJMP NEXT2

XLC:	MOV A,#LC
		ADD A,COUNT1
		MOV R1,A
		MOV A,@R1
		MOV DPTR,#TABLE
		MOVC A,@A+DPTR
		MOV P0,A
		LJMP NEXT2
XLCZJ:	MOV A,#ZJ
		ADD A,COUNT1
		MOV R1,A
		MOV A,@R1
		MOV DPTR,#TABLE
		MOVC A,@A+DPTR
		MOV P0,A
		LJMP NEXT2	
	
NEXT2:	INC COUNT
		MOV A,COUNT
		CJNE A,#200,LOOP1
		MOV COUNT,#00  
		JNB WEI1,LOOP1
		JB WEI3,LOOP
		LJMP LOOP2
LOOP:	ACALL DISP2
LOOP2:	INC SECOND
		MOV A,SECOND
		CJNE A,#60,LOOP1
		MOV SECOND,#00
		INC MINITE
		MOV A,MINITE
		CJNE A,#60,LOOP1
		MOV MINITE,#00
		INC HOUR
		MOV A,HOUR
		CJNE A,#24,LOOP1
		MOV HOUR,#00
LOOP1:	LCALL DISP
		POP ACC
		POP PSW
		RETI

TIAOSHI:CLR WEI1
		MOV R3,#7
YI:		JB P1.0,JIA
		JNB P1.0,$
		CJNE R3,#1,UU
		MOV R3,#9
		LJMP EXIT
UU:		DEC R3
		DEC R3
		DEC R3
	
JIA:	JB P1.1,JIAN
		JNB P1.1,$
		CJNE R3,#7,JF
		INC HOUR
		MOV A,HOUR
		CJNE A,#24,JF
		MOV HOUR,#00
JF:		CJNE R3,#4,JM 
		INC MINITE
		MOV A,MINITE
		CJNE A,#60,JM
		MOV MINITE,#00
JM:		CJNE R3,#1,JIAN
		INC SECOND
		MOV A,SECOND
		CJNE A,#60,JIAN
		MOV SECOND,#00
JIAN:	JB P1.2,YI
		JNB P1.2,$
		CJNE R3,#7,JF1
		MOV A,HOUR
		CJNE A,#00,S1
		MOV HOUR,#23
		AJMP JF1
S1:		DEC HOUR
JF1:	CJNE R3,#4,JM1
		MOV A,MINITE
		CJNE A,#00,S2
		MOV MINITE,#59
		AJMP JM1
S2:		DEC MINITE
JM1:	CJNE R3,#1,YI
		MOV A,SECOND
		CJNE A,#00,S3
		MOV SECOND,#59
		AJMP YI
S3:		DEC SECOND
		LJMP YI
	
EXIT:	SETB WEI1
		RET

CSHJ:	MOV DPTR,#TABLE
		MOV A,#JIAGE
		ADD A,#7
		MOV R1,A
		MOV A,#12
		MOV @R1,A
		DEC R1
		MOV A,#5
		MOV @R1,A
		DEC R1
		MOV A,#20
		MOV @R1,A
		DEC R1
		MOV A,#11
		MOV @R1,A
		DEC R1
		MOV A,#2
		MOV @R1,A
		DEC R1
		MOV A,#20
		MOV @R1,A
		DEC R1
		MOV A,#16
		MOV @R1,A
		DEC R1
		MOV A,#7
		MOV @R1,A
		RET

GAIJIA:	SETB WEI2
		MOV R3,#8
GAI0:	JB P1.0,GAI1
		JNB P1.0,$
		CJNE R3,#0,YI2
		LJMP EXIT1
YI2:	DEC R3
		CJNE R3,#2,QWE
		DEC R3
		LJMP GAI1
QWE:	CJNE R3,#5,GAI1
		DEC R3
GAI1:	JB P1.1,GAI2
		JNB P1.1,$
		MOV A,#JIAGE
		ADD A,R3
		MOV R1,A
		MOV A,@R1
		MOV B,#10
		DIV AB
		MOV UUU2,A
		MOV A,@R1
		INC A
		MOV UUU3,A
		MOV B,#10
		DIV AB
		CJNE A,UUU2,GAI3
		MOV @R1,UUU3
		LJMP GAI2

GAI3:	MOV A,UUU3
		SUBB A,#10
		MOV @R1,A
GAI2:	JB P1.2,GAI0
		JNB P1.2,$
		CJNE R3,#8,GAI5
		LJMP EXIT1
GAI5:	MOV A,#JIAGE
		ADD A,R3
		MOV R1,A
		MOV A,@R1
		MOV B,#10
		DIV AB
		MOV UUU2,A
		MOV A,@R1
		DEC A
		MOV UUU3,A
		MOV B,#10
		DIV AB
		CJNE A,UUU2,GAI4
		MOV @R1,UUU3
		LJMP GAI2
GAI4:	MOV A,UUU3
		ADD A,#10
		MOV @R1,A
		LJMP GAI0
EXIT1:	CLR WEI2
		MOV R3,#9
		RET

JIJIA:	SETB WEI3
		SETB EX1
		CLR IT1
JI1:	JB P1.0,JI5
		JNB P1.0,$
		SETB WEI9
JI5:	JNB WEI9,JI2
		MOV A,71H
		MOV B,#2
		DIV AB
		MOV A,B
		JZ EE1
		CLR WEI5
		LJMP JI2
EE1:	SETB WEI5
JI2:	JB P1.1,JI3
		JNB P1.1,$
		CPL EX1

JI3:	JB P1.2,JI1
		JNB P1.2,$
		JB WEI3,EE0
		CLR WEI5
		LJMP JI4
EE0:	CLR WEI3
		CLR EX1
		SETB WEI5
JI4:	JB P1.2,JI4
		JNB P1.2,$
		JB WEI3,EE0
		CLR WEI5
		CLR WEI6
		CLR WEI9
		LCALL CSZJ
		LCALL CSLC
		LJMP EXIT2

EXIT2:	CLR WEI3
		RET

CSLC:	SETB RS1
		SETB RS0
		MOV DPTR,#TABLE
		MOV A,#LC
		ADD A,#7
		MOV R1,A
		MOV A,#0
		MOV @R1,A
		DEC R1
		MOV A,#10
		MOV @R1,A
		DEC R1
		MOV A,#0
		MOV @R1,A
		DEC R1
		MOV A,#21
		MOV @R1,A
		DEC R1
		MOV A,#0
		MOV @R1,A
		DEC R1
		MOV A,#10
		MOV @R1,A
		DEC R1
		MOV A,#0
		MOV @R1,A
		DEC R1
		MOV A,#0
		MOV @R1,A
		CLR RS1
		CLR RS0
		RET

CSZJ:	SETB RS1
		SETB RS0
		MOV DPTR,#TABLE
		MOV A,#ZJ
		ADD A,#7
		MOV R0,A
		MOV A,#0
		MOV @R0,A
		DEC R0
		MOV A,#15
		MOV @R0,A
		DEC R0
		MOV A,#0
		MOV @R0,A
		DEC R0
		MOV A,#20
		MOV @R0,A
		DEC R0
		MOV A,#20
		MOV @R0,A
		DEC R0
		MOV A,#20
		MOV @R0,A
		DEC R0
		MOV A,49H
		MOV @R0,A
		DEC R0
		MOV A,48H
		MOV @R0,A
		CLR RS1
		CLR RS0
		RET
 
INT_1:	PUSH PSW
		PUSH ACC
		SETB RS1
		SETB RS0
		INC COUNT3
		MOV A,COUNT3
		CJNE A,#200,EXIT5
		MOV COUNT3,#00
		INC COUNT4
		MOV A,COUNT4
		CJNE A,#50,EXIT5
		MOV COUNT4,#00
		MOV A,75H
		INC A
		CJNE A,#10,IN1
		MOV 75H,#00
		JB WEI6,JIAJIA
		LJMP IN0
EXIT5:  LJMP EXIT3
JIAJIA:	MOV A,55H							  
		ADD A,50H
		MOV B,#10
		DIV AB
		MOV 55H,B
		JZ I3
		SETB WEI7
I3:		MOV A,56H
		ADDC A,51H
		JNB WEI7,I2
		INC A
		CLR WEI7
I2:		MOV B,#10
		DIV AB
		CJNE A,#2,I0
		MOV A,B
		ADD A,#10
		MOV 56H,A
		LJMP IN0 
I0:		CJNE A,#3,IN0
		MOV A,B
		ADD A,#10
		MOV 56H,A 
I1:		INC 57H
		MOV A,57H
		CJNE A,#10,IN0
		MOV 57H,#0 
		LJMP IN0
IN0:	MOV A,76H
		INC A
		CJNE A,#20,IN2
		MOV 76H,#10
		MOV A,77H
		INC A
		CJNE A,#10,IN3
		MOV 77H,#00
		LJMP IN4
IN1:	MOV 75H,A
		LJMP IN4		
IN2:	MOV 76H,A
		LJMP IN4		
IN3:	MOV 77H,A
		LJMP IN4
IN4:	JB WEI6,EXIT3
		MOV A,76H
		CJNE A,#12,EXIT3
		SETB WEI6
				
EXIT3:	CLR RS1
		CLR RS0
		POP ACC
		POP PSW
		RETI

		TABLE:	DB 	3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH	
				DB 	0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,00H,40H
		TAB: 	DB 	0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH

		END

⌨️ 快捷键说明

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