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

📄 tls6.asm

📁 用于手持时钟受时
💻 ASM
📖 第 1 页 / 共 3 页
字号:
					;*****铁路时钟
;	P0M1	DATA	84H		;口0的设置字节
;	P0M2	DATA	85H		;
;	P1M1	DATA	91H		;口1的设置字节
;	P1M2	DATA	92H		;
;	WDRST	DATA	0A6H		;片内狗的定时设置字节
	SDA	EQU	P1.2		;
	SCK	EQU	P1.3		;
	ACK	BIT	00H		;
					;
	ORG	0000H			;
	AJMP	AA			;
					;
	ORG	000BH			;
	AJMP	TO			;10毫秒定时中断
					;
	ORG	0023H			;****串行通信矢量
	LJMP	JS			;
					;
	ORG	0030H			;
	DB	88H,0DBH,94H,92H,0C3H	;输出为高有效0,1,2,3,4
	DB	0A2H,0A0H,9BH,80H,83H	;	     5,6,7,8,9
					;	;
	ORG	0040H			;
AA:	MOV	0A6H,	#0E1H		;喂狗
	MOV	0A6H,	#1EH		;
	MOV	84H,	#01H		;置P0口,强上拉
	MOV	85H,	#0FEH		;
	MOV	91H,	#0E0H		;
	MOV	92H,	#0CH		;
	MOV	P0,	#0FFH		;
	MOV	P1,	#0FFH		;
	MOV	R0,	#20H		;
	MOV	R7,	#50H		;
	MOV	A,	#00H		;
AA1:	MOV	@R0,	A		;
	INC	R0			;
	DJNZ	R7,	AA1		;

	MOV	SP,	#70H		;
	MOV	TH0,	#070H		;10毫秒定时(11.0596M时钟)
	MOV	TL0,	#00H		;
	MOV	TMOD,	#21H		;
	MOV	SCON,	#50H		;
	MOV	TH1,	#0FAH		;2400bit
	MOV	TL1,	#0FAH		;
        MOV     0A8H,   #92H            ;	MOV	IE,	#92H		;
        MOV     0B8H,   #02H            ;	MOV	IP,	#02H		;
					;
	SETB	EA			;允许中断;	SETB	ET0			;允许定时器0中断
	SETB	TR0			;启动定时器0
	SETB	ES			;允许接收
	CLR	RI			;清接收标志
	SETB	ET0			;
	SETB	TR1			;启动定时器1
					;
	MOV	P0,	#7FH		;
	MOV	P1,	#0FFH		;
	CLR	P0.7			;
					;
	MOV	0A7H,	#07H		;2.1秒片内狗启动
	MOV	4FH,	#19H		;
	SETB	P0.4			;
	SETB	P1.0			;
	SETB	P1.1			;
	SETB	22H.1			;置写保护标志
	LCALL	CW			;
					;
	LCALL	READ			;
					;
	LCALL	CW			;
					;
	LCALL	READ			;
	MOV	A,	45H		;
	ANL	A,	#3FH		;
	ORL	A,	#80H		;
	MOV	B,	A		;
	LCALL	SZCS			;
					;
AAA:	SETB	ES			;
	CLR	RI			;
	JB	P0.0,	AAA1		;***向左键
	LCALL	YSQ			;
	JB	P0.0,	AAA1		;
	JB	20H.1,	AAA11		;
	SETB	20H.1			;
	JB	20H.5,	AAA02		;
	SETB	20H.5			;置时钟修改标志
AAA02:	MOV	2EH,	#09H		;修改操作延时
	SETB	21H.1			;
	MOV	A,	#11H		;
	CLR	C			;
	SUBB	A,	2FH		;
	JNC	AAA03			;
	MOV	2FH,	#11H		;
	AJMP	AAAED			;
AAA03:	INC	2FH			;
	AJMP	AAAED			;
					;
