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

📄 newatu.asm

📁 51单片机多串口驱动
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		CALL	WRITE_MSG
		CALL	DISABLE_FSK
		JMP	REC_NUM_END
RECPROC30:	CALL	WRITE_MSG

REC_NUM_END:
			MOV	A,#2
			ADD	A,REC_NUM_H
			CJNE	A,#200,REC_NUEND1
			CLR	A
REC_NUEND1:
			MOV	REC_NUM_H,A
	;		cjne	a,REC_NUM_T,REC_NUM_END10
			nop
			RET
REC_NUM_END5:JMP	REC_NUM_END
REC_NUM_END10:	JMP	RECPROC
CMD_PROC:	MOV	DPH,#CMD_P_H
		MOV	DPL,CMD_HEAD
		MOVX	A,@DPTR		;GET CMD
		MOV	R6,A 
		INC	DPL
		MOVX	A,@DPTR
		MOV	R7,A		;GET CHANNELEL
		MOV	A,#LINE_STATE
		ADD	A,R7
		MOV	R0,A
		CJNE	R6,#CALL_OUT,CMD_PROC10
		MOV	A,@R0
		CJNE	A,#IDLE,CMD_PROC8
CMD_PROC2:	;offhook 摘机
		CALL		DISABLE_FSK
	
		CALL	OFF_PROC
		INC	OFFCOUNTL
		MOV	A,OFFCOUNTL
		JNZ	CMD_PROC80
		INC	OFFCOUNTH
		JMP	CMD_PROC80
CMD_PROC8:	MOV	PKT1,#CMD_ERR
		MOV	PKT2,R7
		MOV	PKT3,A
		CALL	WRITE_MSG
		JMP	CMD_PROC80		
CMD_PROC10:	CJNE	R6,#OFFHOOK,CMD_PROC20
		MOV	A,#LINE_STATE
		ADD	A,R7
		MOV	R0,A
		MOV	A,@R0
		CJNE	A,#TALKING,CMD_PROC2
		JMP	CMD_PROC8
CMD_PROC20:	CJNE	R6,#ONHOOK,CMD_PROC30
		CALL	ON_PROC
		MOV	A,#IDLE
		MOV	@R0,A
		INC	ONCOUNTL
		MOV	A,OFFCOUNTL
		JNZ	CMD_PROC80
		INC	ONCOUNTH
		JMP	CMD_PROC80
CMD_PROC30:	CJNE	R6,#55H,CMD_PROC40
		MOV	PKT1,#55H
		MOV	PKT2,#5		;report revsion of the board
		MOV	PKT3,#0
		MOV	PKT4,#0
		CALL	WRITE_MSG
		JMP	CMD_PROC80
		MOV	DPH,#MSG_P_H
		MOV	A,MSG_TAIL
		MOV	DPL,A
		MOV	A,PKT1
		MOVX	@DPTR,A
		INC	DPTR
		MOV	A,PKT2
		MOVX	@DPTR,A
		INC	DPTR
		MOV	A,PKT3
		MOVX	@DPTR,A
		INC	DPTR
		MOV	A,PKT4
		MOVX	@DPTR,A
		INC	DPTR
		MOV	MSG_TAIL,DPL
		MOV	A,DPH
		CJNE	A,#30H,CMD_PROC39
		MOV	A,#20H
CMD_PROC39:
		JMP	CMD_PROC80
CMD_PROC40:		MOV	DPH,#1
		MOV	DPL,BACK_P
		MOV	A,R6
		MOVX	@DPTR,A
		INC	DPTR
		MOV	A,R7
		MOVX	@DPTR,A
		MOV	A,BACK_P
		ADD	A,#4
		MOV	BACK_P,A
		NOP
CMD_PROC80:	
		MOV	A,CMD_HEAD
		ADD	A,#2
		MOV	CMD_HEAD,A				
		RET


LINE_PROC:	MOV	FLL_BUFB,FLL_BUF
		MOV	FLH_BUFB,FLH_BUF
		MOV	RLL_BUFB,RLL_BUF
		MOV	RLH_BUFB,RLH_BUF
		MOV	DPTR,#RING_FLL
		MOVX	A,@DPTR
		MOV	FLL_BUF,A
		MOV	DPTR,#RING_FLH
		MOVX	A,@DPTR
		MOV	FLH_BUF,A
		MOV	DPTR,#RING_RLL
		MOVX	A,@DPTR
		MOV	RLL_BUF,A
		MOV	DPTR,#RING_RLH
		MOVX	A,@DPTR
		MOV	RLH_BUF,A
		MOV	R7,#0
		
