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

📄 m03.asm

📁 C8051单片机汇编源码,LCD,GPS,北斗时间源切换等核心程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;00H: 等待按键有效/空
;01H: 按键20ms等待
;02H: 20ms计时到
;03H: 串口0发送标志
;04H:串口0收到起始字节
;05H:串口0收到物理PID1
;06H:串口0收到命令
;07H:串口0收到物理PID2
;08H:串口0收到参数长度
;09H:串口0收到参数
;0AH:串口0累加和正确,数据串接收完毕
;0BH:串口0错误标志
;0CH:串口0回答标志
;0DH:管理存储器满
;0EH:串口0发送结束标志
;0FH:串口0验证标志
;10H: SEND_M的M04标志
;11H:1秒计时到
;12H:管理程序等待标志
;13H:板卡查询等待标志
;14H:显示时间和状态标志
;15H:收到过秒脉冲标志
;16H:串口1收到起始字节
;17H:串口1收到数据
;18H:串口1累加和正确,数据串接收完毕
;19H:显示粗字标志
;1AH:显示器上参数已被改动
;1BH:M03时区设置的+/-输入值
;1CH: 三位十进制数放入字节单双标志
;1DH: 比较大小结果
;1EH: IIC的ACK位
;1FH: EEPROM初次使用
;20H: 时间设置标志


;0页
;R0: 通用指针
;R1: 通用指针
;1页
;R0: 串口0接收数据指针
;R1: 串口0发送数据指针
;2页
;R0:串口1接收数据指针
;R1:
;3页
;R0:IIC读数据指针
;R1:IIC写数据指针


BIN1		EQU	02H
BIN2		EQU	03H
BIN3		EQU	04H
BIN4		EQU	05H
C1		EQU	06H
C2		EQU	07H

BCD1		EQU	0AH
BCD2		EQU	0BH
BCD3		EQU	0CH
BCD4		EQU	0DH
BCD5		EQU	0EH
C3		EQU	0FH

YEARL		EQU	12H
MONTH		EQU	13H
DATE		EQU	14H
HOUR		EQU	15H
MINUTE		EQU	16H
SECOND		EQU	17H

STAU1		EQU	1AH
STAU2		EQU	1BH
STAU_GPS	EQU	1CH
C4		EQU	1DH

ADDH_IIC	EQU	2BH
ADDL_IIC	EQU	2CH
LONG_IIC	EQU	2DH
ULIMIT		EQU	2EH
VALUE		EQU	2FH
DIS_DL		EQU	30H
DIS_DH		EQU	31H
DIS_COM		EQU	32H
ADDS_PL		EQU	33H
ADDS_PH		EQU	34H
CGP		EQU	35H
COUNT		EQU	36H
COUNT1		EQU	37H
COLUMN		EQU	38H
KEY_VALUE	EQU	39H
PID1_TX0	EQU	3AH
COM_TX0		EQU	3BH
PID2_TX0	EQU	3CH
CHECK_TX0	EQU	3DH
COUNT_TX0	EQU	3EH
PID1_RX0	EQU	3FH
COM_RX0		EQU	40H
PID2_RX0	EQU	41H
CHECK_RX0	EQU	42H
CHECK1_RX0	EQU	43H
COUNT_RX0	EQU	44H
PHASE		EQU	45H
P_LONG		EQU	46H
PID0		EQU	47H
PID1		EQU	48H
GIF_PT		EQU	49H
HOME_ADDH	EQU	4AH
HOME_ADDL	EQU	4BH
ZONE		EQU	4CH
TEMP1		EQU	4DH
TEMP2		EQU	4EH
TEMP3		EQU	4FH
PID2		EQU	50H
FLAG_SEND	EQU	51H
PID3		EQU	52H
PID4		EQU	53H
TCOUNT1		EQU	54H
TCOUNT2		EQU	55H
TCOUNT3		EQU	56H
TEMP_DPL	EQU	57H
TEMP_DPH	EQU	58H
UDR0		EQU	59H
STEP_DISP	EQU	5AH
UDR1		EQU	5BH
CHECK_RX1	EQU	5CH
COUNT_RX1	EQU	5DH
PAME_PT		EQU	5EH
;COUNT2		EQU	5FH


