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

📄 io.asm

📁 基于MSC51的数字钟。采用PCF8563作为日历芯片
💻 ASM
字号:
SDA		BIT	P1.0
SCL		BIT	P1.1
WSLA_8563	EQU	0A2H
RSLA_8563	EQU	0A3H
WSLA_7290	EQU	70H
RSLA_7290	EQU	71H
		ORG	8000H
		LJMP	8100H

		ORG	8013H
		LJMP	INT_RCT
                ORG     8003H
		LJMP    INT_7290
		

	ORG	8100H
START:	MOV	SP,#60H
	CLR	P1.7
	LCALL	DELAY
	SETB	P1.7
	MOV	10H,#00H
	MOV	11H,#1FH
	MOV	12H,#55H
	MOV	13H,#59H
	MOV	14H,#16H
	MOV	15H,#15H
	MOV	16H,#04H
	MOV	17H,#05H
	MOV	18H,#08H
	MOV	19H,#00H
	MOV	1AH,#00H
	MOV	1BH,#00H
	MOV	1CH,#00H
	MOV	1DH,#83H
	MOV	48H,#08H
	MOV	49H,#00H
	MOV	50H,#00H
	MOV	51H,#11H
	MOV	52H,#30H
	MOV	53H,#00H
	MOV	54H,#12H
	MOV	55H,#30H
	MOV	56H,#00H
	MOV	57H,#17H
	MOV	58H,#00H
	MOV	59H,#00H
	MOV	R7,#0EH
	MOV	R0,#10H
	MOV	R2,#00H
	MOV	R3,#WSLA_8563
	LCALL	WRNBYT
	SETB	EA
	SETB	EX1
	CLR	IT1
	SETB	EX0
	CLR	IT0
ok:	Lcall	alarm
	SJMP	OK



INT_RCT:
	MOV	R7,#03H
	MOV	R0,#20H
	MOV	R2,#02H
	MOV	R3,#WSLA_8563
	MOV	R4,#RSLA_8563
	LCALL	RDADD
	LCALL	ADJUST
	LCALL	CHAFEN
	MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
	JNB	P1.2,YES
	MOV	R0,#38H
	SJMP	DISP	
YES:	MOV	R0,#28H
DISP:	LCALL	WRNBYT
	JNB	P3.3,$
	RETI

	
INT_7290: 
          PUSH 00H
	  PUSH 02H
	  PUSH 03H
	  PUSH 04H
	  PUSH 07H
	  PUSH ACC
	  PUSH PSW
      	  LCALL RDKEY
	 

AKEY:     CJNE	A,#0AH,BKEY      

PUSH	3FH
MOV	3FH,#00H
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
POP	3FH
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
JB	P3.2,AKEY

LCALL	RDKEY
SWAP	A
MOV	14H,A
LCALL	WR8563
ANL	22H,#0FH
	ORL	22H,A
	LCALL	CHAFEN
	MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT

akey2:
PUSH	3EH
MOV	3EH,#00H
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
POP	3EH
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
JB	P3.2,AKEY2

LCALL	RDKEY
ANL	14H,#0F0H
ORL	14H,A
LCALL	WR8563
lJMP	DOWN

BKEY:	CJNE	A,#0BH,CKEY
PUSH	3cH
MOV	3cH,#00H
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
POP	3cH
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
JB	P3.2,bKEY
LCALL	RDKEY
SWAP	A
MOV	13H,A
LCALL	WR8563
ANL	21H,#0FH
	ORL	21H,A
	LCALL	CHAFEN

MOV	R7,#08H
MOV	R2,#10H
MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT

bkey2:
PUSH	3bH
MOV	3bH,#00H
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
POP	3bH
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
JB	P3.2,bKEY2

LCALL	RDKEY
ANL	13H,#0F0H
ORL	13H,A
LCALL	WR8563
lJMP	DOWN

CKEY:	CJNE	A,#0CH,DOWN1
        JB	P3.2,$

		LCALL	RDKEY
		SWAP	A
		MOV	12H,A
		LCALL	WR8563
		ANL	20H,#0FH
		ORL	20H,A
		LCALL	CHAFEN
		MOV	R7,#08H
		MOV	R2,#10H
		MOV	R3,#WSLA_7290
		MOV	R0,#38H
		LCALL	WRNBYT
		JB	P3.2,$
		LCALL	RDKEY
		ANL	12H,#0F0H
		ORL	12H,A
		LCALL	WR8563
	
         
DOWN1:	  LCALL	MODIFY

DOWN:  CLR IE0         
	  Pop PSW
	  POP ACC
	  POP 07H
	  POP 04H
	  POP 03H
	  POP 02H
	  POP 00H
	  RETI

RDKEY: 	MOV	R0,#1FH			
	MOV	R7,#01H			
	MOV	R2,#01H 		
	MOV	R3,#WSLA_7290	
	MOV	R4,#RSLA_7290	
 	LCALL	RDADD	
	MOV	A,1FH			
	DEC	A
	RET
