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

📄 snt-c485.asm

📁 抄录符合DL/T645-1997的电表
💻 ASM
📖 第 1 页 / 共 4 页
字号:
		JB	EVEN,BROD_AB
		JB	RB8,BRA		;偶校验错,出错处理
		LJMP	BROD_AC
BROD_AB:	JNB	RB8,BRA		;偶校验错,出错处理
BROD_AC:	MOV	A,TEMP
		CJNE	A,#68H,BROD_A6A;判断起始符
		MOV	R3,#68H
		MOV	R2,#15
		MOV	R0,#42H

BROD_D:		MOV	YSRES1,#02H	;500MS延时
BROD_AE:	MOV	YSRES2,#0E0H
BROD_AF:	MOV	YSRES3,#0
BROD_AG:	JBC	RI,BROD_AH
		DJNZ	YSRES3,BROD_AG
		DJNZ	YSRES2,BROD_AF
		DJNZ	YSRES1,BROD_AE
BRB:		LJMP	ERR1		;若500MS内没有接收到有效数据,出错处理
BROD_AH:	MOV	A,SBUF
		MOV	TEMP,A
		LCALL	EVENJ
		JB	EVEN,BROD_AI
		JB	RB8,BRB		;偶校验错,出错处理
		LJMP	BROD_AJ
BROD_AI:	JNB	RB8,BRB		;偶校验错,出错处理
BROD_AJ:	MOV	A,TEMP
		MOV	@R0,A
		INC	R0
		ADD	A,R3
		MOV	R3,A
		DJNZ	R2,BROD_D
				;以下判断校验和
		MOV	YSRES1,#02H	;500MS延时
BROD_AK:	MOV	YSRES2,#0E0H
BROD_AL:	MOV	YSRES3,#0
BROD_AM:	JBC	RI,BROD_AN
		DJNZ	YSRES3,BROD_AM
		DJNZ	YSRES2,BROD_AL
		DJNZ	YSRES1,BROD_AK
BRC:		LJMP	ERR1		;若500MS内没有接收到有效数据,出错处理
BROD_AN:	MOV	A,SBUF
		MOV	TEMP,A
		LCALL	EVENJ
		JB	EVEN,BROD_AO
		JB	RB8,BRC		;偶校验错,出错处理
		LJMP	BROD_AP
BROD_AO:	JNB	RB8,BRC		;偶校验错,出错处理
BROD_AP:	MOV	A,R3
		CJNE	A,TEMP,BRC
				;以下判断结束符
		MOV	YSRES1,#02H	;500MS延时
BROD_AQ:	MOV	YSRES2,#0E0H
BROD_AR:	MOV	YSRES3,#0
BROD_AS:	JBC	RI,BROD_AT
		DJNZ	YSRES3,BROD_AS
		DJNZ	YSRES2,BROD_AR
		DJNZ	YSRES1,BROD_AQ
BRD:		LJMP	ERR1		;若500MS内没有接收到有效数据,出错处理
BROD_AT:	MOV	A,SBUF
		MOV	TEMP,A
		LCALL	EVENJ
		JB	EVEN,BROD_AU
		JB	RB8,BRD		;偶校验错,出错处理
		LJMP	BROD_AU
BROD_AV:	JNB	RB8,BRD		;偶校验错,出错处理
BROD_AU:	MOV	A,TEMP
		CJNE	A,#16H,BRD
				;以下判断数据项的正确性
		MOV	A,48H
		CJNE	A,#68H,BRD
		MOV	A,49H
		CJNE	A,#81H,BRD
		MOV	A,4BH
		CJNE	A,#43H,BRD
		MOV	A,4CH
		CJNE	A,#0C3H,BRD
				;以下暂存表地址
		MOV	R2,#6
		MOV	R0,#BADD0
		MOV	R1,#42H
BROD_AW:	MOV	A,@R1
		MOV	@R0,A
		INC	R1
		DEC	R0
		DJNZ	R2,BROD_AW
				;以下整理读数值,存于DATA4--DATA1中
		SETB	TONG_B
		MOV	SCON,#50H
		SETB	SUCESS1
		SETB	ES
		RET
ERR1:		SETB	TONG_B
		MOV	SCON,#50H
		CLR	SUCESS1
		SETB	ES
		RET

	;**************************************
	;整理广播读表地址所发命令数据子程序
	;数据存于:41H-4EH
	;**************************************