;80H~9FH:串口0发送缓冲区
;A0H~BFH:串口0接收缓冲区
;C0H~CFH:串口1接收缓冲区
;D0H~EFH:键盘输入缓冲区
;F0H~FFH:EEPROM读写缓冲区

SCL	EQU	0B4H  ;P3.4口为SCL
SDA	EQU	0B5H  ;P3.5口为SDA
WP	EQU	0B3H  ;P3.3口为写保护
;*****************************************
	ORG	0000H
	LJMP	INITIAL
        ORG     000BH
        LJMP    T0_OVR
	ORG	0023H
	LJMP	SER0_IRQ
	ORG	002BH
	LJMP	TIMER2_IRQ
	ORG	003BH
	LJMP	SER1_IRQ
	ORG	0043H
	LJMP	EXT_INT2
;*****************************************
;上电初始化
;*****************************************
	ORG	0080H
INITIAL:
	SETB	P3.3			;EEPROM写保护

	MOV	PMR,#41H		;4 CLOCKS PER MACHINE CYCLE, ENABLE THE ON-CHIP MOVX SRAM
	CLR	EWT
	MOV	SP,#5FH			;堆栈设置
INITIAL_IO:
	MOV	P0,#11111111B
	MOV	P1,#00010100B
	MOV	P2,#00011110B
	MOV	P3,#00101011B
INITAL_BIT:
	MOV	20H,#00H
	MOV	21H,#00H
	MOV	22H,#00H
	MOV	23H,#00H
	MOV	24H,#00H	
INITAL_TIMER:
	MOV	TMOD,#00100001B		;T0:MODE1 16位计数;T1:MODE2波特率发生器
	MOV	CKCON,#00010000B	;T0:OSC/12 T1:OSC/4 T2:OSC/12
	MOV	TH0,#0E2H		;10ms计时
	MOV	TL0,#00H
	SETB	TR0       		;开T0
	SETB	ET0			;开T0中断
	MOV	TL1,#0F1H
	MOV	TH1,#0F1H
	SETB	TR1			;开T1
	MOV	T2CON,#00000001B	;MODE:捕获 timer 外部不允许
	MOV	T2MOD,#00010000B	;INT2 auto clear enable
INITAL_UART:
	MOV	PCON,#80H		;SMOD0:1/16
	MOV	SCON,#01000000B		;串口0 MODE1 关接收
	SETB	0DFH			;SMOD1:1/16
	MOV	SCON1,#01010000B	;串口1 MODE1 开接收
	SETB	ES1			;开串口1中断
	SETB	EX2			;开INT2
	SETB	EA			;开总中断
INITAL_MODUE:				;清SRAM
	MOV	DPS,#00H
	MOV	DPTR,#0000H
	MOV	A,#00H
	MOV	COUNT,#04H
	MOV	COUNT1,#00H
INITAL_RAM:
	MOVX	@DPTR,A
	INC	DPTR
	DJNZ	COUNT1,INITAL_RAM
	DJNZ	COUNT,INITAL_RAM

	MOV	TCOUNT1,#00H
	MOV	TCOUNT3,#00H

	LCALL	INI_LCD			;初始化LCD
INITAL_1161:
	MOV	ADDH_IIC,#04H
	MOV	ADDL_IIC,#00H
	MOV	LONG_IIC,#08H
	SETB	RS0
	SETB	RS1
	MOV	R0,#0F0H
	LCALL	IIC_RD
	CLR	RS0
	CLR	RS1
	MOV	R0,#0F0H
	CJNE	@R0,#0AAH,INITAL_1162
	INC	R0
	CJNE	@R0,#55H,INITAL_1162
	INC	R0
	CJNE	@R0,#05H,INITAL_1162
	INC	R0
	CJNE	@R0,#06H,INITAL_1162
	INC	R0
	CJNE	@R0,#07H,INITAL_1162
	INC	R0
	CJNE	@R0,#18H,INITAL_1162
	INC	R0
	CJNE	@R0,#29H,INITAL_1162
	INC	R0
	CJNE	@R0,#0CFH,INITAL_1162
	SJMP	MAIN
INITAL_1162:
	SETB	RS0
	SETB	RS1
	MOV	R0,#0F0H
	MOV	COUNT,#10H
INITAL_1163:
	MOV	@R0,#00H
	INC	R0
	DJNZ	COUNT,INITAL_1163
	MOV	ADDH_IIC,#00H
	MOV	ADDL_IIC,#00H
