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

📄 tls6.asm

📁 用于手持时钟受时
💻 ASM
📖 第 1 页 / 共 3 页
字号:
	MOV	B,	A		;
XSCLR11:MOV	A,	B		;
	ANL	A,	#0FH		;
	MOVC	A,	@A+DPTR		;
	CLR	C			;
XSCLR2:	RRC	A			;
	MOV	P0.2,	C		;发送数据
	CLR	P0.1			;时钟操作
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLR2		;
	MOV	A,	B		;
	ANL	A,	#0F0H		;
	SWAP	A			;
	MOV	R6,	#08H		;
	MOVC	A,	@A+DPTR		;
	CLR	C			;
XSCLR3:	RRC	A			;
	MOV	P0.2,	C		;
	CLR	P0.1			;
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLR3		;
	DEC	R0			;
	DJNZ	R7,	XSCLR1		;
					;
XSCLN1:	MOV	R6,	#08H		;
	MOV	A,	#20H		;
	MOV	B,	A		;
XSCLN11:MOV	A,	B		;
	ANL	A,	#0FH		;
	MOVC	A,	@A+DPTR		;
	CLR	C			;
XSCLN2:	RRC	A			;
	MOV	P0.2,	C		;发送数据
	CLR	P0.1			;时钟操作
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLN2		;
	MOV	A,	B		;
	ANL	A,	#0F0H		;
	SWAP	A			;
	MOV	R6,	#08H		;
	MOVC	A,	@A+DPTR		;
	CLR	C			;
XSCLN3:	RRC	A			;
	MOV	P0.2,	C		;
	CLR	P0.1			;
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLN3		;
					;
	MOV	R0,	#47H		;时.分.秒
	MOV	R7,	#03H		;
					;
XSCL1:	MOV	R6,	#08H		;
	MOV	A,	@R0		;
	MOV	B,	A		;
	MOV	A,	R0		;
	CJNE	A,	#45H,	XSCL11	;
	MOV	A,	B		;
	ANL	A,	#7FH		;
	MOV	B,	A		;
XSCL11:	MOV	A,	B		;
	ANL	A,	#0FH		;
	MOVC	A,	@A+DPTR		;
	CLR	C			;
XSCL2:	RRC	A			;
	MOV	P0.2,	C		;发送数据
	CLR	P0.1			;时钟操作
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCL2		;
					;
	MOV	A,	B		;
	ANL	A,	#0F0H		;
	SWAP	A			;
	MOV	B,	A		;
					;
	MOV	A,	R0		;
	CJNE	A,	#45H,	XSCL21	;
	MOV	A,	B		;
	CLR	C			;
	SUBB	A,	#03H		;
	JC	XSCL21			;
	MOV	A,	#0FFH		;
	AJMP	XSCL23			;
					;
XSCL21:	MOV	A,	B		;
	MOVC	A,	@A+DPTR		;
					;
XSCL23:	MOV	R6,	#08H		;
	CLR	C			;
XSCL3:	RRC	A			;
	MOV	P0.2,	C		;
	CLR	P0.1			;
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCL3		;
	DEC	R0			;
	DJNZ	R7,	XSCL1		;
					;
	MOV	A,	4EH		;温度
	ANL	A,	#0FH		;
	MOVC	A,	@A+DPTR		;
	MOV	R6,	#08H		;
	CLR	C			;
XSCLS:	RRC	A			;
	MOV	P0.2,	C		;发送数据
	CLR	P0.1			;时钟操作
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLS		;
	MOV	A,	4EH		;温度
	ANL	A,	#0F0H		;
	SWAP	A			;
	MOVC	A,	@A+DPTR		;
	MOV	R6,	#08H		;
	CLR	C			;
XSCLS1:	RRC	A			;
	MOV	P0.2,	C		;发送数据
	CLR	P0.1			;时钟操作
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLS1		;



	MOV	R0,	#49H		;安全日期
	MOV	R7,	#02H		;
					;
XSCLW1:	MOV	R6,	#08H		;
	MOV	A,	@R0		;
	MOV	B,	A		;
	MOV	A,	R0		;
	CJNE	A,	#45H,	XSCLW11	;
	MOV	A,	B		;
	ANL	A,	#7FH		;
	MOV	B,	A		;
