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

📄 ke.asm

📁 可实现倒计时功能
💻 ASM
字号:
ORG	0000H      
AJMP	0030H
ORG	000BH
AJMP	TIME0
ORG	0023H
AJMP	CHUANXIN

ORG	0030H
MAIN:	
	MOV	60H,	#2
	MOV	61H,	#0
	MOV	62H,	#0
	MOV	63H,	#4
	MOV	64H,	#0
	MOV	65H,	#6
	MOV	66H,	#0
	MOV	67H,	#1
	MOV	68H,	#0
	MOV	69H,	#3
	MOV	6AH,	#0
	MOV	6BH,	#2
	MOV	6CH,	#12
	MOV	6DH,	#12

	LCALL	DISPLAY2
	LCALL	QING
	MOV	TMOD,	#21H
	MOV	TH0,	#3CH
	MOV	TL0,	#0B0H
	MOV	TH1,	#0FDH
	MOV	TL1,	#0FDH
	MOV	SCON,	#50H
	SETB	TR1
	SETB	EA
	SETB	ET0
	SETB	ES

ZHU:	
	ACALL	CHECK
	JNZ	KEY
	LCALL	DISPLAY
	AJMP	ZHU

CHECK:	
	MOV     P1,     #0FH 
     	MOV     A,      P1
     	CPL     A
     	ANL     A,      #0FH
     	RET
				
KEY:				;	键盘查询
	LCALL	DISPLAY
	LCALL	CHECK
	JNZ	LK1
	AJMP	KEY_OUT
	
LK1:	
	CLR	P3.4
	LCALL	DELAY_20MS
	SETB	P3.4
	MOV	P1,	#0F0H
	NOP
	MOV	A,	P1
	CJNE	A,	#0F0H,	LK2
LK2:
	MOV	R2,	A
	MOV	A,	#0FH
	MOV	P1,	A
	NOP
	MOV	A,	P1
	ANL	A,	#0FH
	ADD	A,	R2
	MOV	R2,	A
LK3:
	LCALL	DISPLAY	
	MOV	P1,	#0F0H
	MOV	A,	P1
	CJNE	A,	#0F0H,	LK3
	CJNE	R2,	#0EEH,	ZHI1
	MOV	A,	#0
	LCALL	SHURU
	LJMP	ZHU
ZHI1:	
	CJNE	R2,	#0EDH,	ZHI2
	MOV	A,	#1
	LCALL	SHURU
	LJMP	ZHU
ZHI2:
	CJNE	R2,	#0EBH,	ZHI3
	MOV	A,	#2
	LCALL	SHURU
	LJMP	ZHU
ZHI3:
	CJNE	R2,	#0E7H,	ZHI4
	MOV	A,	#3
	LCALL	SHURU
	LJMP	ZHU
ZHI4:
	CJNE	R2,	#0DEH,	ZHI5
	MOV	A,	#4
	LCALL	SHURU
	LJMP	ZHU
ZHI5:
	CJNE	R2,	#0DDH,	ZHI6
	MOV	A,	#5
	LCALL	SHURU
	LJMP	ZHU
ZHI6:
	CJNE	R2,	#0DBH,	ZHI7
	MOV	A,	#6
	LCALL	SHURU
	LJMP	ZHU
ZHI7:
	CJNE	R2,	#0D7H,	ZHI8
	MOV	A,	#7
	LCALL	SHURU
	LJMP	ZHU
ZHI8:
	CJNE	R2,	#0BEH,	ZHI9
	MOV	A,	#8
	LCALL	SHURU
	LJMP	ZHU
ZHI9:
	CJNE	R2,	#0BDH,	ZHI10
	MOV	A,	#9
	LCALL	SHURU
	LJMP	ZHU
ZHI10:
	CJNE	R2,	#0BBH,	ZHI11
	CLR	TR0	
	LJMP	ZHU
ZHI11:
	CJNE	R2,	#0B7H,	ZHI12
	LCALL	SJIAN
	LJMP	ZHU
ZHI12:
	CJNE	R2,	#7EH,	ZHI13
	LCALL	JIAN
	LJMP	ZHU
ZHI13:
	CJNE	R2,	#7DH,	ZHI14
	LCALL	FUZHI
	LJMP	ZHU