INITAL_1164:
	MOV	LONG_IIC,#10H
	MOV	R1,#0F0H
	LCALL	IIC_WR
	MOV	A,ADDL_IIC
	ADD	A,#10H
	MOV	ADDL_IIC,A
	MOV	A,ADDH_IIC
	ADDC	A,#00H
	MOV	ADDH_IIC,A
	JNB	ACC.2,INITAL_1164
	MOV	R0,#0F0H
	MOV	@R0,#0AAH
	INC	R0
	MOV	@R0,#55H
	INC	R0
	MOV	@R0,#05H
	INC	R0
	MOV	@R0,#06H
	INC	R0
	MOV	@R0,#07H
	INC	R0
	MOV	@R0,#18H
	INC	R0
	MOV	@R0,#29H
	INC	R0
	MOV	@R0,#0CFH
	MOV	LONG_IIC,#08H
	MOV	R1,#0F0H
	LCALL	IIC_WR

MAIN:
	MOV	ADDH_IIC,#00H
	MOV	ADDL_IIC,#00H
	MOV	LONG_IIC,#01H
	SETB	RS0
	SETB	RS1
	MOV	R0,#0F0H
	LCALL	IIC_RD
	MOV	R0,#0F0H
	MOV	ZONE,@R0
	LCALL	LOOK_M
	MOV	PHASE,#00H
	MOV	PID0,#00H
	MOV	PID3,#00H
;	CLR	12H
;	CLR	13H
;	CLR	11H
	MOV	STEP_DISP,#00H
	LCALL	DISP_GA
MAIN1:
	CPL	SDA
	LCALL	MANAG
	LCALL	DO_RX1
	LCALL	DISP
	LCALL	READ_KEY
	LCALL	DO_KEY
	SJMP	MAIN1



;	LCALL	READ_KEY

;	NOP
;	NOP
;	NOP

;*****************************************
;中断处理程序
;*****************************************
EXT_INT2:
	SETB    14H
	SETB	15H
	MOV	TCOUNT1,#00H
	RETI

;*****************************************
T0_OVR:
	PUSH	PSW
	PUSH	A
	MOV	TH0,#0E2H		;10ms计时
	INC	TCOUNT2
	INC	TCOUNT3
	MOV	A,TCOUNT3
	XRL	A,#64H
	JNZ	T0_OVR1
	MOV	TCOUNT3,#00H
	SETB	11H
T0_OVR1:
	INC	TCOUNT1
	MOV	A,TCOUNT1
	XRL	A,#70H
	JNZ	T0_OVR2
	MOV	TCOUNT1,#00H
	SETB	14H
T0_OVR2:
	POP A
	POP PSW
	RETI
;**************************************
TIMER2_IRQ:
	CLR	TF2
	CLR	TR2
	CLR	ET2
	SETB	02H
	RETI
;**************************************
SER0_IRQ:
	PUSH	PSW
	PUSH	A
	JB	RI,SER0_RX
	JB	TI,SER0_TXJ
	LJMP	SER0_END
SER0_TXJ:
	LJMP	SER0_TX
SER0_RX:
	CLR	RI
	MOV	UDR0,SBUF
	JNB	04H,RX0_HOME
	JNB	05H,RX0_PID1
	JNB	06H,RX0_COM
	JNB	07H,RX0_PID2
	JNB	08H,RX0_LONG
	JNB	09H,RX0_DATAJ
	JNB	0AH,RX0_CHECKJ
RX0_ERRJ:
	LJMP    RX0_ERR
RX0_DATAJ:
	LJMP	RX0_DATA
RX0_CHECKJ:
	LJMP	RX0_CHECK
RX0_HOME:
	MOV	A,UDR0
	CJNE    A,#6CH,RX0_HOME1
	SETB	0CH
	SETB    04H
	LJMP    SER0_END
RX0_HOME1:
	CJNE    A,#5CH,RX0_HOME2
	SETB    04H
	LJMP    SER0_END
RX0_HOME2:
	CJNE	A,#5EH,RX0_ERRJ
	SETB	0FH
	SETB    04H
	LJMP    SER0_END
RX0_PID1:
	MOV	A,UDR0
	MOV	CHECK_RX0,A
	MOV	PID1_RX0,A
	SETB    05H
	LJMP    SER0_END