XSCLW11:MOV	A,	B		;
	ANL	A,	#0FH		;
	MOVC	A,	@A+DPTR		;
	CLR	C			;
XSCLW2:	RRC	A			;
	MOV	P0.2,	C		;发送数据
	CLR	P0.1			;时钟操作
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLW2		;
	MOV	A,	B		;
	ANL	A,	#0F0H		;
	SWAP	A			;
	MOV	R6,	#08H		;
	MOVC	A,	@A+DPTR		;
	CLR	C			;
XSCLW3:	RRC	A			;
	MOV	P0.2,	C		;
	CLR	P0.1			;
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLW3		;
	DEC	R0			;
	DJNZ	R7,	XSCLW1		;
	CLR	P0.3			;所存数据
	NOP				;
	NOP				;
	SETB	P0.3			;
	RET				;
					;
FSS:	MOV	R3,	#013H		;****发送显示数据
	MOV	R0,	#30H		;
FSS1:	MOV	R4,	#08H		;
	MOV	A,	@R0		;
FSS2:	RLC	A			;
	MOV	P0.2,	C		;发送数据
	CLR	P0.1			;时钟处理
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R4,	FSS2		;
	INC	R0			;
	DJNZ	R3,	FSS1		;
					;
	CLR	P0.3			;写入锁存器,并显示
	NOP				;
	SETB	P0.3			;
	RET				;
					;
JSJ0:	AJMP	JSED			;
					;
JS:	CLR	ES			;*****串行通信数据接收
	CLR	TR0			;禁止定时中断
	CLR	RI			;清接收标志
	MOV	A,	SBUF		;收第一数据
	CJNE	A,	#61H,	JSJ0	;"a"
					;
	JNB	RI,	$		;接受第二字节
	CLR	RI			;
	MOV	A,	SBUF		;
	CJNE	A,	#61H,	JS1	;"a"****接受时钟修改****
	MOV	R4,	#0DH		;接受长度(13字符)
	MOV	R0,	#30H		;通信缓存
JS01:	JNB	RI,	$		;
	CLR	RI			;
	MOV	A,	SBUF		;
	MOV	@R0,	A		;
	INC	R0			;
	DJNZ	R4,	JS01		;
					;时钟数据处理
	MOV	R4,	#03H		;年,月,日
	MOV	R0,	#30H		;
	MOV	R1,	#42H		;
JS02:	MOV	A,	@R0		;
	ANL	A,	#0FH		;
	SWAP	A			;
	MOV	B,	A		;
	INC	R0			;
	MOV	A,	@R0		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	@R1,	A		;
	INC	R0			;
	INC	R1			;
	DJNZ	R4,	JS02		;
					;
	MOV	A,	@R0		;时
	ANL	A,	#0FH		;
	SWAP	A			;
	MOV	B,	A		;
	INC	R0			;
	MOV	A,	@R0		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	ORL	A,	#80H		;
	MOV	@R1,	A		;
	INC	R1			;
	INC	R0			;

	MOV	A,	@R0		;分
	ANL	A,	#0FH		;
	SWAP	A			;
	MOV	B,	A		;
	INC	R0			;
	MOV	A,	@R0		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	@R1,	A		;
	INC	R1			;
	INC	R0			;

	MOV	A,	@R0		;秒
	ANL	A,	#0FH		;
	SWAP	A			;
	MOV	B,	A		;
	INC	R0			;
	MOV	A,	@R0		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	@R1,	A		;
	INC	R0			;
					;
	MOV	A,	@R0		;周
	ANL	A,	#0FH		;
	CJNE	A,	#07H,	JS03	;
	MOV	41H,	#00H		;
	AJMP	JS04			;
JS03:	MOV	41H,	A		;
JS04:	LCALL	WG1			;
	LCALL	XSZ			;
	AJMP	JSED1			;
JSJ2:	AJMP	JS2			;					;
JSJ3:	AJMP	JS12			;
JS1:	CJNE	A,	#62H,	JSJ2	;***接受呼叫地址
	MOV	R6,	#04H		;
	MOV	R0,	#30H		;