BRO_COLL:	MOV	41H,#68H	;起始符
		MOV	R3,#68H		;R3:校验和
		MOV	TEMP,#0AAH	;广播地址,6个0AAH
		MOV	R1,#42H
		MOV	R2,#6
BRO_C1:		MOV	A,TEMP
		MOV	@R1,A
		ADD	A,R3
		MOV	R3,A
		INC	R1
		DJNZ	R2,BRO_C1
		MOV	48H,#68H
		MOV	A,R3
		ADD	A,#68H
		MOV	R3,A
		MOV	49H,#01H	;控制码
		MOV	A,R3
		ADD	A,#01H
		MOV	R3,A
		MOV	4AH,#02H	;数据域长度
		MOV	A,R3
		ADD	A,#02H
		MOV	R3,A
		MOV	4BH,#43H	;数据标识低字节
		MOV	A,R3
		ADD	A,#43H
		MOV	R3,A
		MOV	4CH,#0C3H	;数据标识高字节
		MOV	A,R3
		ADD	A,#0C3H
		MOV	R3,A
		MOV	4DH,R3		;校验和
		MOV	4EH,#16H	;结束符
		RET

;**********************************************
;采集器向上位机应答读表地址命令
;**********************************************
RET_ADDR:	JNB	SUCESS1,RET_A4
		LCALL	DACOLL
		CLR	ES
		SETB	TONG_B
		CLR	TONG_A
		MOV	SCON,#50H	  ;通讯用方式1,1位起始位,8位数据位,1位停止位
		MOV	R2,#0AH
		MOV	R1,#41H
RET_A1:		MOV	SBUF,@R1
RET_A2:		JBC	TI,RET_A3
		LJMP	RET_A2
RET_A3:		INC	R1
		DJNZ	R2,RET_A1
		SETB	ES
RET_A4:		CLR	REC_COMM
		CLR	ADDR_READ
		RET

	;*********************************************
	;整理向上位机发送地址数据帧所需要的数据
	;*********************************************
DACOLL:		MOV	41H,#97H	;41H:97	起始符
		MOV	R3,#97H
		MOV	42H,#40H	;42H:40	电表代号
		MOV	A,R3
		ADD	A,42H
		MOV	R3,A
		MOV	R2,#6		;43H-48H:A5-A0 采集器地址
		MOV	R0,#BADD5
		MOV	R1,#43H
DAC_1:		MOV	A,@R0
		MOV	@R1,A
		ADD	A,R3
		MOV	R3,A
		INC	R1
		INC	R0
		DJNZ	R2,DAC_1
		MOV	A,R3
		MOV	@R1,A		;49H:R3	校验和
		INC	R1
		MOV	@R1,#16H	;4AH:16	结束符
		RET


;**********************************************
;对电表写地址请求子程序
;**********************************************
WRADDR:		CLR	TONG_A		;切换到RS485通道
		CLR	TONG_B
		CLR	ES		;不允许串口中断
		SETB	TR		;发送允许
		MOV	SCON,#0D0H	;串口工作于方式3
		LCALL	WR_COLL		;整理所要发送的数据存于41H--4EH
		MOV	SBUF,#0FEH	;发送前导符
		SETB	TB8		;
WRAD1:		JBC	TI,WRAD2
		LJMP	WRAD1
WRAD2:		MOV	R2,#18
		MOV	R0,#41H		;发送的命令存于41H--4EH
WRAD2A:		MOV	A,@R0
		LCALL	EVENJ		;偶校验
		JB	EVEN,WRAD3
		CLR	TB8
		LJMP	WRAD4
WRAD3:		SETB	TB8
WRAD4:		MOV	A,@R0
		INC	R0
		MOV	SBUF,A
WRAD5:		JBC	TI,WRAD6
		LJMP	WRAD5
WRAD6:		DJNZ	R2,WRAD2A	;是否发送完毕
			;命令发送完毕
			;*******************************
			;*******************************
			;以下为接收电表返回数据程序
		CLR	TR		;开始接收
