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

📄 tls6.asm

📁 用于手持时钟受时
💻 ASM
📖 第 1 页 / 共 3 页
字号:
INTED:	LCALL	YS60			;
	lcall	ys60			;
	lcall	ys60			;
INT02:	RET				;
III:	AJMP	INT			;
					;
RDWD:	MOV	R3,	#02H		;
	MOV	R1,	#61H		;
RDWD1:	MOV	R2,	#08H		;
RDWD2:	CLR	C			;
	SETB	P1.4			;
	NOP				;
	NOP				;
	CLR	P1.4			;
	NOP				;
	NOP				;
	NOP				;
	SETB	P1.4			;
	MOV	R4,	#09H		;
RDWD3:	DJNZ	R4,	RDWD3		;
	MOV	C,	P1.4		;
	MOV	R4,	#23		;
RDWD4:	DJNZ	R4,	RDWD4		;
	RRC	A			;
	DJNZ	R2,	RDWD2		;
	MOV	@R1,	A		;
	DEC	R1			;
	DJNZ	R3,	RDWD1		;
	RET				;
					;
FSWD:	MOV	R2,	#08H		;****发送温度或命令
FSWD1:	CLR	C			;
	RRC	A			;
	JC	FSWD2			;
	LCALL	FSW_0			;
	AJMP	FSWD3			;
					;
FSWD2:	LCALL	FSW_1			;
FSWD3:	DJNZ	R2,	FSWD1		;
	LCALL	YS60			;
	RET				;
					;
FSW_0:	CLR	P1.4			;****发送温度_0
	LCALL	YS60			;
	SETB	P1.4			;
	RET				;
					;
FSW_1:	CLR	P1.4			;****发送温度_1
	NOP				;
	SETB	P1.4			;
	LCALL	YS50			;
	RET				;
					;
YS500:	LCALL	WG1			;
	MOV	R6,	#0E8H		;****500US延时
YS5001:	NOP				;
	NOP
	DJNZ	R6,	YS5001		;
	RET				;
					;
YS300:	MOV	R6,	#0C0H		;****300US延时
YS3001:	NOP				;
	DJNZ	R6,	YS3001		;
	RET				;
					;
YS50:	MOV	R6,	#1FH		;****50US延时
YS501:	NOP				;
	DJNZ	R6,	YS501		;
	RET				;
					;
YS60:	MOV	0A6H,	#0E1H		;喂狗
	MOV	0A6H,	#1EH		;
	MOV	R6,	#24H		;****60US延时
YS601:	NOP				;
	DJNZ	R6,	YS601		;
	RET				;
					;
WG:	CLR	TR0			;
WG1:	MOV	0A6H,	#0E1H		;喂狗
	MOV	0A6H,	#1EH		;
	RET				;
					;
TO:	MOV	0A6H,	#0E1H		;喂狗
	MOV	0A6H,	#1EH		;
					;
	MOV	TH0,	#070H		;
	MOV	TL0,	#00H		;
	PUSH	ACC			;
	PUSH	B			;
	SETB	PSW.3			;
					;
	MOV	A,	4FH		;
	JNZ	TOJ1			;
	SETB	P0.4			;闪动点亮
	JNB	21H.4,	TOWD1		;
	JB	21H.3,	TOWD1		;
	SETB	21H.3			;
	CLR	21H.4			;清秒到标志
	LCALL	CW			;取温度数据
					;
	CLR	C			;
	MOV	A,	4EH		;
	CJNE	A,	28H,	PMT	;
	AJMP	TOWD1			;
PMT:	SETB	22H.2			;温度不同标志
	CLR	22H.3			;
					;
TOWD1:	JNB	20H.6,	TOJ1		;
	JNB	20H.5,	TOJ1		;
	CLR	20H.6			;
	MOV	A,	2FH		;取闪动指针2FH
					;*****闪动处理
	CJNE	A,	#01H,	TOX1	;安全个位
	MOV	5DH,	49H		;
	MOV	5EH,	#49H		;
TOX01:	ORL	49H,	#0FH		;
TOJ0:	AJMP	TOXX			;
					;
TOJ1:	AJMP	TO1			;			;
					;
TOX1:	CJNE	A,	#02H,	TOX2	;安全十位
	MOV	5DH,	49H		;
	MOV	5EH,	#49H		;
TOX11:	ORL	49H,	#0F0H		;
	AJMP	TOXX			;
					;
TOX2:	CJNE	A,	#03H,	TOX3	;安全百位
	MOV	5DH,	48H		;
	MOV	5EH,	#48H		;