JS11:	JNB	RI,	$		;
	MOV	A,	SBUF		;
	MOV	@R0,	A		;
	CLR	RI			;
	INC	R0			;
	DJNZ	R6,	JS11		;
	MOV	A,	30H		;
	ANL	A,	#0FH		;
	SWAP	A			;
	MOV	B,	A		;
	MOV	A,	31H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	34H,	A		;
					;
	MOV	A,	32H		;
	ANL	A,	#0FH		;
	SWAP	A			;
	MOV	B,	A		;
	MOV	A,	33H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	35H,	A		;
	CLR	C			;
	MOV	A,	4AH		;
	CJNE	A,	34H,	JSJ3	;
	MOV	A,	4BH		;
	CJNE	A,	35H,	JSJ3	;
	CLR	TI			;地址符合,应答
	MOV	A,	#62H		;B
	SETB	P0.7			;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR 	TI			;
	MOV	A,	#62H		;B,发送应答标志
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR 	TI			;
	MOV	R0,	#4AH		;发送时钟编号
	MOV	R2,	#02H		;
JS13:	MOV	A,	@R0		;
	ANL	A,	#0F0H		;
	SWAP	A			;
	ORL	A,	#30H		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	MOV	A,	@R0		;
	ANL	A,	#0FH		;
	ORL	A,	#30H		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	INC	R0			;
	DJNZ	R2,	JS13		;
					;
	MOV	R0,	#42H		;发送年月日
	MOV	R2,	#06H		;    时分秒
JS14:	MOV	A,	@R0		;
	CJNE	R0,	#45H,	JS141	;小时判断
	ANL	A,	#70H		;
	AJMP	JS142			;
JS141:	ANL	A,	#0F0H		;
JS142:	SWAP	A			;
	ORL	A,	#30H		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	MOV	A,	@R0		;
	ANL	A,	#0FH		;
	ORL	A,	#30H		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	INC	R0			;
	DJNZ	R2,	JS14		;
					;
	MOV	A,	41H		;发送星期
	CJNE	A,	#00H,	JS143	;
	MOV	A,	#30H		;
	AJMP	JS144			;
JS143:	ORL	A,	#30H		;
JS144:	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
					;
	MOV	R0,	#48H		;发送安全日
	MOV	R2,	#02H		;
JS15:	MOV	A,	@R0		;
	ANL	A,	#0F0H		;
	SWAP	A			;
	ORL	A,	#30H		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	MOV	A,	@R0		;
	ANL	A,	#0FH		;
	ORL	A,	#30H		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	INC	R0			;
	DJNZ	R2,	JS15		;
	CLR	P0.7			;
JS12:	AJMP	JSED			;
					;
JS2:	CJNE	A,	#64H,	JS3	;****接受安全日
	MOV	R6,	#04H		;
	MOV	R0,	#30H		;
JS21:	JNB	RI,	$		;
	MOV	A,	SBUF		;
	MOV	@R0,	A		;
	CLR	RI			;
	INC	R0			;
	DJNZ	R6,	JS21		;
					;
	MOV	A,	30H		;
	ANL	A,	#0FH		;
	SWAP	A			;
	MOV	B,	A		;
	MOV	A,	31H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	48H,	A		;
					;
	MOV	A,	32H		;
	ANL	A,	#0FH		;
	SWAP	A			;
	MOV	B,	A		;
	MOV	A,	33H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	49H,	A		;
	LCALL	XAQG

	AJMP	JSED1			;
					;
JS3:	CJNE	A,	#65H,	JS4	;****PPM加1点
	MOV	A,	56H		;
	JZ	JS21			;
	DEC	56H			;
	LCALL	XPM			;
	AJMP	JSED			;
					;
JS4:	CJNE	A,	#66H,	JS5	;****PPM减1点
	MOV	A,	56H		;
	CLR	C			;
	SUBB	A,	#1FH		;
	JNC	JS41			;
	INC	56H			;
	LCALL	XPM			;
JS41:	AJMP	JSED			;
					;