WRAD6A:		MOV	YSRES1,#02H	;500MS延时
WRAD7:		MOV	YSRES2,#0E0H
WRAD8:		MOV	YSRES3,#0
WRAD9:		JBC	RI,WRADA
		DJNZ	YSRES3,WRAD9
		DJNZ	YSRES2,WRAD8
		DJNZ	YSRES1,WRAD7
WRA:		LJMP	ERR2		;若500MS内没有接收到有效数据,出错处理
WRADA:		MOV	A,SBUF
		MOV	TEMP,A
		LCALL	EVENJ
		JB	EVEN,WRADB
		JB	RB8,WRA		;偶校验错,出错处理
		LJMP	WRADC
WRADB:		JNB	RB8,WRA		;偶校验错,出错处理
WRADC:		MOV	A,TEMP
		CJNE	A,#68H,WRAD6A	;判断起始符
		MOV	R3,#68H
		MOV	R2,#9
		MOV	R0,#42H

WRADD:		MOV	YSRES1,#02H	;500MS延时
WRADE:		MOV	YSRES2,#0E0H
WRADF:		MOV	YSRES3,#0
WRADG:		JBC	RI,WRADH
		DJNZ	YSRES3,WRADG
		DJNZ	YSRES2,WRADF
		DJNZ	YSRES1,WRADE
WRB:		LJMP	ERR2		;若500MS内没有接收到有效数据,出错处理
WRADH:		MOV	A,SBUF
		MOV	TEMP,A
		LCALL	EVENJ
		JB	EVEN,WRADI
		JB	RB8,WRB		;偶校验错,出错处理
		LJMP	WRADJ
WRADI:		JNB	RB8,WRB		;偶校验错,出错处理
WRADJ:		MOV	A,TEMP
		MOV	@R0,A
		INC	R0
		ADD	A,R3
		MOV	R3,A
		DJNZ	R2,WRADD
				;以下判断校验和
		MOV	YSRES1,#02H	;500MS延时
WRADK:		MOV	YSRES2,#0E0H
WRADL:		MOV	YSRES3,#0
WRADM:		JBC	RI,WRADN
		DJNZ	YSRES3,WRADM
		DJNZ	YSRES2,WRADL
		DJNZ	YSRES1,WRADK
WRC:		LJMP	ERR2		;若500MS内没有接收到有效数据,出错处理
WRADN:		MOV	A,SBUF
		MOV	TEMP,A
		LCALL	EVENJ
		JB	EVEN,WRADO
		JB	RB8,WRC		;偶校验错,出错处理
		LJMP	WRADP
WRADO:		JNB	RB8,WRC		;偶校验错,出错处理
WRADP:		MOV	A,R3
		CJNE	A,TEMP,WRC
				;以下判断结束符
		MOV	YSRES1,#02H	;500MS延时
WRADQ:		MOV	YSRES2,#0E0H
WRADR:		MOV	YSRES3,#0
WRADS:		JBC	RI,WRADT
		DJNZ	YSRES3,WRADS
		DJNZ	YSRES2,WRADR
		DJNZ	YSRES1,WRADQ
WRD:		LJMP	ERR2		;若500MS内没有接收到有效数据,出错处理
WRADT:		MOV	A,SBUF
		MOV	TEMP,A
		LCALL	EVENJ
		JB	EVEN,WRADU
		JB	RB8,WRD		;偶校验错,出错处理
		LJMP	WRADU
WRADV:		JNB	RB8,WRD		;偶校验错,出错处理
WRADU:		MOV	A,TEMP
		CJNE	A,#16H,WRD
				;以下判断数据项的正确性
		MOV	A,48H
		CJNE	A,#68H,WRD
		MOV	A,49H
		CJNE	A,#8AH,WRD
		MOV	A,4AH
		CJNE	A,#00H,WRD
				;以下判断表地址是否正确
		MOV	R2,#6
		MOV	R0,#BADD0
		MOV	R1,#42H
WRADW:		MOV	A,@R0
		MOV	TEMP,A
		MOV	A,@R1
		CJNE	A,TEMP,WRD
		INC	R1
		DEC	R0
		DJNZ	R2,WRADW
				;以下整理读数值,存于DATA4--DATA1中
		SETB	TONG_B
		MOV	SCON,#50H
		SETB	SUCESS2
		SETB	ES
		RET
ERR2:		SETB	TONG_B
		MOV	SCON,#50H
		CLR	SUCESS2
		SETB	ES
		RET

	;**************************************
	;整理写表地址所发命令数据子程序
	;数据存于:41H-52H
	;**************************************