TOX21:	ORL	48H,	#0FH		;
	AJMP	TOXX			;
					;
TOX3:	CJNE	A,	#04H,	TOX4	;安全千位
	MOV	5DH,	48H		;
	MOV	5EH,	#48H		;
TOX31:	ORL	48H,	#0F0H		;
	AJMP	TOXX			;
					;
TOX4:	CJNE	A,	#05H,	TOX5	;秒个位
	JNB	21H.0,	TOX41		;
	CLR	21H.1			;
	MOV	5DH,	47H		;
	MOV	5EH,	#47H		;
TOX41:	ORL	47H,	#0FH		;
	AJMP	TOXX			;
					;
TOX5:	CJNE	A,	#06H,	TOX6	;秒十位
	JNB	21H.0,	TOX51		;
	CLR	21H.1			;
	MOV	5DH,	47H		;
	MOV	5EH,	#47H		;
TOX51:	ORL	47H,	#0F0H		;
	AJMP	TOXX			;
					;
TOX6:	CJNE	A,	#07H,	TOX7	;分个位
	JNB	21H.0,	TOX61		;
	CLR	21H.1			;
	MOV	5DH,	46H		;
	MOV	5EH,	#46H		;
TOX61:	ORL	46H,	#0FH		;
	AJMP	TOXX			;
					;
TOX7:	CJNE	A,	#08H,	TOX8	;分十位
	JNB	21H.0,	TOX71		;
	CLR	21H.1			;
	MOV	5DH,	46H		;
	MOV	5EH,	#46H		;
TOX71:	ORL	46H,	#0F0H		;
	AJMP	TOXX			;
					;
TOX8:	CJNE	A,	#09H,	TOX9	;时个位
	JNB	21H.0,	TOX81		;
	CLR	21H.1			;
	MOV	5DH,	45H		;
	MOV	5EH,	#45H		;
TOX81:	ORL	45H,	#0FH		;
	AJMP	TOXX			;
					;
TOX9:	CJNE	A,	#0AH,	TOXA	;时十位
	JNB	21H.0,	TOX91		;
	CLR	21H.1			;
	MOV	5DH,	45H		;
	MOV	5EH,	#45H		;
TOX91:	ORL	45H,	#0E0H		;
	AJMP	TOXX			;
					;
TOXA:	CJNE	A,	#0BH,	TOXB	;星期位
	JNB	21H.0,	TOXA1		;
	CLR	21H.1			;
	MOV	5DH,	41H		;
	MOV	5EH,	#41H		;
TOXA1:	ORL	41H,	#0FH		;
	AJMP	TOXX			;
					;
TOXB:	CJNE	A,	#0CH,	TOXC	;日个位
	JNB	21H.0,	TOXB1		;
	CLR	21H.1			;
	MOV	5DH,	44H		;
	MOV	5EH,	#44H		;
TOXB1:	ORL	44H,	#0FH		;
	AJMP	TOXX			;
					;
TOXC:	CJNE	A,	#0DH,	TOXD	;日十位
	JNB	21H.0,	TOXC1		;
	CLR	21H.1			;
	MOV	5DH,	44H		;
	MOV	5EH,	#44H		;
TOXC1:	ORL	44H,	#0F0H		;
	AJMP	TOXX			;
					;
TOXD:	CJNE	A,	#0EH,	TOXE	;月个位
	JNB	21H.0,	TOXD1		;
	CLR	21H.1			;
	MOV	5DH,	43H		;
	MOV	5EH,	#43H		;
TOXD1:	ORL	43H,	#0FH		;
	AJMP	TOXX			;
					;
TOXE:	CJNE	A,	#0FH,	TOXF	;月十位
	JNB	21H.0,	TOXE1		;
	CLR	21H.1			;
	MOV	5DH,	43H		;
	MOV	5EH,	#43H		;
TOXE1:	ORL	43H,	#0F0H		;
	AJMP	TOXX			;
					;
TOXF:	CJNE	A,	#10H,	TOXFF	;年个位
	JNB	21H.0,	TOXF1		;
	CLR	21H.1			;
	MOV	5DH,	42H		;
	MOV	5EH,	#42H		;
TOXF1:	ORL	42H,	#0FH		;
	AJMP	TOXX			;
					;
TOXFF:	CJNE	A,	#11H,	TO1	;年十位
	JNB	21H.0,	TOXFF1		;
	CLR	21H.1			;
	MOV	5DH,	42H		;
	MOV	5EH,	#42H		;
TOXFF1:	ORL	42H,	#0F0H		;
					;