RX0_COM:
	MOV	A,CHECK_RX0
	ADD	A,UDR0
	MOV	CHECK_RX0,A
	JB	0FH,RX0_CHECK1
	MOV	COM_RX0,UDR0
	SETB    06H
	LJMP    SER0_END
RX0_CHECK1:
	MOV	CHECK1_RX0,UDR0
	SETB	06H
	SETB	07H
	SETB	08H
	SETB	09H
	LJMP	SER0_END
RX0_PID2:
	MOV	A,CHECK_RX0
	ADD	A,UDR0
	MOV	CHECK_RX0,A
	MOV	PID2_RX0,UDR0
	SETB    07H
	JB	0CH,RX0_6C
	LJMP    SER0_END
RX0_6C:
	SETB	08H
	SETB	09H
	LJMP	SER0_END
RX0_LONG:
	MOV	A,CHECK_RX0
	ADD	A,UDR0
	MOV	CHECK_RX0,A
	MOV	COUNT_RX0,UDR0
	MOV	A,UDR0
	JZ	RX0_LONG2
	CJNE    A,#20H,RX0_LONG1
RX0_LONG1:
	JNC	RX0_ERR
	SETB	RS0
	CLR	RS1
	MOV	R0,#0A0H
	SETB    08H
	LJMP    SER0_END
RX0_LONG2:
	SETB    08H
	SETB	09H
	LJMP    SER0_END
RX0_DATA:
	MOV	A,CHECK_RX0
	ADD	A,UDR0
	MOV	CHECK_RX0,A
	SETB	RS0
	CLR	RS1
	MOV	@R0,UDR0
	INC	R0
	DJNZ    COUNT_RX0,SER0_END
	SETB    09H
	LJMP    SER0_END
RX0_CHECK:
	MOV	A,CHECK_RX0
	CJNE    A,UDR0,RX0_ERR
	SETB    0AH
	CLR	REN			;关RS0接收
	LJMP    SER0_END
RX0_ERR:
	CLR	04H
	CLR	05H
	CLR	06H
	CLR	07H
	CLR	08H
	CLR	09H
	CLR	0AH
	CLR	0CH
	CLR	0FH
	SETB	0BH
	LJMP    SER0_END
;-------------------------------
SER0_TX:
	CLR	TI
	JNB	03H,SER0_END1
	SETB	RS0
	CLR	RS1
	MOV	SBUF,@R1
	INC	R1
	DJNZ    COUNT_TX0,SER0_END
	CLR	03H
SER0_END:
	POP	A
	POP	PSW
	RETI
SER0_END1:
	CLR	0EH
	SJMP	SER0_END
;==========================================
SER1_IRQ:
	PUSH	PSW
	PUSH	A
	JB	RI1,SER1_RX
	JB	TI1,SER1_TX
	SJMP	SER1_END
SER1_RX:
	CLR	RI1
	MOV	UDR1,SBUF1
	JNB	16H,RX1_HOME
	JNB	17H,RX1_DATA
	JNB	18H,RX1_CHECK
	SJMP	RX1_ERR
RX1_HOME:
	MOV	A,UDR1
	CJNE    A,#5CH,SER1_END
	SETB	16H
	MOV	CHECK_RX1,#00H
	CLR	RS0
	SETB	RS1
	MOV	R0,#0C0H
	SJMP    SER1_END
RX1_DATA:
	MOV	A,CHECK_RX1
	ADD	A,UDR1
	MOV	CHECK_RX1,A
	CLR	RS0
	SETB	RS1
	MOV	@R0,UDR1
	INC	R0
	MOV	A,R0
	CJNE    A,#0C9H,SER1_END
	SETB    17H
	SJMP    SER1_END
RX1_CHECK:
	MOV	A,CHECK_RX1
	CJNE    A,UDR1,RX1_ERR
	SETB    18H
	CLR	REN_1			;关RS1接收
	CLR	ES1			;关RS1中断
	SJMP    SER1_END
RX1_ERR:
	CLR	16H
	CLR	17H
	CLR	18H
	SJMP    SER1_END
;-------------------------------
SER1_TX:
	CLR	TI1
SER1_END:
	POP	A
	POP	PSW
	RETI