AAA1:	CLR	20H.1			;清按键标志
AAA11:	JB	P1.7,	AAA2		;***加1键
	LCALL	YSQ			;
	JB	P1.7,	AAA2		;
	JB	20H.2,	AAA21		;
	SETB	20H.2			;
	JB	20H.5,	AAA12		;
	AJMP	AAAED			;
AAA12:	MOV	2EH,	#09H		;
	LCALL	UCL			;
	AJMP	AAAED			;
					;
AAA2:	CLR	20H.2			;清按键标志
AAA21:	JB	P1.6,	AAA3		;***减1键
	LCALL	YSQ			;
	JB	P1.6,	AAA3		;
	JB	20H.3,	AAA31		;
	SETB	20H.3			;
	JB	20H.5,	AAA22		;
	AJMP	AAAED			;
AAA22:	MOV	2EH,	#09H		;
	LCALL	DCL			;
AAA23:	AJMP	AAAED			;
					;
AAA3:	CLR	20H.3			;清按键标志
AAA31:	JB	P1.5,	AAA4		;***向右键
	LCALL	YSQ			;
	JB	P1.5,	AAA4		;
	JB	20H.4,	AAA23		;
	SETB	20H.4			;
	JB	20H.5,	AAA32		;
	SETB	20H.5			;
AAA32:	MOV	2EH,	#09H		;
	SETB	21H.1			;
	MOV	A,	2FH		;
	CLR	C			;
	SUBB	A,	#02H		;
	JNC	AAA33			;
	MOV	2FH,	#01H		;
	AJMP	AAAED			;
AAA33:	DEC	2FH			;
	AJMP	AAAED			;
					;
AAA500:	LCALL	XAQ			;
	AJMP	AAA6			;
					;
AAA501:	MOV	49H,	B		;
	AJMP	AAA500			;
					;
AAA502:	MOV	48H,	B		;
	AJMP	AAA500			;
					;
AAA4:	CLR	20H.4			;清按键标志
					;
AAA5:	JNB	21H.5,	AAA6		;
	JB	21H.6,	AAA6		;
	SETB	21H.6			;置安全操作标志
	INC	49H			;加个位
	MOV	A,	49H		;
	ANL	A,	#0FH		;
	MOV	B,	A		;保存个位
	CLR	C			;
	SUBB	A,	#0AH		;
	JC	AAA500			;保存数据
	MOV	A,	49H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	MOV	B,	A		;
	CLR	C			;
	SUBB	A,	#0A0H		;
	JC	AAA501			;保存十位
	MOV	49H,	#00H		;
	INC	48H			;
	MOV	A,	48H		;
	ANL	A,	#0FH		;
	CLR	C			;
	SUBB	A,	#0AH		;
	JC	AAA500			;保存百位
	MOV	A,	48H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	MOV	B,	A		;
	CLR	C			;
	SUBB	A,	#0A0H		;
	JC	AAA502			;
	MOV	48H,	#00H		;
	AJMP	AAA500			;
					;
AAA6:	JNB	22H.2,	AAAED		;
	JB	22H.3,	AAAED		;
	SETB	22H.3			;
	CLR	C			;
	MOV	A,	4CH		;
	JZ	AAA65			;
					;
AAA60:	MOV	28H,	4EH		;保存当前温度数据;
	LCALL	PMWD			;
AAA65:	CLR	22H.2			;清温度变化标志

AAAED:	AJMP	AAA			;主程序结束,
					;
PMWD:	CLR	C			;
	MOV	A,	4EH		;
	ANL	A,	#0F0H		;
	SWAP	A			;
	MOV	B,	#0AH		;
	MUL	AB			;
	MOV	B,	A		;
	MOV	A,	4EH		;
	ANL	A,	#0FH		;
	ADD	A,	B		;
	MOV	29H,	A		;29H保存温度转换值
	CLR	C			;
	MOV	A,	29H		;
					;
	CLR	C			;
	SUBB	A,	#20		;-21度基准值
	JC	PMWDD			;
	CLR	C			;
	MOV	B,	#2		;
	DIV	AB			;
	JZ	PMWDE1			;
	CLR	C			;
	MOV	B,	A		;
	MOV	A,	50H
	SUBB	A,	B		;
	AJMP	PMWDCL			;
					;
