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

📄 kzwj230.asm

📁 完成485总线数据的收发。 按键扫描等
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;---------------------------------------------------------------
; CYGNAL Integrated Products 
;
; Assembly Code Configuration Tool: F022 INITIALIZATION/CONFIGURATION CODE
;----------------------------------------------------------------
; This file is read only. To insert the code into your  
; application, simply cut and paste or use the "Save As" 
; command in the file menu to save the file in your project 
; directory. 
;----------------------------------------------------------------
$INCLUDE(C8051F200.INC)			; Register definition file.
$INCLUDE(控制器子程序集.asm)
cont_rs		EQU	45	;44			;总线收发字数
cont_smq	EQU	43	;42			;声码器送数字数
cont_vram	EQU	0ABH	;0AAH			;音量字存放ram单元
;cont_null	EQU	01h	2004-12-13 14:13

SDA		EQU	P0.6
SCL		EQU	P0.7
MUT		EQU	P0.4
A12		EQU	P1.4
A13		EQU	P1.5
DE1T		EQU	P0.5
FS100		EQU	P1.7
WJB_OK		EQU	P1.6

DSEG	
	ORG	26H
LED1:		DS	1
LED2:		DS	1
LED3:		DS	1
WR1:		DS	1
KEY:		DS	1
CY12_DT:	DS	1
CY34_DT:	DS	1
	ORG	30H	
TEMP:		DS	1
RT_ID:		DS	1
RT_ADD:		DS	1
COMMAND:	DS	1
CHECK:		DS	1
COUNT:		DS	1
CAL_WORD:	DS	1
VOL_C1:		DS	1
VOL_C2:		DS	1
VOL_HF1:	DS	1
VOL_HF2:	DS	1
VOL_DH:		DS	1
VOL_NT:		DS	1
RES_COUNT1:	DS	1
RES_COUNT2:	DS	1
RES_COUNT3:	DS	1
BIT_COUNT:	DS	1

BSEG
	ORG	00H		;20
ENABLE:		DBIT	1
IS_RT:		DBIT	1
KEY_LOOSE:	DBIT	1
XIAODOU1:	DBIT	1
XIAODOU2:	DBIT	1
XIAODOU3:	DBIT	1
ERR_ADD:	DBIT	1
BY_CALL:	DBIT	1
				;21
NPTT:		DBIT	1
WPTT:		DBIT	1
NWPTT:		DBIT	1
NPPTT:		DBIT	1
WWPTT:		DBIT	1
WPPTT:		DBIT	1
CCALL:		DBIT	1
CCALL_1:	DBIT	1
				;22
CCALL_PTT:	DBIT	1
MN_BIT1:	DBIT	1	;MN BOARD CHECK MARK
MN_BIT2:	DBIT	1	;暂不用
POWER_ON:	DBIT	1
ERR_BUS:	DBIT	1
DT1_ING:	DBIT	1
DT2_ING:	DBIT	1
DT3_ING:	DBIT	1
				;23
DT4_ING:	DBIT	1
NEED_SAVE:	DBIT	1
KEY_RES_ON:	DBIT	1
KEY_RES_OFF:	DBIT	1
ERR_BUS_MARK:	DBIT	1
ERR_MN_MARK:	DBIT	1
ERR_WJ_MARK:	DBIT	1
	ORG	48h	;WR1对应的位地址
CTR_SVOX:	DBIT	1
CTR_UP:		DBIT	1
CTR_MZ:		DBIT	1
CTR_VOX:	DBIT	1
;CTR_ZY:		DBIT	1
;----------------------------------------------------------------
; INTERRUPT VECTOR CODE
;----------------------------------------------------------------
CSEG
	ORG	0000H
	LJMP	CONFIG
	ORG	000BH
	LJMP	INT_T0
	ORG	0023H
	LJMP	INT_RT
	ORG	0030H

CONFIG:
	SETB	POWER_ON
