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

📄 mface_3.asm

📁 读写器源码
💻 ASM
字号:
SS	BIT	P3.2
SCLK	BIT	P1.6
SDATA	BIT	P1.5

PUBLIC	_SPI_SEND,_SPI_RCV,SPI_INIT

SPI_DT	SEGMENT	DATA
SPI_PR	SEGMENT	CODE

RSEG	SPI_DT
STACKSAVE:	DS	1

CSEG	AT	000BH
	LJMP	SPI_WDG
	
RSEG	SPI_PR
SPI_WDG:CLR	TR0
	ACALL	CLRINT
	MOV	SP,STACKSAVE
	SETB	SS
	CLR	SDATA
	MOV	R7,#0FFH
	RET	
CLRINT:	RETI

SPI_INIT:
	SETB	SS
	CLR	SDATA
	CLR	SCLK
	ANL	TMOD,#0F0H
	ORL	TMOD,#01H
	SETB	PT0		;T0's IP>X1's IP
	SETB	IT0		;INT0 is falling edg trig
	SETB	ET0
	RET

;Send data.R0=First address of Send_Buffer,R2=Lenght
_SPI_SEND:
	MOV	STACKSAVE,SP
	SETB	ET0	
	SETB	TR0
	CLR	EX0
	MOV	A,R7
	MOV	R0,A
	MOV	A,R5
	MOV	R2,A
	DEC	R0
	SETB	SDATA
	CLR	SCLK
	JB	SDATA,$
	CLR	SS
	JNB	SDATA,$
SENDBYTE:
	INC	R0
	MOV	A,@R0
	MOV	R3,#8
	DB	0,0,0,0
SENDBIT:
	RLC	A
	MOV	SDATA,C
	DB	0,0,0,0
	SETB	SCLK
	DB	0,0,0,0,0,0,0
	CLR	SCLK
	DJNZ	R3,SENDBIT
	DJNZ	R2,SENDBYTE
	SETB	SS
	CLR	SDATA
	CLR	TR0
	MOV	R7,#0
	RET

_SPI_RCV:
	MOV	A,R7
	MOV	R0,A
	MOV	R2,#0FFH
	DEC	R0
	CLR	SCLK
	SETB	SDATA
	DB	0,0,0,0,0,0
	DB	0,0,0,0,0,0
RCVBYTE:MOV	R3,#8
	INC	R0
	INC	R2
RCVBIT:	SETB	SCLK	
	DB	0,0
	MOV	C,SDATA
	RLC	A
	DB	0,0
	CLR	SCLK
	DB	0,0
	DJNZ	R3,RCVBIT
	MOV	@R0,A
	JNB	SS,RCVBYTE
	CLR	SDATA
	MOV	R7,#0
	RET
	END

⌨️ 快捷键说明

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