PMWDD:	CLR	C			;
	MOV	A,	#20		;
	SUBB	A,	29H		;
	MOV	B,	#2		;
	DIV	AB			;
	JZ	PMWDE1			;
	MOV	B,	A		;
	MOV	A,	50H		;
	SUBB	A,	B		;
	AJMP	PMWDCL			;
					;
PMWDE1:	MOV	4CH,	50H		;
	AJMP	PMWDE2			;			;
					;
PMWDCL:	MOV	4CH,	A		;
PMWDE2:	LCALL	XPM			;

PMWDED:	RET				;
					;
CW:	SETB	P1.4			;
	LCALL	INT			;
	MOV	A,	#0CCH		;
	LCALL	FSWD			;
	MOV	A,	#44H		;
	LCALL	FSWD			;
	LCALL	YS500			;
	lcall	ys60			;
	LCALL	YS60			;
	lcall	ys60			;
	LCALL	INT			;
	MOV	A,	#0CCH		;
	LCALL	FSWD			;
	MOV	A,	#00BEH		;
	LCALL	FSWD			;
	LCALL	RDWD			;
	MOV	A,	61H		;
	SWAP	A			;
	ANL	A,	#0FH		;
	MOV	B,	A		;
	MOV	A,	60H		;
	SWAP	A			;
	ORL	A,	B		;
	MOV	B,	#0AH		;
	CLR	C			;
	DIV	AB			;
	SWAP	A			;
	ORL	A,	B		;
	MOV	4EH,	A		;
	RET				;
					;
UCL:	LCALL	WG1			;****加处理
	MOV	A,	2FH		;
	CJNE	A,	#01H,	UCL0A	;安全个位
	MOV	A,	49H		;
	ANL	A,	#0FH		;
	INC	A			;
	CLR	C			;
	SUBB	A,	#0AH		;
	JC	UCL01			;

	MOV	A,	49H		;
	ANL	A,	#0F0H		;个位=0
	MOV	49H,	A		;
	AJMP	UCL02			;
					;
UCL01:	INC	49H			;个位+1
UCL02:	AJMP	UCLED1			;
					;
UCL0A:	CJNE	A,	#02H,	UCL2	;安全十位
	MOV	A,	49H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	CLR	C			;
	SUBB	A,	#0A0H		;
	JC	UCL0A1			;
	MOV	A,	49H		;
	ANL	A,	#0FH		;十位=0
	MOV	49H,	A		;
	AJMP	UCL0A2			;
					;
UCL0A1:	MOV	A,	49H		;
	CLR	C			;
	ADD	A,	#10H		;十位+1(10)
	MOV	49H,	A		;
UCL0A2:	AJMP	UCLED1			;
					;
UCL2:	CJNE	A,	#03H,	UCL3	;安全百位
	MOV	A,	48H		;
	ANL	A,	#0FH		;
	INC	A			;
	CLR	C			;
	SUBB	A,	#0AH		;
	JC	UCL21			;
	MOV	A,	48H		;
	ANL	A,	#0F0H		;百位=0
	MOV	48H,	A		;
	AJMP	UCL02			;
					;
UCL21:	INC	48H			;百位+1
UCL22:	AJMP	UCLED1			;
					;
UCL3:	CJNE	A,	#04H,	UCL4	;
	MOV	A,	48H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	CLR	C			;
	SUBB	A,	#0A0H		;
	JC	UCL31			;
	MOV	A,	48H		;
	ANL	A,	#0FH		;十位=0
	MOV	48H,	A		;
	AJMP	UCL32			;
					;
UCL31:	MOV	A,	48H		;
	CLR	C			;
	ADD	A,	#10H		;十位+1(10)
	MOV	48H,	A		;
