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

📄 s6700.txt

📁 基于S6700芯片与ISO/IEC25693标准的读卡器设计,起始位子程序,结束位子程序 接收一个字节,数据发送子程序
💻 TXT
字号:
基于S6700芯片与ISO/IEC25693标准的读卡器设计,起始位子程序,结束位子程序
接收一个字节,数据发送子程序

VICC通信部分程序如下:
1)	起始位子程序
S1:    SETB	SCLOCK		
    NOP
NOP
	 SETB	DIN		
	 	 NOP
	 NOP
	 CLR	SCLOCK	
	 NOP
	 NOP
	 CLR	DIN
	 RET					

2) 结束位子程序
ES1:	SETB	DIN
		NOP
	NOP
	SETB	SCLOCK
	NOP
	NOP
	CLR		DIN
	NOP
	NOP
	CLR		SCLOCK
	RET
3) 时钟线切换子程序
TRAN1:
CLR		SCLOCK			
	CLR		DIN
	NOP
	NOP
	SETB	DIN
	NOP
	NOP
	CLR		DIN
	NOP
	NOP
	SETB	DIN			
	SETB	SCLOCK			;MCU I/O口设成输入
	RET
TRAN2:	
		CLR		SCLOCK
		CLR		DIN			
	NOP
	NOP
	SETB	DIN
	NOP
	NOP
	CLR		DIN
		RET	
4)发送一个字节子程序
S_BYTE:	
MOV	R7,#08H			;数据是8位
SBYTE1:
	JNB		DOUT, SBYTE2 	; FIFO管理
		CLR		DIN
		AJMP	SBYTE1			;DOUT=1, WAITING......
SBYTE2:
RRC		A				
	MOV	DIN, C			;发送一位
		NOP
		NOP
		SETB 	SCLOCK
	NOP		
	NOP
	CLR 	SCLOCK
		DJNZ	R7, SBYTE1
	RET
5)接收一个字节
R_BYTE:	
MOV	R0, #08H			;数据是8位
RBYTE2:
MOV	C,  SCLOCK		 
	JC		RBYTE2			;等待下降沿
RBYTE3:
MOV	C,  SCLOCK	 
	JNC		RBYTE3		 	;等待上升沿
	NOP				 
	NOP              
	MOV	C,  DOUT 		;上升沿到,采样一位
	RRC		A      		 
	DJNZ	R0, RBYTE2 	  
	RET
5)数据发送子程序
SEND:
PUSH	IE	
	MOV	IE,#10010000B	;只开串口中断
	LCALL	TRAN2		   	;获得SCLOCK控制权
	LCALL	S1				;起始位
	NOP
	NOP
	MOV	R0,#CMDBUFFER
	MOV	A,@R0
		LCALL	SN_BYTE		;发送命令字节2D,MSB FIRST
	INC		R0
		DEC		R2				;CMDBUFFER中欲发送数据长度
		MOV	R7,#64H
		LCALL	DELAY			;延时 100US
SEND1:
	MOV	A,@R0
	LCALL	S_BYTE			;发送其他数据,LSB FIRST
		INC		R0
		DJNZ	R2,SEND1
		LCALL	ES1       		;终止位
		POP		IE
		RET

⌨️ 快捷键说明

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