WR8563:	MOV	R7,#0EH		   
	MOV	R0,#10H	        
	MOV	R2,#00H			
	MOV	R3,#WSLA_8563	
	LCALL	WRNBYT		
	RET




   ORG 	8300H
CHAFEN:	PUSH	PSW
	PUSH	ACC
	PUSH	03H
	PUSH	04H
	MOV	A,20H
	LCALL	CF
	MOV	38H,R3
	MOV	39H,R4
	MOV	3AH,#02H

	MOV	A,21H
	LCALL	CF
	MOV	3BH,R3
	MOV	3CH,R4
	MOV	3DH,#02H

	MOV	A,22H
	LCALL	CF
	MOV	3EH,R3
	MOV	3FH,R4

	MOV	A,23H
	LCALL	CF
	MOV	A,R3
	ORL	A,#01H
	MOV	R3,A
	MOV	28H,R3
	MOV	29H,R4

	MOV	A,25H
	LCALL	CF
	MOV	A,R3
	ORL	A,#01H
	MOV	R3,A
	MOV	2AH,R3
	MOV	2BH,R4

	MOV	A,26H
	LCALL	CF
	MOV	A,R3
	ORL	A,#01H
	MOV	R3,A
	MOV	2CH,R3
	MOV	2DH,R4
	MOV	2EH,#0FCH
	MOV	2FH,#0DAH
	POP	04H
	POP	03H
	POP	ACC
	POP	PSW
	RET

CF:	PUSH	02H
	PUSH	DPH
	PUSH	DPL
	MOV	DPTR,#LEDSEG
	MOV	R2,A
	ANL	A,#0FH
	MOVC	A,@A+DPTR
	MOV	R3,A
	MOV	A,R2
	SWAP	A
	ANL	A,#0FH
	MOVC	A,@A+DPTR
	MOV	R4,A
	POP	DPL
	POP	DPH
	POP	02H
	RET



LEDSEG:	DB	0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H
	DB	0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH

ADJUST:	PUSH	ACC
	MOV	A,20H
	ANL	A,#7FH
	MOV	20H,A
	MOV	A,21H
	ANL	A,#7FH
	MOV	21H,A
	MOV	A,22H
	ANL	A,#3FH
	MOV	22H,A
	MOV	A,23H
	ANL	A,#3FH
	MOV	23H,A
	MOV	A,24H
	ANL	A,#07H
	MOV	24H,A
	MOV	A,25H
	ANL	A,#1FH
	MOV	25H,A
	POP	ACC
	RET

delay:	push	00h
	push	01h
	mov	r0,#00h
delay1:	mov	r1,#00h
	djnz	r1,$
	djnz	r0,delay1
	pop	01h
	pop	00h
	ret

WRNBYT:	PUSH	PSW
	PUSH	ACC
WRADD:	MOV	A,R3
	LCALL	STA
	LCALL	WRBYT
	LCALL	CACK
	JB	F0,WRADD
	MOV	A,R2
	LCALL	WRBYT
	LCALL	CACK
	JB	F0,WRADD
WRDA:	MOV	A,@R0
	LCALL	WRBYT
	LCALL	CACK
	JB	F0,WRADD
	INC	R0
	DJNZ	R7,WRDA
	LCALL	STOP
	POP	ACC
	POP	PSW
	RET


RDADD:	PUSH	PSW
	PUSH	ACC
RDADD1:	LCALL	STA
	MOV	A,R3
	LCALL	WRBYT
	LCALL	CACK
	JB	F0,RDADD1
	MOV	A,R2
	LCALL	WRBYT
	LCALL	CACK
	JB	F0,RDADD1
	LCALL	STA
	MOV	A,R4
	LCALL	WRBYT
	LCALL	CACK
	JB	F0,RDADD1

RDN:	LCALL	RDBYT
	MOV	@R0,A
	DJNZ	R7,ACK
	LCALL	MNACK
	LCALL	STOP
	POP	ACC
	POP	PSW
	RET
ACK:	LCALL	MACK
	INC	R0
	SJMP	RDN


STA:	SETB	SDA
	SETB	SCL
	NOP
	NOP
	NOP
	NOP
	NOP
	CLR	SDA
	NOP
	NOP
	NOP
	NOP
	NOP
	CLR	SCL
	RET
STOP:	CLR	SDA
	SETB	SCL
	NOP
	NOP
	NOP
	NOP
	NOP
	SETB	SDA
	NOP
	NOP
	NOP
	NOP
	NOP
	CLR	SCL
	CLR	SDA
	RET
MACK:	CLR	SDA
	SETB	SCL
	NOP
	NOP
	NOP
	NOP
	NOP
	CLR	SCL
	SETB	SDA
	RET
MNACK:	SETB	SDA
	SETB	SCL
	NOP
	NOP
	NOP
	NOP
	CLR	SCL
	CLR	SDA
	RET