UCL32:	AJMP	UCLED1			;
					;
UCL4:	CJNE	A,	#05H,	UCL5	;秒个位
	MOV	A,	47H		;
	ANL	A,	#0FH		;
	INC	A			;秒个位+1
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#0AH		;>9?
	JC	UCL41			;
	MOV	B,	#00H		;>9,=0
					;
UCL41:	MOV	A,	47H		;
	ANL	A,	#0F0H		;
	ORL	A,	B		;
	MOV	2DH,	#30H		;
	MOV	2CH,	A		;
	MOV	47H,	A		;
	LJMP	UCLED			;
					;
UCL5:	CJNE	A,	#06H,	UCL6	;秒十位
	MOV	A,	47H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;秒十位+10
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#60H		;>6*?
	JC	UCL51			;
	MOV	B,	#00H		;>60,=0*
					;
UCL51:	MOV	A,	47H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	2DH,	#30H		;
	MOV	2CH,	A		;
	MOV	47H,	A		;
	LJMP	UCLED			;
					;
UCL6:	CJNE	A,	#07H,	UCL7	;分个位
	MOV	A,	46H		;
	ANL	A,	#0FH		;
	INC	A			;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#0AH		;>9?
	JC	UCL61			;
	MOV	B,	#00H		;
					;
UCL61:	MOV	A,	46H		;
	ANL	A,	#0F0H		;
	ORL	A,	B		;
	MOV	2DH,	#31H		;
	MOV	2CH,	A		;
	MOV	46H,	A		;
	LJMP	UCLED			;
					;
UCL7:	CJNE	A,	#08H,	UCL8	;分十位
	MOV	A,	46H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#60H		;
	JC	UCL71			;
	MOV	B,	#00H		;
					;
UCL71:	MOV	A,	46H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	2DH,	#31H		;
	MOV	2CH,	A		;
	MOV	46H,	A		;
	LJMP	UCLED			;
					;
UCL8:	CJNE	A,	#09H,	UCL9	;时个位
	MOV	A,	45H		;
	ANL	A,	#0FH		;
	INC	A			;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#0AH		;
	JC	UCL81			;
	MOV	B,	#00H		;
					;
UCL81:	MOV	A,	45H		;
	ANL	A,	#0F0H		;
	ORL	A,	B		;
	MOV	2DH,	#32H		;
	MOV	2CH,	A		;
	MOV	45H,	A		;
	LJMP	UCLED			;
					;
UCL9:	CJNE	A,	#0AH,	UCLA	;时十位
	MOV	A,	45H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#0E0H		;
	JC	UCL91			;
	MOV	B,	#80H		;
					;
UCL91:	MOV	A,	45H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	ORL	A,	#80H		;
	MOV	2DH,	#32H		;
	MOV	2CH,	A		;
	MOV	45H,	A		;
	LJMP	UCLED			;
					;
UCLA:	CJNE	A,	#0BH,	UCLB	;星期+
	MOV	A,	41H		;
	ANL	A,	#07H		;
	INC	A			;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#07H		;
	JC	UCLA1			;
	MOV	B,	#00H		;
					;
UCLA1:	MOV	A,	41H		;
	ANL	A,	#00H		;
	ORL	A,	B		;
	MOV	2DH,	#36H		;
	MOV	2CH,	A		;
	MOV	41H,	A		;
	LJMP	UCLED			;
					;
UCLB:	CJNE	A,	#0CH,	UCLC	;日个位+
	MOV	A,	44H		;
	ANL	A,	#0FH		;
	INC	A			;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#0AH		;
	JC	UCLB1			;
	MOV	B,	#00H		;
					;
UCLB1:	MOV	A,	44H		;
	ANL	A,	#0F0H		;
	ORL	A,	B		;
	MOV	2DH,	#33H		;
	MOV	2CH,	A		;
	MOV	44H,	A		;		;
	LJMP	UCLED			;
					;
