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

📄 sr1_56k.asm

📁 此程序为13.56MHz的RFID底层读写卡程序
💻 ASM
字号:
;单片机类别:12分频单片机
;单片机的振荡频率:22.1184MHz
;CARD类型:56Kpbs
;CARD的振荡频率:3.5795MHz
;CARD的IO管脚:P2.0
;===================================

;1ETU需要的nop数:32.9556 ; 0.5etu=17
;1ETU(实际-现在):=-.111300460958233
;0.5ETU(实际-现在):=-2.05565023047912
;===================================
public _I_1Send56k
public _I_1Rda56k
proc segment code
rseg proc
SAMIO    bit   P2.0     ;by cpu_io pin   p2.0
Timer00  EQU   13         ;ONEETU=2*Timer00
Timer01  EQU   7          ;HALFETU=2*Timer01

;======================================================
;1ETU:    AAA--AAA, BBB-BBB,CCC-CCC
;1.5ETU:  DDD--DDD
;======================================================
;======================================================
;c:     unsigned char I_Send(unsigned char ch);
;       input:  ch
;       ret:    ==0 --OK
;               !=0--ERR
;ASM: OCCUPY: R6,R7,A,C
;     INPUT : R7
;     output:--
;     status: r7=0:right
;              <>0:error
_I_1Send56k:
sb_00:	mov     a,r7
	mov	c,p               ;for parity
	mov	r7,#0ffh
	mov     r6,#0ffh

sb_01:	jb	SAMIO,sb_02 ;
	djnz	r7,sb_01
	mov     r7,#0ffh
	djnz    r6,sb_01
	setb    SAMIO
	mov	R7,#01H     ;timeout=(255*4+1)*255
	ret
sb_02:
	mov	r6,#09h     ;1
	clr	SAMIO       ;1
	NOP                 ;1-------------TEST BIT1
;------------------------------------------AAA1ETU
        mov	r7,#Timer00 ;1
	djnz	r7,$        ;2*#Timer00
        nop                 ;1
        nop                 ;1       03.3.18 test  delete is good for our cos
        ;nop

;------------------------------------------BBB1ETU
sb_03:	rrc	a           ;1
	mov	SAMIO,c     ;1
	NOP                 ;1-------------TEST BIT2
        ;nop                 ; 03.3.18 test  delete is good for our cos

;------------------------------------------AAA.1ETU
;------------------------------------------CCC1ETU
	mov	r7,#Timer00 ;1
	djnz	r7,$        ;2*#Timer00
	djnz	r6,sb_03    ;2
;------------------------------------------BBB1ETU
	NOP                 ;1
	setb	SAMIO       ;1
	NOP                 ;1-------------TEST BIT3
;------------------------------------------CCC1ETU
	mov	r7,#Timer00 ;1
        djnz    r7,$        ;2*#Timer00
        nop                 ;1
        nop                 ;1
        nop                 ;1
        nop                 ;1
        NOP                 ;1-------------TEST BIT4
;------------------------------------------CCC1ETU
        mov	r7,#Timer00 ;1
        djnz    r7,$        ;2*#Timer00
        nop                 ;1
        NOP                 ;1
        mov     r7,#00h     ;1
        NOP                 ;1-------------TEST BIT5


;------------------------------------------CCC1ETU
  	ret                 ;1
;======================================================
; Timer00  EQU   13         ;ONEETU=2*Timer00
; Timer01  EQU   7          ;HALFETU=2*Timer01

_I_1Rda56k:

RB_00:	mov	r6,#0FFh
	mov	r7,#0ffh
        MOV     R5,#03h
RB_01:	jnb	SAMIO,RB_021 ;
	djnz	r7,RB_01    ;
	mov	r7,#0ffh
	djnz	r6,RB_01
        djnz    r5,RB_01
	mov	R7,#01H      ;timeout=(4*255+1+2)*255*3
	ret

 RB_021:
	NOP                 ;1-------------TEST BIT6
	mov	r6,#08h     ;1
	mov	r7,#Timer00      ;1       2003.3.12
	djnz	r7,$        ;#Timer00*2
        NOP                 ;1
        nop
        nop
        mov	r7,#Timer01 ;1   mov	r7,#Timer03
	djnz	r7,$        ;#Timer01*2
        NOP                 ;1
;------------------------------------------AAA1ETU
RB_031:	mov	c,SAMIO     ;1
;------------------------------------------DDD1.5ETU
;------------------------------------------BBB1ETU
	NOP                 ;1-------------TEST BIT7
        ;nop                 ;03.3.18
	rrc	a           ;1
	mov	r7,#Timer00      ;1    mov	r7,#Timer02
	djnz	r7,$        ;#Timer00*2
	djnz	r6,RB_031    ;2
;------------------------------------------AAA1ETU
	mov	c,SAMIO     ;1
;------------------------------------------BBB1ETU
;------------------------------------------CCC1ETU
	NOP                 ;1-------------TEST BIT8
	mov	r7,#13   ;1    2003.3.12
	djnz	r7,$        ;#Timer00*2
        NOP                 ;1
        NOP                 ;1
        setb    SAMIO 	    ;1
;------------------------------------------CCC1ETU
        NOP                 ;1-------------TEST BIT9
RB_041:	CJNE   R3,#02H,RB_051       ;2
	MOV DPH,R2                  ;
	MOV DPL,R1
	MOVX @DPTR,A                 ;2
	MOV R7,#00H                  ;1
	RET                          ;2              共26个CLOCK ,0.5ETU
RB_051:  MOV @R1,A                   ;1
        mov     r7,#00h

	ret

        end

⌨️ 快捷键说明

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