;******************************************
;时间数据处理
;******************************************
DO_RX1:
	JNB	18H,DO_RX11
	CLR	16H
	CLR	17H
	CLR	18H
	CLR	RS0
	CLR	RS1
	MOV	R0,#0C0H
	MOV	STAU1,@R0
	INC	R0
	MOV	STAU2,@R0
	INC	R0
	MOV	STAU_GPS,@R0
	INC	R0
	MOV	YEARL,@R0
	INC	R0
	MOV	MONTH,@R0
	INC	R0
	MOV	DATE,@R0
	INC	R0
	MOV	HOUR,@R0
	INC	R0
	MOV	MINUTE,@R0
	INC	R0
	MOV	SECOND,@R0
	SETB	REN_1			;开RS1接收
	SETB	ES1			;开RS1中断
	ACALL	CHGB_UB
DO_RX11:
	RET
;=======================================
CHGB_UB:
	MOV	A,ZONE
	JB	ACC.4,SUB_HOUR
ADD_HOUR:
	ANL	A,#0FH
	ADD	A,HOUR
	MOV	HOUR,A
	CLR	C
	SUBB    A,#24
	JNC	INC_DATE
	RET
INC_DATE:
	MOV	HOUR,A
	INC	DATE
	ACALL   GET_DATE
	MOV	A,DATE
	CLR	C
	SUBB    A,B
	JNC	INC_MONTH
	RET
INC_MONTH:
	MOV	DATE,#01H
	INC	MONTH
	MOV	A,MONTH
	CLR	C
	SUBB    A,#13
	JNC	INC_YEARL
	RET
INC_YEARL:
	MOV	MONTH,#01H
	INC	YEARL
	MOV	A,YEARL
	CLR	C
	SUBB    A,#100
	JC	INC_YEARL1
	MOV	YEARL,#00H
INC_YEARL1:
	RET

SUB_HOUR:
	ANL	A,#0FH
	XCH	A,HOUR
	CLR	C
	SUBB	A,HOUR
	MOV	HOUR,A
	JC	DEC_DATE
	RET
DEC_DATE:
	CLR	C
	SUBB	A,#232
	MOV	HOUR,A
	DEC	DATE
	MOV	A,DATE
	JZ	DEC_MONTH
	RET
DEC_MONTH:
	DEC	MONTH
	MOV	A,MONTH
	JZ	DEC_YEARL
DEC_MONTH1:
	ACALL	GET_DATE
	DEC	B
	MOV	DATE,B
	RET
DEC_YEARL:
	MOV	MONTH,#12
	MOV	A,YEARL
	CLR	C
	SUBB	A,#01H
	MOV	YEARL,A
	JNC	DEC_MONTH1
	MOV	YEARL,#99
	SJMP	DEC_MONTH1
;================================
GET_DATE:
	MOV	A,MONTH
	CJNE    A,#2,GET_DATE2
	MOV	A,YEARL
	ANL	A,#03H
	JZ	GET_DATE1
	MOV	B,#29
	RET
GET_DATE1:
	MOV	B,#30
	RET
GET_DATE2:
	JB	ACC.3,GET_DATE3
	MOV	B,#31
	JNB	ACC.0,GET_DATE21
	MOV	B,#32
GET_DATE21:
	RET
GET_DATE3:
	MOV	B,#31
	JB	ACC.0,GET_DATE31
	MOV	B,#32
GET_DATE31:
	RET

;******************************************
;键盘扫描程序
;******************************************
READ_KEY:
	MOV	KEY_VALUE,#00H
	JB	01H,READ_KEY2
	CLR	P1.6
	CLR	P1.7
	CLR	P3.2
	CLR	P3.6
	CLR	P3.7
	SETB	P1.0
	SETB	P1.1
	SETB	P1.3
	SETB	P1.5
	MOV	COLUMN,#00H
	JNB	P1.0,READ_KEY1
	MOV	COLUMN,#01H
	JNB	P1.1,READ_KEY1
	MOV	COLUMN,#02H
	JNB	P1.3,READ_KEY1
	MOV	COLUMN,#03H
	JNB	P1.5,READ_KEY1
	JB	00H,READ_KEY11
	RET
READ_KEY1:
	JNB	00H,READ_KEY11
	RET
READ_KEY11:
	MOV	TH2,#0C4H		;启动20ms计时
	MOV	TL2,#00H
	CLR	02H			;清20ms计时到标志
	SETB	TR2			;开TIMER2
	SETB	ET2			;开timer2中断
	SETB	EA			;开总中断
	SETB	01H			;置等待20ms计时标志
	RET