UCLC:	CJNE	A,	#0DH,	UCLD	;日十位
	MOV	A,	44H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#40H		;
	JC	UCLC1			;
	MOV	B,	#00H		;
					;
UCLC1:	MOV	A,	44H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	2DH,	#33H		;
	MOV	2CH,	A		;
	MOV	44H,	A		;
	LJMP	UCLED			;
					;
UCLD:	CJNE	A,	#0EH,	UCLE	;月个位
	MOV	A,	43H		;
	ANL	A,	#0FH		;
	INC	A			;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#0AH		;
	JC	UCLD1			;
	MOV	B,	#00H		;
					;
UCLD1:	MOV	A,	43H		;
	ANL	A,	#0F0H		;
	ORL	A,	B		;
	MOV	2DH,	#34H		;
	MOV	2CH,	A		;
	MOV	43H,	A		;
	LJMP	UCLED			;
					;
UCLE:	CJNE	A,	#0FH,	UCLF	;月十位
	MOV	A,	43H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#20H		;
	JC	UCLE1			;
	MOV	B,	#00H		;
					;
UCLE1:	MOV	A,	43H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	2DH,	#34H		;
	MOV	2CH,	A		;
	MOV	43H,	A		;
	LJMP	UCLED			;
					;
UCLF:	CJNE	A,	#10H,	UCL10	;年个位
	MOV	A,	42H		;
	ANL	A,	#0FH		;
	INC	A			;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#0AH		;
	JC	UCLF1			;
	MOV	B,	#00H		;
					;
UCLF1:	MOV	A,	42H		;
	ANL	A,	#0F0H		;
	ORL	A,	B		;
	MOV	2DH,	#35H		;
	MOV	2CH,	A		;
	MOV	42H,	A		;
	LJMP	UCLED			;
					;
UCL10:	CJNE	A,	#11H,	UCLED2	;年十位
	MOV	A,	42H		;
	ANL	A,	#0F0H		;
	ADD	A,	#10H		;
	CLR	C			;
	MOV	B,	A		;
	SUBB	A,	#0A0H		;
	JC	UCL101			;
	MOV	B,	#00H		;
					;
UCL101:	MOV	A,	42H		;
	ANL	A,	#0FH		;
	ORL	A,	B		;
	MOV	2DH,	#35H		;
	MOV	2CH,	A		;
	MOV	42H,	A		;
	LJMP	UCLED			;
					;
UCLED1:	LCALL	XAQG			;
	AJMP	UCLED2			;
					;
UCLED:	LCALL	XGX			;
	NOP				;
UCLED2:	LCALL	XSCL			;
	MOV	40H,	#00h		;
	MOV	4FH,	#00H
	CLR	21H.4
	RET				;
					;
DCL:					;****减处理
	RET				;
					;
XGX:	MOV	0A6H,	#0E1H		;喂狗
	MOV	0A6H,	#1EH		;
	JB	21H.7,	XGXDD		;
	SETB	21H.7			;
	LCALL	XSZT			;****修改写
	LCALL	ST			;
	MOV	A,	#0DEH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	JNB	ACK,	XGXED		;
	MOV	A,	#00H		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	2DH		;
	LCALL	SJFS			;
	LCALL	CACK			;
	MOV	A,	2CH		;
	LCALL	SJFS			;
	LCALL	CACK			;
XGXED:	LCALL	STOP			;
	CLR	21H.7			;
XGXDD:	RET				;
					;
INT:	SETB	P1.4			;****1820初始化
	NOP				;
	CLR	P1.4			;
	LCALL	YS500			;500US
	SETB	P1.4			;
	NOP				;
	NOP				;
	NOP				;
	NOP				;
	MOV	R3,	#25H		;
INT01:	JNB	P1.4,	INTED		;
	DJNZ	R3,	INT01		;300US
	AJMP	INT02			;

⌨️ 快捷键说明

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