CONFIGX:
	MOV WDTCN, #007h	; Watchdog Timer Control Register
	MOV WDTCN, #0DEh	; Disable WDT
	MOV WDTCN, #0ADh   ;禁止看门狗
	mov PRT0MX, #001h	; PRT0MX:	Initial Reset Value将P0.0,P0.1设为tx,rx
	mov PRT1MX, #000h	; PRT1MX: Initial Reset Value   CP0不接端口引脚
	mov PRT2MX, #048h	; PRT2MX: Initial Reset Value 禁止端口3弱上拉,禁止端口0弱上拉
	mov PRT0CF, #0B5h	; Output configuration for P0 输出方式写0为漏极开路,写1为推挽方式
	mov PRT1CF, #0FFh	; Output configuration for P1 
	mov PRT2CF, #0FFh	; Output configuration for P2 
	MOV PRT3CF, #00h	; Output configuration for P3 
	MOV P0MODE, #0FFh	; Input Configuration for P0写0对应数字输入被禁止
	mov P1MODE, #0FFh	; Input Configuration for P1
	mov P2MODE, #0FFh	; Input Configuration for P2
	mov P3MODE, #0FFh	; Input Configuration for P3
	MOV OSCXCN, #067h	; External Oscillator Control Register	晶体振荡器方式,>>11MHZ     111B
  	CLR A
  	DJNZ ACC, $		;wait for
  	DJNZ ACC, $		;at least 1ms
OX_WAIT:
  	MOV A,OSCXCN
  	JNB ACC.7, OX_WAIT	;poll XTLVLD
	mov OSCICN, #08Ch	; Internal Oscillator Control Register选择外部振荡器R,内部振荡器允许,允许时钟丢失检测器,检测到时钟丢失将触发复位
	mov REF0CN, #000h	; Reference Control Register选择外部VREF源
	mov SPI0CN, #000h	; SPI Control Register禁止SPI,禁止主方式
	mov SPI0CFG, #000h	; SPI Configuration Register 
	mov SPI0CKR, #000h	; SPI Clock Rate Register SPI被设为主方式时,这些位决定SCK输出的频率
	mov CPT0CN, #000h	; Comparator 0 Control Register 禁止比较器
	mov CPT1CN, #000h	; Comparator 1 Control Register
;----------------------------------------------------------------
; UART Configuration
;----------------------------------------------------------------
	mov SCON, #0c0h		; Serial Port Control Register MODE3  9位UART,可变波特率
	;ANL SCON, #0FCh   	; clear interrupt pending flags
	mov PCON, #080h		; Power Control Rgister SMOD=1允许波特率/2功能   ????允许波特率加倍
	mov CKCON, #010h	; Clock Control Register T1M=1使用系统时钟 定时器1用系统时钟
	MOV TMOD, #021h		; Timer Mode Register TIMER1为自动重装8位,TIMER0为16位
	mov TCON, #000h		; Timer Control Register  禁止定时器0,1
	mov RCAP2H, #000h	; Timer 2 Capture Register High Byte定时器2捕捉寄存器
	mov RCAP2L, #000h	; Timer 2 Capture Register Low Byte
	mov TH2, #000h		; Timer 2 High Byte	
	mov TL2, #000h		; Timer 2 Low Byte	
	mov T2CON, #000h	; Timer 2 Control Register	
	MOV RSTSRC, #000h	; Reset Source Register复位源寄存器
	MOV	IE, #00h		;Interrupt Enable
	MOV	IP, #10h		;Interrupt Priority串口为高优先级
	MOV	EIE1, #000h		;Extended Interrupt Enable 1   扩展中断
	MOV	EIE2, #000h		;Extended Interrupt Enable 2
	MOV	EIP1, #000h		;Extended Interrupt Priority 1
	MOV	EIP2, #000h		;Extended Interrupt Priority 2
	MOV	SP,#07H	

	DEFINE_PY
clrxram:	
	MOVX	@DPTR,A
	INC	DPTR
	MOV	R1,DPH
	CJNE	R1,#03,CLRXRAM
	MOV	LED1,#00H		;暂定
	LCALL	WRITE_LED1   ;MOV A LED1
	MOV	LED2,#00H
	LCALL	WRITE_LED2
	JNB	POWER_ON,$+6
	LCALL	BIT_DP			;POWER_BIT
	CLR	POWER_ON
	CLR	A
	LCALL	READ_RD1		;READ	ADDRESS
	ANL	A,#0FH
	XRL	A,#0FH
	MOV	R0,A
	JZ	ERROR_ADD
	CLR	C
	SUBB	A,#05H ;带盒子<=4;
	JNC	ERROR_ADD
	MOV	RT_ADD,R0	;SAVE ADDRESS
	LJMP	GOOD_ADD