LINE_PROC5:	MOV	C,R_FL
		MOV	A,FLH_BUF
		RRC	A
		MOV	FLH_BUF,A
		MOV	A,FLL_BUF
		RRC	A
		MOV	FLL_BUF,A
		MOV	R_FL,C
		;		
		MOV	C,R_FLB
		MOV	A,FLH_BUFB
		RRC	A
		MOV	FLH_BUFB,A
		MOV	A,FLL_BUFB
		RRC	A
		MOV	FLL_BUFB,A
		MOV	R_FLB,C
		;
		MOV	C,R_RL
		MOV	A,RLH_BUF
		RRC	A
		MOV	RLH_BUF,A
		MOV	A,RLL_BUF
		RRC	A
		MOV	RLL_BUF,A
		MOV	R_RL,C
		;		
		MOV	C,R_RLB
		MOV	A,RLH_BUFB
		RRC	A
		MOV	RLH_BUFB,A
		MOV	A,RLL_BUFB
		RRC	A
		MOV	RLL_BUFB,A
		MOV	R_RLB,C
		CJNE	R7,#10H,LINE_PROC10		
		JMP	LINE_PROCEND
LINE_PROC10:	MOV	A,#LINE_STATE
		ADD	A,R7
		MOV	R0,A
		MOV	A,@R0
		CJNE	A,#IDLE,LINE_PROC20
		JNB	R_FL,LINE_PROC12
		JNB	R_RL,LINE_PROC11
		JMP	LINE_PROC100
LINE_PROC11:	NOP
LINE_PROC12:	JB	R_FLB,LINE_PROC19
		JB	R_RL,LINE_PROC19
		MOV	A,#RING_1
		MOV	@R0,A
		MOV	PKT1,#RING_1
		MOV	PKT2,R7
		MOV	PKT3,#IDLE
		MOV	PKT4,#0
		CALL	WRITE_MSG
LINE_PROC19:	JMP	LINE_PROC100	
LINE_PROC20:	CJNE	A,#RING_1,LINE_PROC30
		CALL	ENABLE_FSK			;
		JNB	R_FL,LINE_PROC19
		JNB	R_RL,LINE_PROC19
		JNB	R_FLB,LINE_PROC19
		MOV	A,#LINE_STATE
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#RING_STOP
;					;ENABLE FSK ENABLE
		MOV	A,#OFF_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#0
		MOV	A,#ON_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#0
		JMP	LINE_PROC100
LINE_PROC30:	CJNE	A,#RING_STOP,LINE_PROC40
		MOV	A,#ON_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	A,@R0
		MOV	R4,A
		MOV	A,#OFF_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	A,@R0
		INC	A
		MOV	@R0,A
		MOV	R5,A
		JNZ	LINE_PROC31
		MOV	A,#ON_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	A,@R0
		INC	A
		MOV	R4,A
		MOV	@R0,A
LINE_PROC31:	JNB	R_FL,LINE_PROC36
		JNB	R_RL,LINE_PROC36
		JNB	R_FLB,LINE_PROC36
		MOV	A,R4
		JZ	LINE_PROC19
;		CJNE	R5,#110,LINE_PROC33
;LINE_PROC33:	JC	LINE_PROC34	
;		CALL		DISABLE_FSK
LINE_PROC34:	MOV	A,R4								
		CJNE	A,#2,LINE_PROC35
LINE_PROC35:	jc	LINE_PROC19
		MOV	A,#OFF_TIMER
		CLR	FSK_EN
		CALL	DISABLE_FSK
		MOV	A,#OFF_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#0
		MOV	A,#ON_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#0
		MOV	A,#LINE_STATE
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#IDLE
		MOV	PKT1,#RING_STOP
		MOV	PKT2,R7
		MOV	PKT3,#RING_N
		MOV	PKT4,#0
		CALL	WRITE_MSG
		JMP	LINE_PROC200

