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

📄 samsung.asm

📁 CDMA 470 write esn,unlock
💻 ASM
📖 第 1 页 / 共 4 页
字号:
		MOV	A,SBUF
		CJNE	A,#07DH,RX_7D
		SETB	F0				;接收到7D,不作处理,侍下一个数据处理
		AJMP	EXIT_RX
RX_DATA:	MOV	@R0,A
		CLR	C
		INC	R0
		CJNE	R0,#000H,EXIT_RX
		MOV	R0,#40H
		CLR	ES
EXIT_RX:	CLR	RI				;接收完把中断关等待下一中断到来
		POP	ACC
		RETI

RX_7D:		JNB	F0,RX_DATA			;接收7D,7E,7F处理
		ORL	A,#70H
		CLR	F0
		SJMP	RX_DATA
;----------------------256  个  END 的计算------------------
end_a2000:	MOV	R0,#80H
A2000_CODE:	MOV	A,#0H
		LCALL	END_CODE
		DJNZ	R0,A2000_CODE
		RET

;--------------------256个00发送------------

TX_256:		MOV	R1,#80H
TX_SSS:		MOV	A,#00H
		CLR	ES
		MOV	SBUF,A
WAIT_256:	JNB	TI,WAIT_256
		CLR	TI
		SETB	ES
		DJNZ	R1,TX_SSS
		RET



;------------------------------数据发送部分子程序-----------------------
COM_TX:		CLR	A
		MOVC	A,@A+DPTR
		CLR	ES
		MOV	SBUF,A
TX_WAIT:	JNB	TI,TX_WAIT			;等待发送完成
		CLR	TI
		SETB	ES
		INC	DPTR
		CJNE	A,#07EH,COM_TX
TX_END:		RET


;----------------------发送连机指令-----------------------------------
TP_DM:		AJMP	TX_END_DM_RET
TO_DM:		DJNZ	017H,TP_DM
		CLR	TR1
		MOV	TH1,#0FAH			;57.6K 38.4K  19,2K
		SETB	TR1				;T1打开计时
		LCALL	DELAY
		LCALL	DELAY
DM_TX_0:	ACALL	CLS_DATA
		MOV	R0,#040H
		MOV	DPTR,#DM_D1
		LCALL	COM_TX
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
DM_TX_1:	ACALL	CLS_DATA
		MOV	R0,#040H
		MOV	DPTR,#DM_D1
		LCALL	COM_TX
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		CLR	ES
		MOV	R0,#43H
		CJNE	@R0,#07EH,TX_END_DM		;接收是否正确
		ACALL	CLS_DATA
		MOV	R0,#040H
		MOV	DPTR,#DM_D2
		LCALL	COM_TX
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		CLR	ES
		MOV	R0,#43H
		CJNE	@R0,#07EH,TX_END_DM		;接收是否正确
		ACALL	CLS_DATA
		MOV	R0,#040H
		MOV	DPTR,#DM_D3
		LCALL	COM_TX
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		CLR	ES
		MOV	R0,#43H
		CJNE	@R0,#07EH,TX_END_DM		;接收是否正确
		ACALL	CLS_DATA
		MOV	R0,#040H
		MOV	DPTR,#DM_D4
		LCALL	COM_TX
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		LCALL	DELAY
		CLR	ES

		MOV	R0,#030H
TIME_8:		LCALL	DELAY
		DJNZ	R0,TIME_8
TX_END_DM:	LCALL	DELAY
		CLR	TR1
		MOV	TH1,#0FFH			;57.6K 38.4K  
		SETB	TR1				;T1打开计时
		MOV	17H,#10H
TX_END_DM_RET:	RET



;------------------RAM   发送数据-------------------
COM_TXRAM:	

COM_YES:	MOV	A,@R1
		CJNE	R1,#40H,CH_7F

tx_da_as:	CLR	ES
		MOV	SBUF,A
TX_WAIT_RAM:	JNB	TI,TX_WAIT_RAM
		CLR	TI
		SETB	ES
		INC	R1
		DJNZ	R2,COM_YES
		RET
CH_7F:		CJNE	A,#7FH,CH_7E			;7F处理
		MOV	A,#7DH
		CLR	ES
		MOV	SBUF,A
CH_7F_W:	JNB	TI,CH_7F_W
		CLR	TI
		SETB	ES
		MOV	A,#5FH
		SJMP	TX_DA_AS
;		--------------------
CH_7E:		CJNE	A,#7EH,CH_7D			;7F处理
		MOV	A,#7DH
		CLR	ES
		MOV	SBUF,A
CH_7E_W:	JNB	TI,CH_7E_W
		CLR	TI
		SETB	ES
		MOV	A,#5EH
		SJMP	TX_DA_AS
;		----------------------
CH_7D:		CJNE	A,#7DH,tx_da_as			;7F处理
		MOV	A,#7DH
		CLR	ES
		MOV	SBUF,A