CACK:	SETB	SDA
	SETB	SCL
	CLR	F0
	MOV	C,SDA
	JNC	CEND
	SETB	F0
CEND:	CLR	SCL
	RET
WRBYT:	PUSH	06H
	MOV	R6,#08H
WLP:	RLC	A
	MOV	SDA,C
	SETB	SCL
	NOP
	NOP
	NOP
	NOP
	NOP
	CLR	SCL
	DJNZ	R6,WLP
	POP	06H
	RET
RDBYT:	PUSH	06H
	MOV	R6,#08H	
RLP:	SETB	SDA
	SETB	SCL
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	MOV	C,SDA
	MOV	A,R2
	RLC	A
	MOV	R2,A
	CLR	SCL
	DJNZ	R6,RLP
	POP	06H
	RET
	alarm:
	MOV	A,22H
	CJNE	A,48H,AL2
	MOV	A,21H
	CJNE	A,49H,AL2
	MOV	A,20H
	CJNE	A,50H,BB
	clr	p1.3;灯1
	CALL	SOUND
	RET
AL2:
	CJNE	A,51H,AL3
	MOV	A,21H
	CJNE	A,52H,AL3
	MOV	A,20H
	CJNE	A,53H,BB
	CLR	p1.3;             LED1
	CLR     P1.4;             LED2
	CALL	SOUND
	RET
	
AL3:
	CJNE	A,54H,AL4
	MOV	A,21H
	CJNE	A,55H,AL4
	MOV	A,20H
	CJNE	A,56H,BB
	CLR	p1.3;             LED1
	SETB P1.4;             LED2
	CALL	SOUND
	RET
	
AL4:
	CJNE	A,57H,BB
	MOV	A,21H
	CJNE	A,58H,BB
	MOV	A,20H
	CJNE	A,59H,BB
	CLR	p1.3;             LED1
	CALL	SOUND1
BB:	RET


SOUND:	MOV	TMOD,#10H
	MOV	TL1,#033H
	MOV	TH1,#0FEH
	SETB	TR1
LOOP:	JNB	TF1,$
	CLR	TF1
	MOV	TL1,#033H
	MOV	TH1,#0FEH
	CPL	P1.5
	MOV	A,20H
	CJNE	A,#02H,LOOP
	SETB	P1.3
	RET
	
SOUND1:	MOV	TMOD,#10H
	MOV	TL1,#033H
	MOV	TH1,#0FEH
	SETB	TR1
LOOP1:	JNB	TF1,$
	CLR	TF1
	MOV	TL1,#033H
	MOV	TH1,#0FEH
	CPL	P1.5
	MOV	A,20H
	CJNE	A,#05H,LOOP1
	SETB	P1.3
	RET
MODIFY:  CJNE	A,#0DH,RE1

AMOD:
		PUSH	3FH
		MOV	3FH,#00H
		MOV	R7,#08H
		MOV	R2,#10H
		MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
POP	3FH
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
JB	P3.2,AMOD

LCALL	RDKEY
SWAP	A
MOV	48H,A
ANL	22H,#0FH
	ORL	22H,A
	LCALL	CHAFEN
	MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT

aMOD2:
PUSH	3EH
MOV	3EH,#00H
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
POP	3EH
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
JB	P3.2,AMOD2
SJMP KK1
RE1:LJMP	RE2
KK1:
LCALL	RDKEY
ORL	48H,A
ANL	22H,#0F0H
	ORL	22H,A
	LCALL	CHAFEN
	MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT

BMOD:
		
     PUSH	3cH
MOV	3cH,#00H
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
POP	3cH
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
JB	P3.2,BMOD

LCALL	RDKEY        
SWAP	A
MOV	    49H,A
ANL	21H,#0FH
	ORL	21H,A
	LCALL	CHAFEN
MOV	R7,#08H
MOV	R2,#10H
MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT

BMOD2:
PUSH	3bH
MOV	3bH,#00H
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
POP	3bH
MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
LCALL	DELAY
JB	P3.2,bMOD2
SJMP	KK2
RE2:LJMP	RE
KK2:
LCALL	RDKEY
ORL	49H,A
ANL	21H,#0F0H
	ORL	21H,A
	LCALL	CHAFEN
	MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT

CMOD:
 
JB	P3.2,$

LCALL	RDKEY        
SWAP	A
MOV	    50H,A
ANL	20H,#0FH
	ORL	20H,A
	LCALL	CHAFEN
MOV	R7,#08H
MOV	R2,#10H
MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT

CMOD2:

JB	P3.2,$

LCALL	RDKEY
ORL	50H,A
ANL	20H,#0F0H
	ORL	20H,A
	LCALL	CHAFEN
	MOV	R7,#08H
	MOV	R2,#10H
	MOV	R3,#WSLA_7290
MOV	R0,#38H
LCALL	WRNBYT
RE: RET

	END

⌨️ 快捷键说明

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