ERROR_ADD:
	MOV	LED1,#0FFH		;ERROR ADDRESS ,ALL LIGHT ON!
	LCALL	WRITE_LED1
	MOV	LED2,#0FFH
	LCALL	WRITE_LED2
	lcall	DELAY100MS
;	MOV	LED1,#00H		;ERROR ADDRESS ,ALL LIGHT ON!
;	LCALL	WRITE_LED1
;	MOV	LED2,#00H
;	LCALL	WRITE_LED2
;	lcall	DELAY100MS
	LJMP	CONFIGX

GOOD_ADD:
	LCALL	READ_24C01	;现场保护读
	CLR	LED2.5
	CLR	LED1.2
	LCALL	WRITE_LED1

	MOV	TH1,#0FFH		;波特率为24.576/16=1.536Mbps
	MOV	TL1,#0FFH
	SETB	TR1

	MOV	TL0,#00H		;31.985mS的定时中断,在串行中断里再置为最大值(暂时不要)
	MOV	TH0,#00H		;用意:当没有总线时,单个盒子仍然可以工作
	CLR	RI
	CLR	TI
	SETB	SM2
	SETB	REN
	SETB	ES
	SETB	EA
	SETB	TR0
	SETB	ET0
LOOP:
	JNB	NEED_SAVE,LOOP1
	CLR	NEED_SAVE
	LCALL	WRITE_24C01		;现场保护写
LOOP1:
	LJMP	$

;********************************主程序***************************************
INT_T0:	;TIMER0中断服务程序(公式:(2e16-X)*12/24.576M=10mS,X换算为16进制即可),其中2e16=65536
	MOV	DPTR,#MAIN_WORK
	CLR	FS100
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	SETB	FS100
	SETB	ERR_BUS
	POP	ACC
	POP	ACC
	PUSH	DPL
	PUSH	DPH
	RETI

INT_RT:	;串行中断服务程序
	CLR	RI
	CLR	TI
	CLR	ERR_BUS
	MOV	Command,SBUF
	MOV	DPTR,#MAIN_RT
	MOV	TL0,#00H
	MOV	TH0,#00H
	POP	ACC
	POP	ACC
	PUSH	DPL
	PUSH	DPH
	RETI
;********************************************************************************
;*	 命令格式:								*
;* 	 系统10ms同步命令1:1`00 00`0000(1字,不需应答)——复帧开始		*
;*	 系统10ms同步命令2:1`00 00`0001(1字,不需应答)——复帧结束		*
;*	 单 个 发 数 命 令:1`01 xx`xxxx(1字,应答12字)——单帧开始		*
;********************************************************************************
MAIN_RT:
	MOV	A,Command
	JNB	ACC.6,RT1_1
	LJMP	RT1_2
RT1_1:
	JZ	RT1_COMM_0
	CJNE	A,#01H,LOOPEN		;非法命令,忽略
	MOV	TL0,#00H		;置定时器为最大值
	MOV	TH0,#00H
	CLR	 
	LJMP	MAIN_WORK		;复帧通信结束
LOOPEN:
	LJMP	LOOP

RT1_COMM_0:				;复帧通信开始
	SETB	Enable			;开始置标志位
	CLR	FS100
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	SETB	FS100
	LJMP	LOOPEN
RT1_2:
	JNB	Enable,LOOPEN		;是否已经接收过复帧开始命令
	JB	ACC.7,LOOPEN		;筛选命令格式为1`01xx`xxxx

	MOV	A,#00111111B
	ANL	A,Command
	MOV	RT_ID,A
	CJNE	A,RT_ADD,RT1_3

	MOV	A,RT_ID
	LCALL	LOCK_DPTR		;定位内存

	CLR	ES
	CLR	DE1T
	LCALL	SEND_41B_0		;是自己需要发数
	SETB	DE1T
	SETB	ES
	LJMP	LOOPEN
RT1_3:
	MOV	A,RT_ID
	LCALL	LOCK_DPTR		;定位内存

	CLR	ES
	LCALL	RECEIVE_42B
	SETB	ES			;接收别人的数
	LJMP	LOOPEN