ZHI14:
	CJNE	R2,	#7BH,	ZHI15
	LCALL	SHIZH
	LJMP	ZHU
ZHI15:	
	LCALL	CHUAN
KEY_OUT:LJMP	ZHU

SHURU:					;	数据输入
	PUSH	ACC
	MOV	R3,	#7
	MOV	R0,	#70H
	MOV	R1,	#71H
SHU:	
	MOV	A,	@R1
	MOV	@R0,	A
	INC	R0
	INC	R1
	DJNZ	R3,	SHU
	POP	ACC
	MOV	77H,	A
	RET

DISPLAY:			;显示
	MOV	R3,	#7
	MOV	R0,	#70H
	MOV	R4,	#01H
DIS0:	CJNE	@R0,	#0,	DIS1
	INC	R0
	MOV	A,	R4
	RL	A
	MOV	R4,	A
	DJNZ	R3,	DIS0
	AJMP	DIS1
DISPY:	MOV	R3,	#7
	MOV	R0,	#70H
	MOV	R4,	#01H
DIS1:	MOV	A,	@R0
	MOV	DPTR,	#TAB
	MOVC	A,	@A+DPTR
	MOV	P0,	A
	MOV	A,	R4
	MOV	P2,	A	
	LCALL	DELAY_1MS
	INC	R0
	MOV	A,	R4
	RL	A
	MOV	R4,	A
	CJNE	R0,	#78H,	DIS1
	RET

DISPLAY2:
	MOV	R0,	#60H

YI:	MOV	R5,	#100
YI0:	
	MOV	R4,	#01H
	MOV	A,	R0
	MOV	R1,	A
	MOV	R3,	#8

YI1:	MOV	DPTR,	#TAB
	MOV	A,	@R1
	MOVC	A,	@A+DPTR
	MOV	P0,	A
	MOV	A,	R4
	MOV	P2,	A
	RL	A
	MOV	R4,	A
	LCALL	DELAY_1MS
	ACALL	CHECK
	JNZ	YI3
	INC	R1
	CJNE	R1,	#6EH,	YI2
	MOV	R1,	#60H
YI2:	DJNZ	R3,	YI1
	DJNZ	R5,	YI0
	INC	R0
	CJNE	R0,	#6EH,	YI
	MOV	R0,	#60H
	AJMP	YI
YI3:	RET

DELAY_1MS:			;延时5MS
	MOV	R7,	#2
DE0:	MOV	R6,	#250
	DJNZ	R6,	$
	DJNZ	R7,	DE0
	RET

DELAY_20MS:			;延时20MS
	MOV	R7,	#40
DE1:	MOV	R6,	#250
	DJNZ	R6,	$
	DJNZ	R7,	DE1
	RET

DELAY_100MS:
	MOV	R7,	#200
DE2:	MOV	R6,	#250
	DJNZ	R6,	$
	DJNZ	R7,	DE2
	RET

BAOJING1:
	CLR	P3.4
	LCALL	DELAY_20MS
	SETB	P3.4
	LCALL	DELAY_20MS
	CLR	P3.4
	LCALL	DELAY_100MS
	SETB	P3.4
	RET

BAOJING2:
	CLR	P3.4
	LCALL	DELAY_100MS
	SETB	P3.4
	LCALL	DELAY_20MS
	CLR	P3.4
	LCALL	DELAY_100MS
	SETB	P3.4
	LCALL	DELAY_20MS
	CLR	P3.4
	LCALL	DELAY_100MS
	SETB	P3.4
	RET

LLK1:	
	CLR	P3.4
	LCALL	DELAY_20MS
	SETB	P3.4
	MOV	P1,	#0F0H
	MOV	A,	P1
	CJNE	A,	#0F0H,	LLK2
LLK2:
	MOV	R2,	A
	ORL	A,	#0FH
	MOV	P1,	A
	MOV	A,	P1
	ANL	A,	#0FH
	ADD	A,	R2
	MOV	R2,	A
	RET

CHUAN:				;串行输出
	MOV	R2,	#8
	MOV	R1,	#70H
CHUAN1:	MOV	A,	@R1
	MOV	SBUF,	A
	JNB	TI,	$
	CLR	TI
	INC	R1
	DJNZ	R2,	CHUAN1
	RET