LINE_PROC36:		
		CALL		DISABLE_FSK
		MOV	A,#LINE_STATE
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#RING_N
		MOV	PKT3,#RING_STOP
		MOV	PKT2,R7
		MOV	PKT1,#RING_1
		MOV	PKT4,#0
		CALL	WRITE_MSG		
		MOV	A,#ON_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#0
		MOV	A,#OFF_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#0
		JMP	LINE_PROC200
LINE_PROC40:	CJNE	A,#RING_N,LINE_PROC50
		JNB	R_FL,LINE_PROC200
		JNB	R_RL,LINE_PROC200
		JNB	R_FLB,LINE_PROC200
		MOV	A,#OFF_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#0
		MOV	A,#ON_TIMER
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#0
		MOV	A,#LINE_STATE
		ADD	A,R7
		MOV	R0,A
		MOV	@R0,#RING_STOP
		JMP	LINE_PROC200
LINE_PROC50:	CJNE	A,#TALKING,LINE_PROC100
;check 	polarity channge 
		mov	c,r_fl
		orl	c,r_flb
		jnc	LINE_PROC100
		mov	c,r_fl
		anl	c,r_flb
		jc		LINE_PROC100


		;have a polarity channge
		;
;		call	get_chan
		MOV	PKT3,#TALKING
		MOV	PKT2,R7
		MOV	PKT1,#polarity
		MOV	PKT4,#0
		CALL	WRITE_MSG		
		jmp	LINE_PROC100
line_proc60:
		MOV	a,FLH_BUFB;,FLH_BUF
		xrl	a,FLH_BUF
		jz	LINE_PROC100
		MOV	a,RLH_BUFB;,RLH_BUF
		xrl	a,RLH_BUF
		jz	LINE_PROC100
		;have a polarity channge
		call	get_chan5
	
LINE_PROC100:	
LINE_PROC200:
		INC	R7
		JMP	LINE_PROC5
LINE_PROCEND:		
		RET		
ENABLE_FSK55:		MOV	A,R7
			MOV	R6,A
			INC	R6
			MOV	A,#10H
			SUBB	A,R7
			MOV	R5,A
ENABLE_FSK5:			
			MOV	A,FSK_ENH_BUF
			RRC	A
			MOV	FSK_ENH_BUF,A
			MOV	A,FSK_ENL_BUF
			RRC	A
			MOV	FSK_ENL_BUF,A
			DJNZ	R6,ENABLE_FSK5
			MOV	C,FSK_EN
ENABLE_FSK10:			
			MOV	A,FSK_ENH_BUF
			RRC	A
			MOV	FSK_ENH_BUF,A
			MOV	A,FSK_ENL_BUF
			RRC	A
			MOV	FSK_ENL_BUF,A
			DJNZ	R5,ENABLE_FSK5
			
		;				;ENABLE OR DISABLE FSKENABLE SINGEL
			MOV	DPTR,#FSKENL
			MOV	A,FSK_ENL_BUF

			MOVX	@DPTR,A
			JZ		TEST10
			NOP
TEST10:
			MOV	DPTR,#FSKENH
			MOV	A,FSK_ENH_BUF
			MOVX	@DPTR,A
			JZ		TEST20
			NOP
TEST20:
			RET
ENABLE_FSK:
		CJNE	R7,#8,ENFSK5
ENFSK5:	JNC	EN_FSK80
		MOV	A,FSK_ENL_BUF
		CJNE	R7,#0,ENFSK01
		SETB		ACC.0
		JMP		ENFSK8
ENFSK01:CJNE	R7,#1,ENFSK02
		SETB		ACC.1
		JMP		ENFSK8
ENFSK02:CJNE	R7,#2,ENFSK03
		SETB		ACC.2
		JMP		ENFSK8
ENFSK03:CJNE	R7,#3,ENFSK04
		SETB		ACC.3
		JMP		ENFSK8
ENFSK04:CJNE	R7,#4,ENFSK05
		SETB		ACC.4
		JMP		ENFSK8
ENFSK05:CJNE	R7,#5,ENFSK06
		SETB		ACC.5
		JMP		ENFSK8
ENFSK06:CJNE	R7,#6,ENFSK07
		SETB		ACC.6
		JMP		ENFSK8
ENFSK07:SETB		ACC.7
ENFSK8:	MOV	FSK_ENL_BUF,A
			MOV	DPTR,#FSKENL
		;	MOV	A,#0FFH
			MOVX	@DPTR,A
			JMP	ENFSKEND

