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

📄 ds1302.asm

📁 完整实用的1302源程序,拿来就可以用的哈
💻 ASM
字号:
WRDS:	MOV	R5,#08H	;写DS1302一个字节
	CLR		IO
	CLR		CLK
WRDS1:	
	RRC	A
	MOV	IO,C
	MOV		PCA0CPH2,#0F0H
	LCALL	DELAY1
	SETB	CLK
	LCALL	DELAY1
	CLR		CLK
	DJNZ	R5,WRDS1
	RET
	
RDDS:	MOV	R5,#08H	;读DS1302一个字节
		SETB	IO
RDDS1:
	MOV	C,IO
	RRC	A
	SETB	CLK
	MOV		PCA0CPH2,#0F0H
	LCALL	DELAY1
	CLR		CLK
	LCALL	DELAY1
	DJNZ	R5,RDDS1	
	RET
	

	WRITE_RAM:
	MOV		A,#0FEH
	CLR	RST
	CLR	CLK	;写数据命令(一个字节)
	NOP
	NOP
	LCALL	DELAY1
	SETB	RST
	LCALL	WRDS
	MOV		R1,#60H
WRITE1:
	MOV		A,@R1
	LCALL	WRDS
	INC		R1
	DJNZ	R7,WRITE1
	CLR		RST
	RET


READ_RAM:
	MOV		A,#0FFH
	CLR	RST
	CLR	CLK	;写数据命令(一个字节)
	NOP
	NOP
	LCALL	DELAY1
	SETB	RST
	LCALL	WRDS
	MOV		R1,#60H
READ1:
	LCALL	RDDS
	MOV		@R1,A
	INC		R1
	DJNZ	R7,READ1
	CLR		RST
	RET



DELAY1:
	NOP
	NOP
	RET
	
WCLK:	
	CLR	RST
	CLR	CLK	;写数据命令(一个字节)
	NOP
	NOP
	LCALL	DELAY1
	SETB	RST
	MOV	A,30H	;命令单元
	MOV		PCA0CPH2,#0F0H
	LCALL	WRDS
	MOV	A,31H	;数据单元
	LCALL	WRDS
	CLR	RST
	RET
	
	
RCLK:	

	CLR	RST
	CLR	CLK	;读数据命令(一个字节)
	NOP
	NOP
	LCALL	DELAY1
	SETB	RST
	MOV	A,30H	;命令单元
	MOV		PCA0CPH2,#0F0H
	LCALL	WRDS
	LCALL	RDDS
	MOV	31H,A	;数据单元
	CLR	RST
	CJNE	A,#0FFH,RCLK1
	LCALL	DELAY1MS
	DJNZ	3CH,RCLK 		;错误次数
	SETB		SHI_C	
RCLK1:
	RET


	
CLRWP:		;取消写保护子程序
	CLR	CLK
	SETB	RST
	MOV	30H,#8EH
	MOV	31H,#00H
	MOV		PCA0CPH2,#0F0H
	LCALL	WCLK
	CLR	RST
	RET
SETWP:	;开写保护子程序
	CLR	CLK
	SETB	RST
	MOV	30H,#8EH
	MOV	31H,#80H
	MOV		PCA0CPH2,#0F0H
	LCALL	WCLK
	CLR	RST
	RET
SZ1302:
	MOV	30H,#90H
	MOV	31H,#0A5H
	MOV		PCA0CPH2,#0F0H
	LCALL	WCLK
	RET
READH:	MOV	30H,#85H	;读小时
MOV		PCA0CPH2,#0F0H
	MOV		3CH,#04H
	LCALL	RCLK
	MOV	A,31H
	ANL	A,#0FH
	MOV	R3,A
	MOV	A,31H
	ANL	A,#10H
	SWAP	A
	MOV	B,#0AH
	MUL	AB
	ADD	A,R3
	MOV	R3,A
	MOV	A,31H
	ANL	A,#20H
	SWAP	A
	MOV	B,#0AH
	MUL	AB	
	ADD	A,R3
	RET	
WRITH:	
	MOV		PCA0CPH2,#0F0H
	MOV	30H,#84H	;写小时24小时制
	MOV		31H,A
	CJNE	A,#14H,C_1
	MOV		31H,#20H
	MOV		A,31H
	AJMP	WRITH1
C_1:
	JC		C_0
	MOV	A,31H
	CLR		C
	SUBB	A,#14H
	
	ADD	A,#20H
	MOV		31H,A
	AJMP	WRITH1
C_0:
	MOV	A,31H	
	MOV	B,#0AH
	DIV	AB
	SWAP	A
	MOV	31H,A
	MOV	A,B
	ORL	A,31H
	MOV	31H,A
WRITH1:
	MOV	31H,A
	MOV		PCA0CPH2,#0F0H
	LCALL	WCLK

	RET		
SHI_READ:			;R3读命令,R4与值,A,出口
	MOV	30H,R3	
	MOV		PCA0CPH2,#0F0H
	LCALL	RCLK
	MOV		PCA0CPH2,#0F0H
	MOV	A,31H
	ANL	A,#0FH
	MOV	32H,A
	MOV	A,31H
	SWAP	A
	ANL	A,R4
	MOV	B,#10
	MUL	AB
	ADD	A,32H
	SETB	CLK

	RET
SHI_WRITE:			;R3写命令,	R4与值,A,入口
	MOV	30H,R3
	MOV	B,#10
	DIV	AB
	MOV	32H,B
	ANL	A,R4
	SWAP	A
	ORL	A,32H
	MOV	31H,A
	MOV		PCA0CPH2,#0F0H
	LCALL	WCLK
	SETB	CLK
	RET

⌨️ 快捷键说明

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