;*****************************************************************************
MAIN_WORK:
	CLR	ES
	CLR	ET0
	LCALL	READ_DRAM_TXD
	MOV	A,RT_ADD
	LCALL	LOCK_DPTR
	LCALL	WRITE_XRAM_TXD

;***********************************************************************************	
;NTPTT,WTPTT,CCALL消抖
;解释:	NPTT--输入变量 	  NWPTT--中间变量(消抖位) 	NPPTT--最终变量(内通按键标志位)
;	WPTT--输入变量    WWPTT--中间变量(消抖位) 	WPPTT--最终变量(外通按键标志位)
;	CCALL--输入变量	  CCALL_1--中间变量(消抖位) 	CCALL_PTT--最终变量(呼叫按键标志位)
;以上三个按键标志位均是高电平表示按下
;***********************************************************************************
	LCALL	READ_RD2		;MN BOARD ERROR,DISPLAY THE LIGHT ONCE
					;OUTPUT:NPTT,WPTT,CCALL and BIT1
	JB	NPTT,NP			;内通ptt没有按下
	JB	NWPTT,NP_1
	SETB	NWPTT
	LJMP	NJIESHU
NP_1:
	SETB	NPPTT
	LJMP	NJIESHU
NP:
	JNB	NWPTT,NP_2		;oldptt是0
	CLR	NWPTT
	LJMP	NJIESHU
NP_2:
	CLR	NPPTT
NJIESHU:
	
	JB	WPTT,WP
	JB	WWPTT,WP_1
	SETB	WWPTT
	LJMP	WJIESHU
WP_1:
	SETB	WPPTT
	LJMP	WJIESHU
WP:
	JNB	WWPTT,WP_2
	CLR	WWPTT
	LJMP	WJIESHU
WP_2:	CLR	WPPTT
WJIESHU:

;	JB	CCALL,CP
;	JB	CCALL_1,CP_1
;	SETB	CCALL_1
;	LJMP	CJIESHU
;CP_1:	SETB	CCALL_PTT
;	LJMP	CJIESHU
;CP:	JNB	CCALL_1,CP_2
;	CLR	CCALL_1
;	LJMP	CJIESHU
;CP_2:	CLR	CCALL_PTT

CJIESHU:
	JNB	BY_CALL,KEY_SCAN	;被超控时,按健不再起作用
	LJMP	KEY_SCAN_END
KEY_SCAN:
;扫描法读按键
	MOV	LED3,#0FEH		;KEYL-1=0
	LCALL	WRITE_LED3
	NOP
	NOP
	NOP
	LCALL	READ_KEYH		;读按键
	JZ	KEY_NOT_1		;判断有无按键
	JB	XIAODOU1,IF_THEONE1	;判断是否第二次按下,是:再判断是否是相同按键
	SETB	XIAODOU1
	MOV	KEY,A			;保存按键值
BACK_1:
	LJMP	KEY_SCAN_END
BACK_11:
	CLR	XIAODOU1
	AJMP	BACK_1
IF_THEONE1:
	CJNE	A,KEY,BACK_11		;判断是否同一按键,不是,到没有按键
	LJMP	KEY_1_VALID
KEY_NOT_1:  
	MOV	LED3,#0FDH		;KEYL-2=0
	LCALL	WRITE_LED3
	NOP
	NOP
	NOP
	LCALL	READ_KEYH		;读按键
	JZ	KEY_NOT_2		;判断有无按键
	JB	XIAODOU2,IF_THEONE2	;判断是否第二次按下,是:再判断是否是相同按键
	SETB	XIAODOU2
	MOV	KEY,A			;保存按键值
BACK_2:
	LJMP	KEY_SCAN_END
BACK_22:
	CLR	XIAODOU2
	AJMP	BACK_2
IF_THEONE2:
	CJNE	A,KEY,BACK_22		;判断是否同一按键,不是,到没有按键
	LJMP	KEY_2_VALID
KEY_NOT_2:
	MOV	LED3,#0FBH		;KEYL-3=0
	LCALL	WRITE_LED3
	NOP
	NOP
	NOP
	LCALL	READ_KEYH		;读按键
	JZ	BACK_3
	JNB	ACC.0,NOT_BIT_KEY	;判断是不是自检按键按下
	MOV	R0,BIT_COUNT
	INC	R0
	MOV	BIT_COUNT,R0