EN_FSK80:
		MOV	A,FSK_ENH_BUF
		CJNE	R7,#08,ENFSK801
		SETB		ACC.0
		JMP		ENFSK88
ENFSK801:CJNE	R7,#9,ENFSK802
		SETB		ACC.1
		JMP		ENFSK88
ENFSK802:CJNE	R7,#0AH,ENFSK803
		SETB		ACC.2
		JMP		ENFSK88
ENFSK803:CJNE	R7,#0BH,ENFSK804
		SETB		ACC.3
		JMP		ENFSK88
ENFSK804:CJNE	R7,#0CH,ENFSK805
		SETB		ACC.4
		JMP		ENFSK88
ENFSK805:CJNE	R7,#0DH,ENFSK806
		SETB		ACC.5
		JMP		ENFSK88
ENFSK806:CJNE	R7,#0EH,ENFSK807
		SETB		ACC.6
		JMP		ENFSK88
ENFSK807:CJNE	R7,#0fH,ENFSKEND
		SETB		ACC.7
ENFSK88:	MOV	FSK_ENL_BUF,A
			MOV	DPTR,#FSKENH
		;	MOV	A,#0FFH
			MOVX	@DPTR,A
ENFSKEND:		RET
		
GET_CARD_NO:	MOV	DPTR,#8009H
		MOVX	A,@DPTR
		ANL	A,#0FH
	;	ORL	A,#50H
		MOV	CARD_NUM,A
		RET
CLEAR_WDT:	MOV	DPTR,#800BH
		MOVX	@DPTR,A
		RET
WRITE_MSG:				
		;MOV	DPH,#MSG_P_H
	;	MOV	A,MSG_TAIL
	;	MOV	DPL,A
		MOV	DPH,MSG_TAIL_H
		MOV	DPL,MSG_TAIL
		MOV	P0,DPL
		MOV	A,PKT1
		MOVX	@DPTR,A
		INC	DPTR
		MOV	P0,DPL
		MOV	A,PKT2
		MOVX	@DPTR,A
		INC	DPTR
		MOV	P0,DPL
		MOV	A,PKT3
		MOVX	@DPTR,A
		INC	DPTR
		MOV	P0,DPL
		MOV	A,PKT4
		MOVX	@DPTR,A
		INC	DPTR
		MOV	MSG_TAIL,DPL
		MOV	A,DPH
		CJNE	A,#30H,WRITE_MSG50
		MOV	A,#20H
WRITE_MSG50:
		MOV	MSG_TAIL_H,A
		INC	MSG_SUM
		JMP	WRITE_MSGEND
		MOV	DPH,#1
		MOV	DPL,BACK_P
		MOV	A,PKT1
		MOVX	@DPTR,A
		INC	DPTR
		MOV	A,PKT2
		MOVX	@DPTR,A
		INC	DPTR
		MOV	A,PKT3
		MOVX	@DPTR,A
		INC	DPTR
		MOV	A,PKT4
		MOVX	@DPTR,A
		INC	DPTR
		MOV	BACK_P,DPL
WRITE_MSG5:	MOV	A,PKT1
		MOVX	@DPTR,A
		INC	DPL
		MOV	A,PKT2
		MOVX	@DPTR,A
		INC	DPL
		MOV	A,PKT3
		MOVX	@DPTR,A
		INC	DPL
		MOV	A,PKT4
		MOVX	@DPTR,A
		INC	DPL
		MOV	MSG_TAIL,DPL
WRITE_MSGEND:
			RET		
DISABLE_FSK:
		CJNE	R7,#8,DIS_FSK5
DIS_FSK5:	JNC	DIS_FSK80
		MOV	A,FSK_ENL_BUF
		CJNE	R7,#0,DIS_FSK01
		CLR		ACC.0
		JMP		DIS_FSK8
DIS_FSK01:CJNE	R7,#1,DIS_FSK02
		CLR		ACC.1
		JMP		DIS_FSK8
DIS_FSK02:CJNE	R7,#2,DIS_FSK03
		CLR		ACC.2
		JMP		DIS_FSK8
DIS_FSK03:CJNE	R7,#3,DIS_FSK04
		CLR		ACC.3
		JMP		DIS_FSK8
