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

📄 a.plg

📁 rfid开发文件。可以用作读头开发。广泛用途停车场管理/物流管理等。
💻 PLG
字号:

;-----------------------------------------------------------------------------

sdi		bit	P3.4
sck		bit	P3.5
nsel		bit	P3.6
sdo		bit	P3.7

workflag	data	28h
comdata1	data	3dh
comdata2	data	3eh
bytedata	data	3fh
rxdata		data	40h	;16,接收数据寄存器组
revframe	bit	workflag.0


org	0000h
jmp	main

;--------- main start --------------------------------
org	0030h
main:
	mov	P1,#0ffh
	mov	P3,#0cfh

	call	ia4320init

mainloop:
	mov	comdata1,#0ceh		;FIFO COMMAND
	mov	comdata2,#087h
	call	spisendcommand
mainloop1:
	nop
	nop
	nop
	clr	sdi
	clr	nsel
	jb	sdo,revstart		;检测是否收到数据

	jmp	mainloop
			
revstart:				;开始接收
	mov	r0,#40h
	call	fiforxframe
	jnb	revframe,mainloop
	clr	revframe
	mov	a,42h
	swap	a
	mov	P1,a
	mov	r6,#0fah
	call	delayn00us
	mov	r6,#0fah
	call	delayn00us
	mov	r6,#0fah
	call	delayn00us
	mov	P1,#0ffh
	jmp	mainloop
;--------- main end -------------------------------------

;--------- ia442xinit start -----------------------------
ia432xinit:				;IA432x初始化
	mov	comdata1,#080h		;配置命令
	mov	comdata2,#0fdh
	call	spisendcommand
	mov	comdata1,#082h		;电源管理
	mov	comdata2,#00ch
	call	spisendcommand
	mov	comdata1,#0a0h		;频率设置
	mov	comdata2,#080h
	call	spisendcommand
	mov	comdata1,#0c6h		;波特率设置
	mov	comdata2,#023h
	call	spisendcommand
	mov	comdata1,#094h		;接收控制
	mov	comdata2,#083h
	call	spisendcommand
	mov	comdata1,#0c2h		;数据滤波
	mov	comdata2,#0ech
	call	spisendcommand
	mov	comdata1,#0cah		;FIFO COMMAND
	mov	comdata2,#081h
	call	spisendcommand
	mov	comdata1,#0c4h		;AFC COMMAND
	mov	comdata2,#0e7h
	call	spisendcommand
	mov	comdata1,#098h		;TXCTRL
	mov	comdata2,#040h
	call	spisendcommand
	mov	comdata1,#0ffh		;WAKEUP
	mov	comdata2,#0ffh
	call	spisendcommand
	mov	comdata1,#0c8h		;间歇工作
	mov	comdata2,#00eh
	call	spisendcommand
	mov	comdata1,#0c0h		;时钟输出
	mov	comdata2,#060h
	call	spisendcommand
	ret
;--------- ia442xinit end ---------------------------------

;--------- fiforxframe start ------------------------------
fiforxframe:				;IA432x接收一帧数据
	call	spirevbyte
	call	spirevbyte
	call	spirevbyte
	setb	nsel
	mov	a,bytedata
	mov	@r0,a
	cjne	a,#0fah,fiforevret
	clr	sdi
	clr	nsel
	jnb	sdo,$
	call	spirevbyte
	call	spirevbyte
	call	spirevbyte
	setb	nsel
	inc	r0
	mov	a,bytedata
	mov	@r0,a
	anl	a,#0fh
	mov	r3,a
revnextbyte:
	clr	sdi
	clr	nsel
	jnb	sdo,$
	call	spirevbyte
	call	spirevbyte
	call	spirevbyte
	setb	nsel
	inc	r0
	mov	a,bytedata
	mov	@r0,a
	djnz	r3,revnextbyte
	setb	revframe
fiforevret:
	setb	nsel
	mov	comdata1,#0cah
	mov	comdata2,#081h
	call	spisendcommand
	ret
;--------- fiforxframe end -------------------------------


;--------- spisendcommand start --------------------------
spisendcommand:				;写指令
	clr	nsel
	mov	bytedata,comdata1
	call	spisendbyte
	mov	bytedata,comdata2
	call	spisendbyte
	setb	nsel
	ret
;--------- spisendcommand end ----------------------------


;--------- spirevtwobyte start ---------------------------
spirevtwobyte:				;读状态
	clr	nsel
	call	spirevbyte
	mov	comdata1,bytedata
	call	spirevbyte
	mov	comdata2,bytedata
	setb	nsel
	ret

	mov	r2,#08h
	clr	sdi
	clr	sck
	clr	a
revnextbit:
	setb	sck
	mov	c,sdo
	rlc	a
	clr	sck
	djnz	r2,revnextbit
	mov	bytedata,a
	ret
;--

⌨️ 快捷键说明

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