NOT_BIT_KEY:
	JNB	ACC.3,$+5	;3
	SETB	CCALL_PTT	;2
NOT_CALL_KEY:
	JB	XIAODOU3,IF_THEONE3
	SETB	XIAODOU3
	MOV	KEY,A
	LJMP	KEY_SCAN_END
BACK_3:
	CLR	KEY_LOOSE		;扫描完后,没有按键,设定标志 
	CLR	CCALL_PTT		;呼叫标志位
	LJMP	KEY_SCAN_END
BACK_33:
	CLR	XIAODOU3
	LJMP	KEY_SCAN_END
IF_THEONE3:
	CJNE	A,KEY,BACK_33
	LJMP	KEY_3_VALID

KEY_SCAN_END:				;扫描按键出口
;	CLR	ERR_BUS		;20040908
	JNB	ERR_BUS,KEY_SCAN_END1	;BUS CHECKING
	SETB	LED1.0
	SETB	LED1.3
	SETB	LED2.0
	CLR	ERR_BUS
	SETB	ERR_BUS_MARK
	LJMP	KEY_SCAN_END1_1
KEY_SCAN_END1:
	JNB	ERR_BUS_MARK,KEY_SCAN_END1_1
	CLR	LED1.0
	CLR	LED1.3
	CLR	LED2.0
	CLR	ERR_BUS_MARK
KEY_SCAN_END1_1:

	JB	MN_BIT1,KEY_SCAN_END2		;MN BOARD CHECKING
	SETB	LED1.0
	SETB	LED2.0
	SETB	ERR_MN_MARK
	LJMP	KEY_SCAN_END2_1
KEY_SCAN_END2:
	JNB	ERR_MN_MARK,KEY_SCAN_END2_1
	CLR	LED1.0
	CLR	LED2.0
	CLR	ERR_BUS_MARK
KEY_SCAN_END2_1:

;	JB	WJB_OK,KEY_SCAN_END3		;WJ BOARD CHECKING(not ture)
;	SETB	LED1.0
;	SETB	LED1.3
;	SETB	ERR_WJ_MARK
;	LJMP	KEY_SCAN_END3_1
;KEY_SCAN_END3:
;	JNB	ERR_WJ_MARK,KEY_SCAN_END3_1
;	CLR	LED1.0
;	CLR	LED1.3
;	CLR	ERR_WJ_MARK
;KEY_SCAN_END3_1:

KEY_SCAN_END4:		;判断自检按键是否长时间按下(2005-07-05)
	MOV	A,BIT_COUNT
	CJNE	A,#050H,KEY_SCAN_END5		;0.8秒
	MOV	BIT_COUNT,#00H
	LJMP	CONFIG
KEY_SCAN_END5:
;	MOV	SP,#07H

;*************************************************************************************************P
;CTR_MZ:高有效		CTR_ZY:高有效		CTR_SVOX:低有效
;CTR_UP:高有效		CTR_VOX:高有效(在谈/检接死<按键亮:高,按键灭:低>,控制抗噪模块)
;*************************************************************************************************Y
;为解决环境噪音进入总线,影响其它乘员接收,增加抗噪模块,控制信号和“谈/检”按键有关。
	JB	CCALL_PTT,KEY_SCAN_END5_1	;3
	CLR	CTR_UP		;2
	MOV	A,LED2	;无CALL按键按下就熄灭灯
	ANL	A,#11011111B
	MOV	LED2,A
	LJMP	KEY_SCAN_END6	;3
KEY_SCAN_END5_1:
	SETB	CTR_UP
	MOV	A,LED2	;有CALL按键按下就点亮灯
	ORL	A,#00100000B
	MOV	LED2,A

KEY_SCAN_END6:
	JNB	LED1.2,$+8	;3	抗噪攻关更改
	SETB	CTR_VOX	;2
	LJMP	$+5	;3
	CLR	CTR_VOX	;2

	LCALL	WRITE_LED1
	LCALL	WRITE_LED2
	LCALL	WRITE_WR1
	LCALL	READ_VOL1
	LCALL	READ_VOL2
	LCALL	READ_VOL3
	LJMP	ALL_DEAL