DIS_FSK04:CJNE	R7,#4,DIS_FSK05
		CLR		ACC.4
		JMP		DIS_FSK8
DIS_FSK05:CJNE	R7,#5,DIS_FSK06
		CLR		ACC.5
		JMP		DIS_FSK8
DIS_FSK06:CJNE	R7,#6,DIS_FSK07
		CLR		ACC.6
		JMP		DIS_FSK8
DIS_FSK07:CLR		ACC.7
DIS_FSK8:	MOV	FSK_ENL_BUF,A
			MOV	DPTR,#FSKENL
			MOVX	@DPTR,A
			JMP	DIS_FSKEND
DIS_FSK80:
		MOV	A,FSK_ENH_BUF
		CJNE	R7,#08,DIS_FSK801
		CLR		ACC.0
		JMP		DIS_FSK88
DIS_FSK801:CJNE	R7,#9,DIS_FSK802
		CLR		ACC.1
		JMP		DIS_FSK88
DIS_FSK802:CJNE	R7,#0AH,DIS_FSK803
		CLR		ACC.2
		JMP		DIS_FSK88
DIS_FSK803:CJNE	R7,#0BH,DIS_FSK804
		CLR		ACC.3
		JMP		DIS_FSK88
DIS_FSK804:CJNE	R7,#0CH,DIS_FSK805
		CLR		ACC.4
		JMP		DIS_FSK88
DIS_FSK805:CJNE	R7,#0DH,DIS_FSK806
		CLR		ACC.5
		JMP		DIS_FSK88
DIS_FSK806:CJNE	R7,#0EH,DIS_FSK807
		CLR		ACC.6
		JMP		DIS_FSK88
DIS_FSK807:
		CJNE	R7,#0fH,DIS_FSKEND
		CLR		ACC.7
DIS_FSK88:	MOV	FSK_ENL_BUF,A
			MOV	DPTR,#FSKENH
			MOVX	@DPTR,A
DIS_FSKEND:	RET
OFF_PROC:
		CJNE	R7,#8,OFF_HOK5
OFF_HOK5:	JNC	OFF_HOK80
		MOV	A,OFFHOOKL_BUF
		CJNE	R7,#0,OFF_HOK01
		SETB		ACC.0
		JMP		OFF_HOK8
OFF_HOK01:CJNE	R7,#1,OFF_HOK02
		SETB		ACC.1
		JMP		OFF_HOK8
OFF_HOK02:CJNE	R7,#2,OFF_HOK03
		SETB		ACC.2
		JMP		OFF_HOK8
OFF_HOK03:CJNE	R7,#3,OFF_HOK04
		SETB		ACC.3
		JMP		OFF_HOK8
OFF_HOK04:CJNE	R7,#4,OFF_HOK05
		SETB		ACC.4
		JMP		OFF_HOK8
OFF_HOK05:CJNE	R7,#5,OFF_HOK06
		SETB		ACC.5
		JMP		OFF_HOK8
OFF_HOK06:CJNE	R7,#6,OFF_HOK07
		SETB		ACC.6
		JMP		OFF_HOK8
OFF_HOK07:SETB		ACC.7
OFF_HOK8:	MOV	OFFHOOKL_BUF,A
			MOV	DPTR,#OFFHOOKL	
			MOVX	@DPTR,A
			JMP	OFF_HOKEND
OFF_HOK80:
		MOV	A,OFFHOOKH_BUF
		CJNE	R7,#08,OFF_HOK801
		SETB		ACC.0
		JMP		OFF_HOK88
OFF_HOK801:CJNE	R7,#9,OFF_HOK802
		SETB		ACC.1
		JMP		OFF_HOK88
OFF_HOK802:CJNE	R7,#0AH,OFF_HOK803
		SETB		ACC.2
		JMP		OFF_HOK88
OFF_HOK803:CJNE	R7,#0BH,OFF_HOK804
		SETB		ACC.3
		JMP		OFF_HOK88
OFF_HOK804:CJNE	R7,#0CH,OFF_HOK805
		SETB		ACC.4
		JMP		OFF_HOK88
OFF_HOK805:CJNE	R7,#0DH,OFF_HOK806
		SETB		ACC.5
		JMP		OFF_HOK88