TOXX:	LCALL	XSCL			;调用显示处理
					;
TO1:	;MOV	A,	4FH		;
	;JNZ	TO01			;
TO01:	MOV	A,	4FH		;
	JZ	TO011			;
	DEC	4FH			;
					;
TO011:	JB	21H.7,	TO02		;
	LCALL	READ			;读时钟数据
	LCALL	RRR			;读安全日数据
					;
TO02:	CLR	C			;
	MOV	A,	40H		;
	SUBB	A,	47H		;
	JC	TO20			;
	MOV	A,	47H		;
	JZ	TO2			;秒=0
;	JNB	21H.6,	TO11		;21H.6=1,安全操作完
	CLR	21H.5			;清零点到标志
	CLR	21H.6			;清安全操作完毕完毕标志
TO11:	AJMP	TOED			;
					;
TO2:	SETB	20H.0			;分到标志
	MOV	A,	46H		;
	JNZ	TO21			;测试分=0?
	MOV	A,	45H		;
	ANL	A,	#3FH		;
	JNZ	TO21			;测试时=0?
	JB	21H.5,	TO211		;如果0点=1
	JB	21H.6,	TO211		;如果安全=1
	SETB	21H.5			;置0点到标志
	CLR	22H.1			;清写保护标志
	AJMP	TO22			;
					;
TO21:	CLR	21H.5			;
	CLR	21H.6			;
TO211:	AJMP	TO22			;
					;
TO20:	CLR	20H.0			;清"0"标志
	CLR	21H.3			;
	SETB	21H.4			;分到,读温度标志
					;
TO22:	CLR	P0.4			;
	MOV	4FH,	#19H		;
	SETB	20H.6			;可消隐显示
	JNB	20H.5,	TO23		;
	MOV	R0,	4EH		;
	MOV	@R0,	4DH		;
	MOV	A,	2EH		;
	JNZ	TO221			;
	CLR	20H.5			;
TO221:	DEC	2EH			;
					;
TO23:	LCALL	XSCL			;调用显示处理
	MOV	40H,	47H		;
					;
TOED:	CLR	PSW.3			;
	POP	B			;
	POP	ACC			;
	RETI				;
					;
READ:	MOV	R7,	#07H		;
	LCALL	ST			;****读数据
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	REED2		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#30H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
	LCALL	ST			;
	MOV	A,	#0DFH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	READ		;
					;
	MOV	R0,	#47H		;数据存放地址
					;
READ1:	LCALL	SJJS			;
	MOV	B,	A		;
	MOV	A,	R0		;
	CJNE	A,	#41H,	READ2	;
	MOV	A,	B		;
	CJNE	A,	#00H,	READ2	;
	MOV	B,	#08H		;
READ2:	MOV	A,	B		;
	MOV	@R0,	A		;
	DJNZ	R7,	SACK		;
	LCALL	MNACK			;
					;
REED1:	LCALL	STOP
	LCALL	ST			;****读安全数据
	MOV	A,	#0AEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	REED2		;
	MOV	A,	#00H		;写读操作地址
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
	LCALL	ST			;
	MOV	A,	#0AFH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	READ		;
					;
	MOV	R7,	#04H		;
	MOV	R0,	#48H		;数据存放地址
					;
READ21:	LCALL	SJJS			;
	MOV	@R0,	A		;
	DJNZ	R7,	SACK1		;
	LCALL	MACK			;
	LCALL	SJJS			;读与晶体关联温度21度基准
	MOV	50H,	A		;保存50H
	LCALL	MNACK			;
REED2:	LCALL	STOP			;
	RET				;

SACK:	LCALL	MACK			;*****
	DEC	R0			;
	AJMP	READ1			;
					;
SACK1:	LCALL	MACK			;*****
	INC	R0			;
	AJMP	READ21			;
					;
RRR:	MOV	R7,	#02H		;
	LCALL	ST			;****读数据
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	RRRD1		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#12H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
	LCALL	ST			;
	MOV	A,	#0DFH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	RRR		;
					;
	MOV	R0,	#56H		;数据存放地址
RRR1:	LCALL	SJJS			;
RRR2:	MOV	@R0,	A		;
	DJNZ	R7,	RSACK		;
	LCALL	MNACK			;
RRRD1:	LCALL	STOP			;
	RET				;
					;
RSACK:	LCALL	MACK			;*****
	INC	R0			;
	LJMP	RRR1			;
					;
XRR:	LCALL	XSZT			;
	LCALL	ST			;
	MOV	A,	#0DEH		;DE
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XRRED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#12H		;12
	LCALL	SJFS			;
	LCALL	CACK			;
					;
	MOV	R0,	#58H		;
	MOV	R3,	#02H		;