READ_KEY2:
	JB	02H,READ_KEY21
	RET
READ_KEY21:
	CLR	02H
	CLR	01H
	JB	00H,READ_KEY3
	SETB	P1.6
	SETB	P1.7
	SETB	P3.2
	SETB	P3.6
	SETB	P3.7
	SETB	P1.0
	SETB	P1.1
	SETB	P1.3
	SETB	P1.5
	MOV	A,COLUMN
	JZ	READ_KEY22
	DEC	A
	JZ	READ_KEY23
	DEC	A
	JZ	READ_KEY24
	DEC	A
	JZ	READ_KEY25
READ_KEY22:
	CLR	P1.0
	SJMP	READ_KEY26
READ_KEY23:
	CLR	P1.1
	SJMP	READ_KEY26
READ_KEY24:
	CLR	P1.3
	SJMP	READ_KEY26
READ_KEY25:
	CLR	P1.5
READ_KEY26:
	NOP
	MOV	A,#80H
	JNB	P1.6,READ_KEY27
	MOV	A,#84H
	JNB	P1.7,READ_KEY27
	MOV	A,#88H
	JNB	P3.2,READ_KEY27
	MOV	A,#8CH
	JNB	P3.6,READ_KEY27
	MOV	A,#90H
	JNB	P3.7,READ_KEY27
	RET
READ_KEY27:
	ORL	A,COLUMN
	MOV	KEY_VALUE,A
	SETB	00H
	RET

READ_KEY3:
	CLR	P1.6
	CLR	P1.7
	CLR	P3.2
	CLR	P3.6
	CLR	P3.7
	SETB	P1.0
	SETB	P1.1
	SETB	P1.3
	SETB	P1.5
	JNB	P1.0,READ_KEY31
	JNB	P1.1,READ_KEY31
	JNB	P1.3,READ_KEY31
	JNB	P1.5,READ_KEY31
	CLR	00H
READ_KEY31:
	RET

;******************************************
;键盘处理程序
;******************************************
KEY_ZHENGJ:
	LJMP	KEY_ZHENG
KEY_FUJ:
	LJMP	KEY_FU
KEY_ZUOJ:
	LJMP	KEY_ZUO
KEY_YOUJ:
	LJMP	KEY_YOU
KEY_SHANGJ:
	LJMP	KEY_SHANG
KEY_XIAJ:
	LJMP	KEY_XIA
KEY_XIANSJ:
	LJMP	KEY_XIANS
KEY_CAIDJ:
	LJMP	KEY_CAID
KEY_QUERJ:
	LJMP	KEY_QUER
KEY_SHEZIJ:
	LJMP	KEY_SHEZHI
DO_KEY:
	MOV	A,KEY_VALUE
	JZ	DO_KEY1
	XRL	A,#80H
	JZ	KEY_ZHI1		;1
	MOV	A,KEY_VALUE
	XRL	A,#81H
	JZ	KEY_ZHI2		;2
	MOV	A,KEY_VALUE
	XRL	A,#82H
	JZ	KEY_ZHI3		;3
	MOV	A,KEY_VALUE
	XRL	A,#84H
	JZ	KEY_ZHI4		;4
	MOV	A,KEY_VALUE
	XRL	A,#85H
	JZ	KEY_ZHI5		;5
	MOV	A,KEY_VALUE
	XRL	A,#86H
	JZ	KEY_ZHI6		;6
	MOV	A,KEY_VALUE
	XRL	A,#88H
	JZ	KEY_ZHI7		;7
	MOV	A,KEY_VALUE
	XRL	A,#89H
	JZ	KEY_ZHI8		;8
	MOV	A,KEY_VALUE
	XRL	A,#8AH
	JZ	KEY_ZHI9		;9
	MOV	A,KEY_VALUE
	XRL	A,#8DH
	JZ	KEY_ZHI0		;0
	MOV	A,KEY_VALUE
	XRL	A,#8CH
	JZ	KEY_ZHENGJ		;+
	MOV	A,KEY_VALUE
	XRL	A,#8EH
	JZ	KEY_FUJ			;-
	MOV	A,KEY_VALUE

⌨️ 快捷键说明

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