WR_COLL:	MOV	41H,#68H	;起始符
		MOV	R3,#68H		;R3:校验和
		MOV	TEMP,#99H	;广播地址,6个99H
		MOV	R1,#42H
		MOV	R2,#6
WR_C1:		MOV	A,TEMP
		MOV	@R1,A
		ADD	A,R3
		MOV	R3,A
		INC	R1
		DJNZ	R2,WR_C1
		MOV	48H,#68H
		MOV	A,R3
		ADD	A,#68H
		MOV	R3,A
		MOV	49H,#0AH	;控制码
		MOV	A,R3
		ADD	A,#0AH
		MOV	R3,A
		MOV	4AH,#06H	;数据域长度
		MOV	A,R3
		ADD	A,#06H
		MOV	R3,A
		MOV	R1,#4BH		;表地址(加33H处理)送4BH-50H
		MOV	R0,#BADD0
		MOV	R2,#6
WR_C2:		MOV	A,@R0
		ADD	A,#33H
		MOV	@R1,A
		ADD	A,R3
		MOV	R3,A
		INC	R1
		DEC	R0
		DJNZ	R2,WR_C2
		MOV	51H,R3		;校验和
		MOV	52H,#16H	;结束符
		RET

;**********************************************
;采集器向上位机应答写表地址命令
;**********************************************
RET_WR:		JNB	SUCESS2,RET_W4
		LCALL	WRACO
		CLR	ES
		SETB	TONG_B
		CLR	TONG_A
		MOV	SCON,#50H	  ;通讯用方式1,1位起始位,8位数据位,1位停止位
		MOV	R2,#0AH
		MOV	R1,#41H
RET_W1:		MOV	SBUF,@R1
RET_W2:		JBC	TI,RET_W3
		LJMP	RET_W2
RET_W3:		INC	R1
		DJNZ	R2,RET_W1
		CLR	REC_COMM
		CLR	ADDR_WR
		SETB	ES
RET_W4:		CLR	REC_COMM
		CLR	ADDR_WR
		RET

	;*********************************************
	;整理向上位机发送写地址数据帧所需要的数据
	;*********************************************
WRACO:		MOV	41H,#97H	;41H:97	起始符
		MOV	R3,#97H
		MOV	42H,#40H	;42H:40	电表代号
		MOV	A,R3
		ADD	A,42H
		MOV	R3,A
		MOV	R2,#6		;43H-48H:A5-A0 采集器地址
		MOV	R0,#BADD5
		MOV	R1,#43H
WRAC_1:		MOV	A,@R0
		MOV	@R1,A
		ADD	A,R3
		MOV	R3,A
		INC	R1
		INC	R0
		DJNZ	R2,WRAC_1
		MOV	A,R3
		MOV	@R1,A		;49H:R3	校验和
		INC	R1
		MOV	@R1,#16H	;4AH:16	结束符
		RET


;**********************************************
;查采集器所接电表数子程序
;结果存于寄存器DBSHU中
;**********************************************
CBSHU:		MOV	R2,#0

CBSHU_0:	MOV	A,R2
		CJNE	A,#36,CBSHU_1	;若电表序号大于35,则转EEPROM的第2页
CBSHU_1:	JC	CBSHU_2
		LJMP	CBSHU_4
CBSHU_2:	MOV	B,#7
		MOV	A,R2
		MUL	AB
		MOV	DPL,A		;找到数据块的首址
		MOV	DPH,#1
		LCALL	READ_1		;读出数据,若为AA,则该块存电表地址,否则为结束
		CJNE	A,#0AAH,CBSHU_3
		INC	R2		;为AAH,继续查找
		LJMP	CBSHU_0
CBSHU_3:	MOV	A,R2		;不是AA,结束
		MOV	DBSHU,A
		RET
CBSHU_4:	MOV	A,R2		;在页面2中查找
		CLR	C
		SUBB	A,#36
		MOV	R2,A
CBSHU_5:	MOV	A,R2
		CJNE	A,#35,CBSHU_6
CBSHU_6:	JC	CBSHU_7
		LJMP	CBSHU_8