TIME0:				;定时器中断
	MOV	TH0,	#3CH
	MOV	TL0,	#0B0H
	CJNE	R5,	#0,	TIM0
	RETI
TIM0:	
	DEC	R5
	RETI

CHUANXIN:			;串行中断
	JNB	RI,	CHOUT
	MOV	A,	SBUF
	CLR	RI
	LCALL	SHURU
CHOUT:	RETI
	
QING:				;清0程序
	MOV	R7,	#8
	MOV	R0,	#70H
qi1:	MOV	@R0,	#00H
	INC	R0
	DJNZ	R7,	qi1
	RET

JIAN:				;	减法
	MOV	R5,	#20
JIAN_ST:SETB	TR0
JIAN_DS:	
	LCALL	DISPLAY
	LCALL	CHECK	
	JNZ	JIAN_CH
	CJNE	R5,	#0,	JIAN_DS
	MOV	R5,	#20
	MOV	R0,	#77H
	MOV	R7,	#7
JIANK:	DEC	@R0
	CJNE	@R0,	#0FFH,	JIAN_DS
	MOV	@R0,	#9
	DEC	R0
	DJNZ	R7,	JIANK
	DEC	@R0
	CJNE	@R0,	#0FFH,	JIAN_DS
	CLR	TR0	;
	LCALL	QING
	MOV	R0,	#77H
	MOV	@R0,	#11
	LCALL	BAOJING1
	AJMP	JIAN_DS
JIAN_CH:
	LCALL	LLK1
	PUSH	ACC
	SUBB	A,	#0BCH
	JC	JIAN10
	POP	ACC
	LJMP	JIAN_DS
JIAN10:	POP	ACC
	CJNE	A,	#7EH,	JIAN_TI
	LJMP	JIAN_ST
JIAN_TI:CJNE	A,	#0BBH,	JIAN15
	CPL	TR0
	LJMP	LLK12
JIAN15:	CJNE	A,	#77H,	JIAN_OUT
	LCALL	CHUAN
LLK12:	
	MOV	P1,	#0F0H
	LCALL	DISPLAY
	MOV	A,	P1
	CJNE	A,	#0F0H,	LLK12
	LJMP	JIAN_DS
JIAN_OUT:
	RET

ZH:
	MOV	70H,	72H
	MOV	71H,	73H
	MOV	73H,	74H
	MOV	74H,	75H

	MOV	A,	#2
	SUBB	A,	70H
	JC	ZH24
	MOV	A,	70H
	CJNE	A,	#2,	ZH0
	MOV	A,	#4
	SUBB	A,	71H
	JNC	ZH1
	MOV	71H,	#4
	AJMP	ZH1
ZH0:	
	MOV	A,	#9
	SUBB	A,	71H
	JNC	ZH1
	MOV	71H,	#9
ZH1:	
	MOV	A,	#5
	SUBB	A,	73H
	JNC	ZH2
	MOV	73H,	#5
ZH2:
	MOV	A,	#9
	SUBB	A,	74H
	JNC	ZH3
	MOV	74H,	#9
ZH3:
	MOV	A,	#5
	SUBB	A,	76H
	JNC	ZH4
	MOV	76H,	#5
ZH4:
	MOV	A,	#9
	SUBB	A,	77H
	JNC	BIAO
	MOV	77H,	#9
	AJMP	BIAO
ZH24:	
	LCALL	QING
	MOV	70H,	#2
	MOV	71H,	#4
BIAO:	
	MOV	72H,	#10
	MOV	75H,	#10
	RET

SJIAN:
	LCALL	ZH
	MOV	R0,	#70H
	CJNE	@R0,	#2,	S_ST
	MOV	R0,	#71H
	CJNE	@R0,	#4H,	S_ST
	MOV	71H,	#0
	MOV	70H,	#0
	MOV	R5,	#20