OFF_HOK806:CJNE	R7,#0EH,OFF_HOK807
		SETB		ACC.6
		JMP		OFF_HOK88
OFF_HOK807:SETB		ACC.7
OFF_HOK88:	MOV	OFFHOOKH_BUF,A
			MOV	DPTR,#OFFHOOKH	
			MOVX	@DPTR,A
OFF_HOKEND:	
			MOV	A,#TALKING
			MOV	@R0,A
			RET
ON_PROC:
		CJNE	R7,#8,ON_HOOK5
ON_HOOK5:	JNC	ON_HOOK80
		MOV	A,OFFHOOKL_BUF
		CJNE	R7,#0,ON_HOOK01
		CLR		ACC.0
		JMP		ON_HOOK8
ON_HOOK01:CJNE	R7,#1,ON_HOOK02
		CLR		ACC.1
		JMP		ON_HOOK8
ON_HOOK02:CJNE	R7,#2,ON_HOOK03
		CLR		ACC.2
		JMP		ON_HOOK8
ON_HOOK03:CJNE	R7,#3,ON_HOOK04
		CLR		ACC.3
		JMP		ON_HOOK8
ON_HOOK04:CJNE	R7,#4,ON_HOOK05
		CLR		ACC.4
		JMP		ON_HOOK8
ON_HOOK05:CJNE	R7,#5,ON_HOOK06
		CLR		ACC.5
		JMP		ON_HOOK8
ON_HOOK06:CJNE	R7,#6,ON_HOOK07
		CLR		ACC.6
		JMP		ON_HOOK8
ON_HOOK07:CLR		ACC.7
ON_HOOK8:	MOV	OFFHOOKL_BUF,A
			MOV	DPTR,#OFFHOOKL
			MOVX	@DPTR,A
			JMP	ON_HOOKEND
ON_HOOK80:
		MOV	A,OFFHOOKH_BUF
		CJNE	R7,#08,ON_HOOK801
		CLR		ACC.0
		JMP		ON_HOOK88
ON_HOOK801:CJNE	R7,#9,ON_HOOK802
		CLR		ACC.1
		JMP		ON_HOOK88
ON_HOOK802:CJNE	R7,#0AH,ON_HOOK803
		CLR		ACC.2
		JMP		ON_HOOK88
ON_HOOK803:CJNE	R7,#0BH,ON_HOOK804
		CLR		ACC.3
		JMP		ON_HOOK88
ON_HOOK804:CJNE	R7,#0CH,ON_HOOK805
		CLR		ACC.4
		JMP		ON_HOOK88
ON_HOOK805:CJNE	R7,#0DH,ON_HOOK806
		CLR		ACC.5
		JMP		ON_HOOK88
ON_HOOK806:CJNE	R7,#0EH,ON_HOOK807
		CLR		ACC.6
		JMP		ON_HOOK88
ON_HOOK807:CLR		ACC.7
ON_HOOK88:	MOV	OFFHOOKH_BUF,A
			MOV	DPTR,#OFFHOOKH
			MOVX	@DPTR,A
ON_HOOKEND:	RET
		nop
get_chan:	anl	a,b
		jz	get_chanend
		mov	b,#8
		clr	c
		mov	r2,a
check_bit:	mov	a,r2
		rlc	a
		mov	r2,a
		jnc	check_bit5
		;????????????
		MOV	PKT3,#TALKING
		MOV	PKT2,b		;channel nummber
		dec	pkt2
		MOV	PKT1,#polarity
		MOV	PKT4,#0
		CALL	WRITE_MSG
check_bit5:	djnz	b,check_bit
get_chanend:		
		ret
get_chan5:	anl	a,b
		jz	get_chanend5
		mov	b,#8
		clr	c
		mov	r2,a
check_bit50:mov	a,r2
		rlc	a
		mov	r2,a
		jnc	check_bit55
		;????????????
		MOV	PKT3,#TALKING
		MOV	PKT2,b		;channel nummber
		dec	pkt2
		push	acc
		mov	a,#8
		add	a,pkt2
		mov	pkt2,a
		pop	acc
		MOV	PKT1,#polarity
		MOV	PKT4,#0
		CALL	WRITE_MSG
check_bit55:	djnz	b,check_bit50
get_chanend5:		
			ret


		END

⌨️ 快捷键说明

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