XRR1:	MOV	A,	@R0		;
	LCALL	SJFS			;
	LCALL	CACK			;
	INC	R0			;
	DJNZ	R3,	XRR1		;
					;
XRRED:	LCALL	STOP			;
	RET				;
					;
XAQ:	JNB	21H.5,	XAQ00		;没有"0"点到标志,退出
	JB	22H.1,	XAQ00		;有写过保护,退出
XAQG:	SETB	22H.1			;写写过保护
	LCALL	XSZT			;*****写安全日期
	LCALL	ST			;
	MOV	A,	#0AEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XAQED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
	MOV	0A6H,	#0E1H		;喂狗
	MOV	0A6H,	#1EH		;

	MOV	R0,	#48H		;
	MOV	R3,	#02H		;
XAQ1:	MOV	A,	@R0		;
	LCALL	SJFS			;
	LCALL	CACK			;
	INC	R0			;
	DJNZ	R3,	XAQ1		;
					;
XAQED:	LCALL	STOP			;
	AJMP	XAQ01
XAQ00:	CLR	22H.1			;
XAQ01:	RET				;
					;
XPM:	LCALL	XSZT			;*****写PPM
	LCALL	ST			;细调
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XPMED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#12H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
XPM1:	MOV	A,	56H		;		;
	LCALL	SJFS			;
	LCALL	CACK			;
XPMED:	LCALL	STOP			;
xpmdd:	RET				;
					;
XPM20:	LCALL	XSZT			;*****写PPM
	LCALL	ST			;粗调0-7
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XPM2ED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#13H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
XPM21:	MOV	A,	57H		;		;
	LCALL	SJFS			;
	LCALL	CACK			;
XPM2ED:	LCALL	STOP			;
	RET				;
					;
XBM:	LCALL	XSZT			;*****写编码
	LCALL	ST			;
	MOV	A,	#0AEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XBMED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#02H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
	MOV	R0,	#4AH		;
	MOV	R3,	#02H		;
XBM1:	MOV	A,	@R0		;
	LCALL	SJFS			;
	LCALL	CACK			;
	INC	R0			;
	DJNZ	R3,	XBM1		;
					;
XBMED:	LCALL	STOP			;
	RET				;
					;
XJZ:	LCALL	XSZT			;*****写编码
	LCALL	ST			;
	MOV	A,	#0AEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XJZED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#04H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
	MOV	A,	50H		;
	LCALL	SJFS			;
	LCALL	CACK			;

XJZED:	LCALL	STOP			;
	RET				;
					;
XSZ:	LCALL	XSZT			;****写时钟数据
	LCALL	ST			;
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XSZED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#30H		;
	LCALL	SJFS			;
	LCALL	CACK			;
					;
	MOV	R0,	#47H		;
	MOV	R3,	#07H		;
XSZ1:	MOV	A,	@R0		;
	LCALL	SJFS			;
	LCALL	CACK			;
	DEC	R0			;
	DJNZ	R3,	XSZ1		;
					;
XSZED:	LCALL	STOP			;
	RET				;
					;
XSZT:	MOV	0A6H,	#0E1H		;喂狗
	MOV	0A6H,	#1EH		;
	LCALL	ST			;****写时钟数据头
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XSZTED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#3FH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#02H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	LCALL	STOP			;
					;
	LCALL	ST			;
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XSZTED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#3FH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	#06H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	LCALL	STOP			;
	LJMP	XSZTDD			;
					;
XSZTED:	LCALL	STOP			;
XSZTDD:	RET				;
					;
XSCL:	LCALL	WG1			;
	MOV	DPTR,	#0030H		;****发送显示数据
	MOV	A,	41H		;星期
	MOVC	A,	@A+DPTR		;
	MOV	R6,	#08H		;
	CLR	C			;
XSCLX:	RRC	A			;
	MOV	P0.2,	C		;发送数据
	CLR	P0.1			;时钟操作
	NOP				;
	NOP				;
	SETB	P0.1			;
	DJNZ	R6,	XSCLX		;
					;
	MOV	R0,	#44H		;年.月.日
	MOV	R7,	#03H		;
					;
XSCLR1:	MOV	R6,	#08H		;
	MOV	A,	@R0		;
	MOV	B,	A		;
	MOV	A,	R0		;
	CJNE	A,	#45H,	XSCLR11	;
	MOV	A,	B		;
	ANL	A,	#7FH		;

⌨️ 快捷键说明

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