S_ST:	SETB	TR0
S_DS:	
	LCALL	DISPY
	LCALL	CHECK
	JNZ	S_CH
	CJNE	R5,	#0,	S_DS

	MOV	R5,	#20
	MOV	R0,	#77H
	INC	@R0
	CJNE	@R0,	#0AH,	S_DS
	MOV	77H,	#0
	MOV	R0,	#76H
	INC	@R0
	CJNE	@R0,	#6,	S_DS
	MOV	76H,	#0
	MOV	R0,	#74H
	INC	@R0
	CJNE	@R0,	#0AH,	S_DS
	MOV	74H,	#0
	MOV	R0,	#73H
	INC	@R0
	CJNE	@R0,	#6,	S_DS
	MOV	73H,	#0
	MOV	R0,	#70H
	CJNE	@R0,	#2,	SL
	MOV	R0,	#71H
	INC	@R0
	CJNE	@R0,	#4H,	S_DS
	MOV	71H,	#0
	MOV	70H,	#0
	CLR	P3.4
	LCALL	DELAY_20MS
	SETB	P3.4
	AJMP	S_DS
SL:	MOV	R0,	#71H
	INC	@R0
	CJNE	@R0,	#0AH,	S_DS
	MOV	71H,	#0
	INC	70H
	AJMP	S_DS
S_CH:
	LCALL	LLK1
	PUSH	ACC
	SUBB	A,	#0BCH
	JC	S10
	POP	ACC
	LJMP	S_DS
S10:	POP	ACC
	CJNE	A,	#0B7H,	S_TI
	LJMP	S_ST
S_TI:	CJNE	A,	#0BBH,	S15
	CPL	TR0
	LJMP	LLK11
S15:	CJNE	A,	#77H,	S_OUT
	LCALL	CHUAN
 LLK11:
 	LCALL	DISPLAY	
 	MOV	P1,	#0F0H
	MOV	A,	P1
	CJNE	A,	#0F0H,	LLK11
	LJMP	S_DS
S_OUT:
	RET

FUZHI:				;赋值
	LCALL	QING
	CLR	TR0
	MOV	TH0,	#3CH
	MOV	TL0,	#0B0H
	RET

SHIZH:				;时钟计时
	ACALL	ZH
	MOV	R5,	#20
SHI_ST:	SETB	TR0
SHI_DS:
	LCALL	DISPY
	LCALL	CHECK	
	JNZ	SHI_CH
	CJNE	R5,	#0,	SHI_DS

	MOV	R5,	#20;
	MOV	R0,	#77H
	DEC	@R0
	CJNE	@R0,	#0FFH,	SHI_DS
	MOV	77H,	#9;
	MOV	R0,	#76H
	DEC	@R0
	CJNE	@R0,	#0FFH,	SHI_DS
	MOV	76H,	#5
	MOV	R0,	#74H
	DEC	@R0
	CJNE	@R0,	#0FFH,	SHI_DS
	MOV	74H,	#9
	MOV	R0,	#73H
	DEC	@R0
	CJNE	@R0,	#0FFH,	SHI_DS
	MOV	73H,	#5
	MOV	R0,	#71H
	DEC	@R0
	CJNE	@R0,	#0FFH,	SHI_DS
	MOV	71H,	#9
	MOV	R0,	#70H
	DEC	@R0
	CJNE	@R0,	#0FFH,	SHI_DS
	CLR	TR0
	LCALL	QING
	MOV	72H,	#10
	MOV	75H,	#10
	LCALL	BAOJING2
	AJMP	SHI_DS
SHI_CH:
	LCALL	LLK1
	PUSH	ACC
	SUBB	A,	#0BCH
	JC	SHI10
	POP	ACC
	LJMP	SHI_DS
SHI10:	POP	ACC
	CJNE	A,	#7BH,	SHI_TI
	LJMP	SHI_ST
SHI_TI:	CJNE	A,	#0BBH,	SHI15
	CPL	TR0
	LJMP	LLK14
SHI15:	CJNE	A,	#77H,	SHI_OUT
	LCALL	CHUAN
 LLK14:
 	LCALL	DISPLAY	
 	MOV	P1,	#0F0H
	MOV	A,	P1
	CJNE	A,	#0F0H,	LLK14
	LJMP	SHI_DS
SHI_OUT:
	RET
	
TAB:	DB	0C0H,0F9H,0A4H,0B0H,99H,0x92,82H,0F8H,80H,90H,0BFH,86H,0FFH
END




⌨️ 快捷键说明

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