;按键操作
KEY_1_VALID:
	JB	KEY_LOOSE,KEY_1_VALID1
	SETB	KEY_LOOSE
	CLR	XIAODOU1
	CLR	XIAODOU2
	CLR	XIAODOU3
	JB	KEY.0,KEY_16_1
	JB	KEY.1,KEY_15_1
	JB	KEY.2,KEY_14_1
	JB	KEY.3,KEY_13_1
KEY_1_VALID1:
	LJMP	KEY_SCAN_END
KEY_16_1:	LJMP	KEY_16         
KEY_15_1:	LJMP	KEY_15         
KEY_14_1:	LJMP	KEY_14         
KEY_13_1:	LJMP	KEY_13         
KEY_2_VALID:
	JB	KEY_LOOSE,KEY_2_VALID1
	SETB	KEY_LOOSE
	CLR	XIAODOU1
	CLR	XIAODOU2
	CLR	XIAODOU3
	JB	KEY.0,KEY_12_1
	JB	KEY.1,KEY_11_1
	JB	KEY.2,KEY_10_1
	JB	KEY.3,KEY_9_1
KEY_2_VALID1:
	LJMP	KEY_SCAN_END
KEY_12_1:	LJMP	KEY_12         
KEY_11_1:	LJMP	KEY_11         
KEY_10_1:	LJMP	KEY_10         
KEY_9_1:	LJMP	KEY_9
KEY_3_VALID:
	JB	KEY_LOOSE,KEY_3_VALID1
	SETB	KEY_LOOSE
	CLR	XIAODOU1
	CLR	XIAODOU2
	CLR	XIAODOU3
	JB	KEY.0,KEY_8_1
	JB	KEY.1,KEY_7_1
	JB	KEY.2,KEY_6_1
	JB	KEY.3,KEY_5_1
KEY_3_VALID1:
	LJMP	KEY_SCAN_END
KEY_8_1:	LJMP	KEY_8         
KEY_7_1:	LJMP	KEY_7         
KEY_6_1:	LJMP	KEY_6         
KEY_5_1:	LJMP	KEY_5

;LED1.0
KEY_16:					;超1
	MOV	A,LED1
	XRL	A,#00000001B
	MOV	LED1,A
	JNB	ACC.0,NOT_KEY_16
	CLR	LED1.3
	CLR	LED2.0
	CLR	LED2.3
	MOV	A,RT_ADD		;机械师不发超1,按键不亮
	CJNE	A,#04H,$+5	;3
	CLR	LED1.0		;2
NOT_KEY_16:
	LJMP	LOOP_TMP

;LED1.3
KEY_15:					;超2
	MOV	A,LED1
	XRL	A,#00001000B
	MOV	LED1,A
	JNB	ACC.3,NOT_KEY_15
	CLR	LED1.0
	CLR	LED2.0
	CLR	LED2.3
	MOV	A,RT_ADD		;机械师不发超2,按键不亮
	CJNE	A,#04H,$+5	;3
	CLR	LED1.3		;2
NOT_KEY_15:
	LJMP	LOOP_TMP

;LED2.0
KEY_14:					;短波1
	MOV	A,LED2
	XRL	A,#00000001B
	MOV	LED2,A
	JNB	ACC.0,NOT_KEY_14
	CLR	LED1.0
	CLR	LED1.3
	CLR	LED2.3
	MOV	A,RT_ADD
	CJNE	A,#04H,$+5	;3		机械师不发短波1,按键不亮
	CLR	LED2.0		;2
NOT_KEY_14:
	LJMP	LOOP_TMP

;LED2.3
KEY_13:					;短波2
	MOV	A,LED2
	XRL	A,#00001000B
	MOV	LED2,A
	JNB	ACC.3,NOT_KEY_13
	CLR	LED1.0
	CLR	LED1.3
	CLR	LED2.0
	MOV	A,RT_ADD
	CJNE	A,#04H,$+5	;3		机械师不发短波2,按键不亮
	CLR	LED2.3		;2
NOT_KEY_13:
	LJMP	LOOP_TMP

;LED1.1
KEY_12:					;	塔康
	MOV	A,LED1          	
	XRL	A,#00000010B    	
	MOV	LED1,A          	
	MOV	A,RT_ADD
	CJNE	A,#04H,$+5	;3

⌨️ 快捷键说明

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