JS5:	CJNE	A,	#67H,	JS6	;****写时钟编号
	JNB	RI,	$		;
	CLR	RI			;
	MOV	A,	SBUF		;
	MOV	30H,	A		;
	JNB	RI,	$		;
	CLR	RI			;
	MOV	A,	SBUF		;
	MOV	31H,	A		;
	CLR	C			;
	MOV	A,	30H		;
	MOV	B,	#0AH		;
	DIV	AB			;
	SWAP	A			;
	ORL	A,	B		;
	MOV	4AH,	A		;
	CLR	C			;
	MOV	A,	31H		;
	MOV	B,	#0AH		;
	DIV	AB			;
	SWAP	A			;
	ORL	A,	B		;
	MOV	4BH,	A		;
	LCALL	XBM			;
	AJMP	JSED			;
					;
JS6:	CJNE	A,	#68H,	JS7	;****FSBM
	SETB	P0.7			;
	MOV	A,	4AH		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	MOV	A,	4BH		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	CLR	P0.7			;
	AJMP	JSED			;
					;
JS7:	CJNE	A,	#69H,	JS8	;
	SETB	P0.7			;
	MOV	A,	56H		;
	MOV	SBUF,	A		;
	JNB	TI,	$		;
	CLR	TI			;
	CLR	P0.7			;
	AJMP	JSED			;
					;
JS8:

JSED1:	MOV	40H,	#00H		;
	MOV	4FH,	#00H
	CLR	21H.4
JSED:	SETB	ES			;允许串行中断
	CLR	20H.7			;置串行通信接收数据标志
	SETB	TR0			;开定时中断
	RETI				;
					;
SZCS:;	CLR	TR0			;****时钟初始化
	LCALL	XSZT			;
					;
	LCALL	ST			;
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	SZED1		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#32H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	B		;
	LCALL	SJFS			;
	LCALL	CACK			;
	LCALL	STOP			;
					;
	LCALL	ST			;
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	SZED1		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#11H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#08H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	LCALL	STOP			;
	AJMP	SZCSED			;
					;
SZED1:	LCALL	STOP			;
SZCSED:	LCALL	YSK			;
	SETB	TR0			;
	RET				;
					;
ST:	SETB	SDA			;****
	NOP				;
	SETB	SCK			;
	LCALL	YSK			;
	CLR	SDA			;
	LCALL	YSK			;
	CLR	SCK			;
	NOP				;
	RET				;
					;*****停止管理
STOP:	CLR	SDA			;数据位=0
	NOP				;
	SETB	SCK			;
	LCALL	YSK			;
	SETB	SDA			;
	LCALL	YSK			;
	RET				;
					;
MACK:	CLR	SDA			;****
	NOP				;
	NOP				;
	SETB	SCK			;
	LCALL	YSK			;
	CLR	SCK			;
	NOP				;
	NOP				;
	RET				;
					;
MNACK:	SETB	SDA			;
	NOP				;
	NOP				;
	SETB	SCK			;
	LCALL	YSK			;
	CLR	SCK			;
	NOP				;
	NOP				;
	RET				;
					;
CACK:	SETB	SDA			;****
	NOP				;
	NOP				;
	SETB	SCK			;
	CLR	ACK			;
	NOP				;
	NOP				;
	MOV	C,	SDA		;
	JC	CEND			;
	SETB	ACK			;
CEND:	NOP				;
	CLR	SCK			;
	NOP				;
	RET				;
					;
SJFS:	MOV	R2,	#08H		;*****数据发送
					;
SJFS1:	RLC	A			;左移数据
	MOV	SDA,	C		;向数据口传送数据
	NOP				;
	SETB	SCK			;
	LCALL	YSK			;
	CLR	SCK			;
	DJNZ	R2,	SJFS1		;循环处理
	NOP				;
	RET				;
					;
SJJS:	CLR	A			;*****数据接收
	MOV	R2,	#08H		;
					;
SJJS1:	SETB	SDA			;
	NOP				;
	SETB	SCK			;
	NOP				;
	MOV	C,	SDA		;
	CLR	SCK			;
	RLC	A			;
	LCALL	YSK			;
	DJNZ	R2,	SJJS1		;
	RET				;
					;
YSK:	MOV	R4,	#01H		;*****延时
YSK1:	NOP
	DJNZ	R4,	YSK1		;
	RET				;
					;
YSQ:	MOV	R6,	#25H		;
YSQ1:	MOV	R5,	#0FFH		;
YSQ2:	NOP
	DJNZ	R5,	YSQ2		;
	DJNZ	R6,	YSQ1		;
	RET				;
	END				;

⌨️ 快捷键说明

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