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

📄 shanghai.asm

📁 非接触式IC卡设计编程的样例
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	CLR	SPBIT
	LCALL	ClkDownUP		      ;   |________|
	setb	spbit
	MOV	A,R5
	MOV	R6, #08
SdcSP1:
	RRC	A
	MOV	SPBIT, C
	LCALL	ClkDownUp
	DJNZ	R6, SdcSP1		; Send 8 data Bits
	SETB	SPBIT			; Send 1 stop bits
	LCALL	ClkDownUp
	CLR	C
        POP     ACC                     ;
        MOV     R6,A                    ;
	POP	ACC
	RET
;***************************************************************************
; LD FORM 接收子程序
; 出口: A: 字符 C=0: 成功, C=1: 失败	(R5, R6)
;***************************************************************************
ReceCharSP:
	PUSH	ACC
        MOV     A,R7            ;
        PUSH    ACC             ;
        MOV     A,R6            ;
        PUSH    ACC             ;
	MOV	R6, #ByteWait2		; Wait Start Bit
	SETB	SPCLK
RecSP1:
	SETB	SPBIT
	SETB	SPCLK
	JB	SPCLK, RecSP10
;	JB	SPBIT, RSP101; RECSPERR
	JB	SPBIT, RECSP10;  RECSPERR
	SJMP	RecSP11
RecSP10:DJNZ	R6, RecSP1
rsp101:
	SJMP	RecSPErr
RecSP11:MOV	R7, #08 		; 8 Data Bits
SdcSP2: MOV	R6, #ByteWait2		; Wait CLK from 0 To 1
RecSP20:NOP
	SETB	SPCLK
	JB	SPCLK, RecSP21
	DJNZ	R6, RecSP20
	SJMP	RecSPErr
RecSP21:MOV	R6, #30
RecSP22:
	SETB	SPCLK
	JB	SPCLK, RecSP23		; Wait CLK from 1 TO 0
	MOV	C, SPBIT
	RRC	A
	LJMP	RecSP24
RecSP23:DJNZ	R6, RecSP22
	SJMP	RecSPErr
RecSP24:DJNZ	R7, SdcSP2
	MOV	R5, A
	MOV	R6, #ByteWait2		; Wait CLK from 0 To 1
RecSP3: NOP
	SETB	SPCLK
	JB	SPCLK, RecSP30
	DJNZ	R6, RecSP3
	SJMP	RecSPErr
RecSP30:MOV	R6, #ByteWait2
RecSP31:
	SETB	SPCLK
	SETB	SPBIT
	JB	SPCLK, RecSP32		; Wait CLK from 1 TO 0
	JB	SPBIT, RecSPOK		; Stop Bit
	SJMP	RecSPErr
RecSP32:DJNZ	R6, RecSP31
	SJMP	RecSPErr
RecSPOK:
	CLR	C
	SJMP	RecSPExit
RecSPErr:
	SETB	C
	SJMP	RecSPExit
RecSPExit:
	SETB	SPCLK
	SETB	SPBIT
        POP     ACC             ;
        MOV     R6,A            ;
        POP     ACC             ;
        MOV     R7,A            ;
	POP	ACC
	RET
;****************************************************************************
CLKDownUp:				 ;LD FORM CLK, lower and high
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
;
	CLR	SPCLK
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	SETB	SPCLK
	NOP
	nop
	NOP
	ret
;**********************************************************************
CLKDown:			       ;LD FORM CLK=0
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	CLR	SPCLK
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	RET
;*************************************************************************
CLKUp:				     ;LD FORM CLK=1
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	SETB	SPCLK
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	RET
;***********************************************************************
DELAY_10MS:				 ;delay 10 ms
	MOV	DPH,#10
DL10MS_P3:
	LCALL	DELAY_1MS
	DJNZ	DPH,DL10MS_P3
	RET
;**********************************************************************
DELAY_5MS:				;delay 5 ms 
	MOV	DPH,#5
DL5MS_P3:
	LCALL	DELAY_1MS
	DJNZ	DPH,DL5MS_P3
	RET
;**********************************************************************
DELAY_1MS:				;delay 1 ms 
	MOV	DPL,#142
DELAY1MS_P3:
	LCALL	DELAY
	DJNZ	DPL,DELAY1MS_P3
	RET
;***********************************************************************
DELAY_50uS:				;delay 50 us
	MOV	DPL,#05
DELAY50uS_P3:
	LCALL	DELAY
	DJNZ	DPL,DELAY50uS_P3
	RET
;************************************************************************
DELAY:					     ; DELAY 5 CYCLE = 10US
	NOP
	RET
;*************************************************************************
; delay A ms 
;***************************************************************************
DELAYAMS:
LOOPR1:  MOV DPH, #91	   ; 10*g2*T=1ms  1/11.059M*12=1.0851us: 92
LOOPR2:  NOP		       ; n 个 NOP
	 NOP
	 NOP
	 NOP
	 NOP
	 NOP
	 NOP
	 DJNZ DPH, LOOPR2
	 DJNZ DPL, LOOPR1
	 RET
;***********************************************************************
DELAY5us:
	 NOP
	 RET
;***************************************************************
;*************************************
; T0_SET:       TIME : 1.4 MS        *
;*************************************
T0_SET:		CLR	TR0
		MOV	A,TMOD
		ANL	A,#0F0H
		ORL	A,#01H
		MOV	TMOD,A
                MOV     TH0,#0F9H       ;FBH
		MOV	TL0,#00H
		SETB	TR0
		RET
;*************************************
;INT_T0:   LED REFRESH INT PROGRAM ! *
;*************************************
INT_T0:		CLR	EA
		PUSH	ACC
		PUSH	PSW
                MOV     A,R7            ;
                PUSH    ACC             ;
                MOV     R7,#020H        ;
INT_T01:        NOP                     ;
                DJNZ    R7,INT_T01      ;
                MOV     TH0,#0F9H
		MOV	TL0,#00H
                POP     ACC             ;
                MOV     R7,A            ;
		POP	PSW
		POP	ACC
		SETB	TR0
		SETB	EA
		RETI




	END



⌨️ 快捷键说明

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