CH_7D_W:	JNB	TI,CH_7D_W
		CLR	TI
		SETB	ES
		MOV	A,#5DH
		SJMP	TX_DA_AS		



;-------------------发一个   7E     到手机----------------
TX_7E:		MOV	A,#7EH
		CLR	ES
		MOV	SBUF,A
WAIT_7E:	JNB	TI,WAIT_7E
		CLR	TI
		SETB	ES
		RET




;--------------------较验码的产生------------------------------------
END_CODE:	MOV	B,R6
		XRL	B,A
		MOV	DPTR,#D_00			;高位   R7
		MOV	A,B
		CLR	C
		RLC	A
		JNC	NEXT
		INC	DPH
NEXT:		PUSH	ACC
		MOVC	A,@A+DPTR
		MOV	B,R7
		XRL	B,A
		MOV	R6,B
		POP	ACC
		INC	A
		MOVC	A,@A+DPTR
 		MOV	R7,A
		
		RET

;-----------------------T0 中断------------------------------

TO_INT:		CLR	TR0				;关定时 T0		CPL	INT0
		MOV	TL0,#001H			;从置T0计算器
		MOV	TH0,#000H
		SETB	F0
		RETI

;-------------------------------串传送------------------R0,原数据;R0目标数据;R2数据长度
INC_ADD:	INC	R0
		INC	R1
A_MOV:		MOV	A,@R0
		MOV	@R1,A
		DJNZ	R2,INC_ADD
		RET
;----------------R0,原数据;R0目标数据;R2数据长度----


A_INC_ADD:	INC	R1
A_MOV_DATA:	MOV	A,R0
		MOV	@R1,A
		DJNZ	R2,A_INC_ADD
		RET


;----------------------显示中断------------------

PRO:		MOV	P1,#0FFH
		CLR	T0
		SETB	T1
		SETB	INT1
		MOV	A,P1
		CLR	INT1
		CLR	T1
		ANL	P1,#00H

		RET
		;写指令子程序
WI:		LCALL	PRO
		JB	ACC.7,WI
		CLR	T1		;R/W=0 写
		SETB	INT1		;E=1
		MOV	A,R2
		MOV	P1,A
		CLR	INT1		;E=0

		RET
WD:		LCALL	PRO
		JB	ACC.7,WD
		CLR	T1
		SETB	T0
		SETB	INT1
		MOV	A,R2
		MOV	P1,A
		CLR	INT1
		CLR	T0
		RET
		;循环写数据子程序
WDD:		CLR	A
		MOVC	A,@A+DPTR
		MOV	R2,A
		LCALL	WD
		INC	DPTR
		DJNZ	R3,WDD
		RET
WDD_RAM:	MOV	A,@R0
		MOV	R2,A
		LCALL	WD
		INC	R0
		DJNZ	R3,WDD_RAM
		RET


DELAY:		MOV	R4,#0f0H
DL1:		MOV	R5,#0f0H
DL2:		DJNZ	R5,DL2
		DJNZ	R4,DL1
		RET
CLOCK:		MOV	R5,#0F0H
CL:		DJNZ	R5,CL
		RET

HEX_ASC:	MOV	DPTR,#ASCII
		MOV	R0,#90H
;		MOV	R1,#045H
		MOV	A,@R1
		RR	A
		RR	A
		RR	A
		RR	A
		ANL	A,#0FH
		MOVC	A,@A+DPTR
		MOV	@R0,A

;		MOV	R1,#045H
		MOV	A,@R1
		ANL	A,#0FH
		INC	R0
		MOVC	A,@A+DPTR
		MOV	@R0,A
		
;		MOV	R1,#044H
		DEC	R1
		MOV	A,@R1
		RR	A
		RR	A
		RR	A
		RR	A
		ANL	A,#0FH
		INC	R0
		MOVC	A,@A+DPTR
		MOV	@R0,A
		
;		MOV	R1,#044H
		MOV	A,@R1
		ANL	A,#0FH
		INC	R0
		MOVC	A,@A+DPTR
		MOV	@R0,A
		
;		MOV	R1,#043H
		DEC	R1
		MOV	A,@R1
		RR	A
		RR	A
		RR	A
		RR	A
		ANL	A,#0FH
		INC	R0
		MOVC	A,@A+DPTR
		MOV	@R0,A
		
;		MOV	R1,#043H
		MOV	A,@R1
		ANL	A,#0FH
		INC	R0
		MOVC	A,@A+DPTR
		MOV	@R0,A
		
;		MOV	R1,#042H
		DEC	R1
		MOV	A,@R1
		RR	A
		RR	A
		RR	A
		RR	A
		ANL	A,#0FH
		INC	R0
		MOVC	A,@A+DPTR
		MOV	@R0,A
		