CBSHU_7:	MOV	B,#7
		MOV	A,R2
		MUL	AB
		MOV	DPL,A		;找到数据块的首址
		MOV	DPH,#2
		LCALL	READ_1		;读出数据,若为AA,则该块存电表地址,否则为结束
		CJNE	A,#0AAH,CBSHU_8
		INC	R2
		LJMP	CBSHU_5
CBSHU_8:	MOV	A,R2		;不是AA,结束
		ADD	A,#36
		MOV	DBSHU,A
		RET



;**********************************************
;存储采集器地址子程序,设置采集器地址用
;存采集器地址A6..A0,序列号SERNO
;**********************************************
STOR_ADDR:	PUSH	ACC
		PUSH	B
		PUSH	PSW
		PUSH	DPL
		PUSH	DPH
		MOV	A,R2
		PUSH	ACC
		MOV	A,R1
		PUSH	ACC
		MOV	A,R0
		PUSH	ACC
		MOV	R2,#07H
		MOV	R0,#ADDR6
		MOV	DPTR,#0000H	;EEPROM:000-006:存采集器地址
STOR_A1:	MOV	A,@R0		;007:存序列号
		LCALL	WRITE_1
		INC	R0
		INC	DPL
		DJNZ	R2,STOR_A1
		MOV	A,SERNO
		MOV	SER,A
		LCALL	WRITE_1
		MOV	R2,#07H
		MOV	R0,#ADDR6
		MOV	R1,#CK_ADDR6
STOR_A2:	MOV	A,@R0
		MOV	@R1,A
		INC	R0
		INC	R1
		DJNZ	R2,STOR_A2
		POP	ACC
		MOV	R0,A
		POP	ACC
		MOV	R1,A
		POP	ACC
		MOV	R2,A
		POP	DPH
		POP	DPL
		POP	PSW
		POP	B
		POP	ACC
		RET

;*********************************************
;向上位机回应设置采集器地址子程序
;*********************************************
RET_DI:		MOV	41H,#97H	;41H:97	起始符
		MOV	R3,#97H
		MOV	42H,#40H	;42H:40	电表代号
		MOV	A,R3
		ADD	A,42H
		MOV	R3,A
		MOV	R2,#7		;43H-49H:A6-A0 采集器地址
		MOV	R0,#ADDR6
		MOV	R1,#43H
RET_D1:		MOV	A,@R0
		MOV	@R1,A
		ADD	A,R3
		MOV	R3,A
		INC	R1
		INC	R0
		DJNZ	R2,RET_D1
		MOV	A,SERNO		;4AH:序列号
		MOV	@R1,A
		ADD	A,R3
		MOV	R3,A
		INC	R1
		MOV	A,R3
		MOV	@R1,A		;4BH:R3	校验和
		INC	R1
		MOV	@R1,#16H	;4AH:16	结束符
		MOV	R1,#41H
		MOV	R2,#12
RET_D2:		MOV	SBUF,@R1
RET_D3:		JBC	TI,RET_D4
		LJMP	RET_D3
RET_D4:		INC	R1
		DJNZ	R2,RET_D2
		RET
RET


;*********************************************************************
;增加表地址子程序
;根据表序号增加表地址,按顺序递增
;表地址从100H开始,电表数寄存器为DBSHU,存储块首字节存有数标志AAH,表地址
;从高到低依次为BADD5,BADD4,BADD3,BADD2,BADD1,BADD0
;*********************************************************************
ADDR_ADD:	PUSH	ACC
		PUSH	B
		PUSH	PSW
		PUSH	DPL
		PUSH	DPH
		MOV	A,R3
		PUSH	ACC
		MOV	A,R0
		PUSH	ACC
		LCALL	PAN_HAO
		JB	YOUBIAO,ARD3A
		MOV	A,DBSHU
		CJNE	A,#36,ADDR_A1	;根据表号的大小决定存储的页面
ADDR_A1:	JC	ADDR_A2
		CLR	C		;若表号大于35,存于页面2
		MOV	A,DBSHU
		SUBB	A,#36
		MOV	DPH,#2
		MOV	B,#07H
		MUL	AB
		MOV	DPL,A
		LJMP	ADDR_A3
ADDR_A2:	MOV	A,DBSHU		;若表号小于36,存于页面1
		MOV	B,#07H
		MUL	AB
		MOV	DPL,A
		MOV	DPH,#1
ADDR_A3:	MOV	A,#0AAH		;将首字节写成AAH
		LCALL	WRITE_1
		INC	DPTR		;下面写表号
		MOV	R0,#BADD5
		MOV	R3,#06H
ARAB:		MOV	A,@R0
		LCALL	WRITE_1
		INC	DPTR
		INC	R0
		DJNZ	R3,ARAB
		MOV	A,DBSHU
		INC	A
		MOV	DBSHU,A
		SETB	ZS_OK
		MOV	TEMP,#0A2H	;增表地址标志
		SJMP	ARD3
ARD3A:		CLR	ZS_OK
ARD3:		POP	ACC
		MOV	R0,A
		POP	ACC
		MOV	R3,A
		POP	DPH
		POP	DPL
		POP	PSW
		POP	B
		POP	ACC
		RET

;*****************************************************************
;删除表地址子程序,即将要删除的表地址从EEPROM中删除并将后面的表地址
;依次前移
;*****************************************************************
DEL_ADDR:	PUSH	ACC		;现场保护
		PUSH	B
		PUSH	PSW
		PUSH	DPL
		PUSH	DPH
		MOV	A,R0
		PUSH	ACC
		MOV	A,R1
		PUSH	ACC
		MOV	A,R2
		PUSH	ACC
		MOV	A,R3
		PUSH	ACC
		MOV	A,R6
		PUSH	ACC
		LCALL	PAN_HAO		;判断要删除的表号(存于R2)
		JB	YOUBIAO,DEL_A01
		CLR	ZS_OK
		LJMP	DEL_A3
DEL_T1:		LJMP	DEL_A3A
DEL_A01:	MOV	A,DBSHU		;电表数减1
		DEC	A
		MOV	DBSHU,A
		MOV	TEMP,#0A3H
		SETB	ZS_OK
		MOV	A,R2
		CJNE	A,#35,DEL_T0
DEL_T0:		JNC	DEL_T1
		MOV	R0,A		;R0存被覆盖的表序号
		MOV	R1,A		;R1存下一表序号
		INC	R1
DEL_A0:		MOV	A,R0
		CJNE	A,#35,DEL_A1	;若为EEPROM第1页最后一块表
		LJMP	DEL_3E		;则要单独处理
DEL_A1:		MOV	B,#07H		;要移的表地址全在第1页
		MOV	A,R0
		MUL	AB
		MOV	DPL,A
		MOV	TEMP1,A		;
		MOV	DPH,#01H
		LCALL	READ_1
		CJNE	A,#0AAH,DEL_A3	;若首地址不是AAH,则不是表地址
		MOV	A,R1
		MOV	B,#07H
		MUL	AB
		MOV	DPL,A
		MOV	TEMP2,A
		MOV	R2,#07H
DEL_A2:		MOV	DPL,TEMP2
		LCALL	READ_1		;取下一块表地址数据
		MOV	DPL,TEMP1
		LCALL	WRITE_1		;将下一块表地址数据移到上一区中
		INC	TEMP1
		INC	TEMP2
		DJNZ	R2,DEL_A2	;判该区(7个字节)的数据是否移完
		INC	R0
		INC	R1
		LJMP	DEL_A0
DEL_A3:		POP	ACC
		MOV	R6,A
		POP	ACC
		MOV	R3,A
		POP	ACC
		MOV	R2,A
		POP	ACC
		MOV	R1,A
		POP	ACC
		MOV	R0,A
		POP	DPH
		POP	DPL
		POP	PSW
		POP	B
		POP	ACC
		RET
DEL_3B:		MOV	A,R2
		MOV	R0,A
		MOV	R1,A
		INC	R1
		LJMP	DEL_A5A
DEL_A3A:	CJNE	A,#35,DEL_3B
DEL_3E:		MOV	A,R0
DEL_A4:		MOV	B,#07H		;找到页1中最后1块表的首址
		MOV	A,R0
		MUL	AB
		MOV	TEMP1,A
		CLR	A		;下一表的首地址为页2的第一个字节
		MOV	TEMP2,A
		MOV	R2,#07H
DEL_A5:		MOV	DPH,#2
		MOV	DPL,TEMP2
		LCALL	READ_1
		MOV	DPL,TEMP1

⌨️ 快捷键说明

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