;		MOV	R1,#42H
		MOV	A,@R1
		ANL	A,#0FH
		INC	R0
		MOVC	A,@A+DPTR
		MOV	@R0,A
		RET
;---------------------------------
S_TYPE:		MOV	A,1DH			;菜单显示地址选择
		CJNE	A,#0H,N_T1
N_ONC:		MOV	DPTR,#TYPE_1
		RET
N_T1:		CJNE	A,#1H,N_T2
		MOV	DPTR,#TYPE_2
		RET
N_T2:		CJNE	A,#2H,N_T3
N_END:		MOV	DPTR,#TYPE_3
		RET
N_T3:		CJNE	A,#3H,N_TF
AAA:		MOV	1DH,#0H
		LJMP	N_ONC

N_TF:		CJNE	A,#0FFH,AAA
		MOV	1DH,#02H
		LJMP	N_END

NO_INC:		MOV	A,1CH		;号码加'1'  R1=偏移地址  1C单元为偏移量
		ADD	A,#2EH
		MOV	R1,A
		INC	@R1
		MOV	A,@R1
		ANL	A,#3FH
		CJNE	A,#3AH,NO_30
		MOV	A,#30H
NO_30:		MOV	@R1,A
		RET		
		
NO_DEC:		MOV	A,1CH		;号码减'1'  R1=偏移地址  1C单元为偏移量
		ADD	A,#2EH
		MOV	R1,A
		DEC	@R1
		MOV	A,@R1
		ANL	A,#3FH
		CJNE	A,#2FH,NO_29
		MOV	A,#39H
NO_29:		MOV	@R1,A
		RET		


;-------------------串号加 1--------
ESN_INC:	MOV	R1,#18H
		MOV	A,1CH
		RRC	A
		JC	H_B		;为'1'=高半位
		ANL	A,#03H
		ADD	A,R1
		MOV	R1,A
		MOV	A,@R1
		MOV	B,A
		INC	A
		ANL	A,#0FH
		XCH	A,B
		ANL	A,#0F0H
		ORL	A,B
		MOV	@R1,A
		RET

H_B:		ANL	A,#03H		;高半位加'1'
		ADD	A,R1
		MOV	R1,A
		MOV	A,@R1
		ADD	A,#10H
		MOV	@R1,A
		RET
;-------------------------光标定位------------------		
GUANG:		MOV	A,1CH
		CJNE	A,#0H,GUANG_1
		MOV	R2,#8EH
		RET
GUANG_1:	CJNE	A,#01H,GUANG_2
		MOV	R2,#8DH
		RET
GUANG_2:	CJNE	A,#02H,GUANG_3
		MOV	R2,#8CH
		RET
GUANG_3:	CJNE	A,#03H,GUANG_4
		MOV	R2,#8BH
		RET
GUANG_4:	CJNE	A,#04H,GUANG_5
		MOV	R2,#8AH
		RET
GUANG_5:	CJNE	A,#05H,GUANG_6
		MOV	R2,#89H
		RET
GUANG_6:	CJNE	A,#06H,GUANG_7
		MOV	R2,#88H
		RET
GUANG_7:	CJNE	A,#07H,GUANG_8
		MOV	R2,#87H
		RET
GUANG_8:	RET

;-------------------------光标定位------------------		
GUANG_D:	MOV	A,1CH
		CJNE	A,#0H,GUANG_1_D
		MOV	R2,#0C5H
		RET
GUANG_1_D:	CJNE	A,#01H,GUANG_2_D
		MOV	R2,#0C6H
		RET
GUANG_2_D:	CJNE	A,#02H,GUANG_3_D
		MOV	R2,#0C7H
		RET
GUANG_3_D:	CJNE	A,#03H,GUANG_4_D
		MOV	R2,#0C8H
		RET
GUANG_4_D:	CJNE	A,#04H,GUANG_5_D
		MOV	R2,#0C9H
		RET
GUANG_5_D:	CJNE	A,#05H,GUANG_6_D
		MOV	R2,#0CAH
		RET
GUANG_6_D:	CJNE	A,#06H,GUANG_7_D
		MOV	R2,#0CBH
		RET
GUANG_7_D:	CJNE	A,#07H,GUANG_8_D
		MOV	R2,#0CCH
		RET
GUANG_8_D:	CJNE	A,#08H,GUANG_9_D
		MOV	R2,#0CDH
		RET
GUANG_9_D:	CJNE	A,#09H,GUANG_A_D
		MOV	R2,#0CEH
		RET
GUANG_A_D:	RET


;--------------------串号减 '1'------------------
ESN_DEC:	MOV	R1,#18H
		MOV	A,1CH
		RRC	A
		JC	H_E
		ANL	A,#03H
		ADD	A,R1
		MOV	R1,A
		MOV	A,@R1
		MOV	B,A
		DEC	A
		ANL	A,#0FH

⌨️ 快捷键说明

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