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

📄 spi.a51

📁 用keil开发的.单片机税控器程序.单片机用的是AT公司的.upsd3245
💻 A51
字号:
;
; Copyright (c) 2004,成都港顺科技发展有限公司
; All rights reserved.
;
; 编 译 器:Keil:C Compiler:7.20;Assembler:7.10
; 工程名称:POS-Test.UV2
; 文件名称:M25P80SendRec.asm
; 摘    要:SPI总线驱动
; 
; 单 片 机:uPSD3254 
; 当前版本:0.4
; 作    者:雍继兵
; 完成日期:2004-12-7 14:45
;

 ChipType	EQU		6DFBH
 DatLen		EQU		6DFCH
 Adrress	EQU		6DFDH 
 RxdAdr		EQU		6E00H
 TxdAdr		EQU		6F00H
 

 P4   	DATA  0C0H;
 CLK	BIT		P4.4;时钟
 SDI	BIT		P4.5;单片机输入
 SDO	BIT		P4.6;单片机输出

 DD			SEGMENT		CODE

 PUBLIC		_SpiSendChar						;从SPI总线上发送一个字节数据
 RSEG			DD
 _SpiSendChar:
 				MOV		R1,#8
				MOV 	A,R7
				CLR 	C
LOOPS:
				CLR		CLK
				RLC		A
				MOV 	SDO,C
				SETB	CLK
				DJNZ	R1,LOOPS
				RET


 PUBLIC		SpiReceiveChar						;从SPI总线上接收一个字节数据
 RSEG			DD
 SpiReceiveChar:
 				MOV		R1,#8
				CLR 	C
 LOOPR:
				CLR		CLK
				MOV		C,SDI
				RLC		A
				SETB	CLK
				DJNZ	R1,LOOPR
				MOV		R7,A
				RET

 ;接收LEN个数据接收在SPI总线上
 PUBLIC		SpiReceiveData
 RSEG			DD
 SpiReceiveData:
				MOV		R7,#0BH				;读命令//0bh
				LCALL	_SpiSendChar

				MOV		DPTR,#Adrress
				MOVX	A,@DPTR				;address_H
				MOV		R7,A
				LCALL	_SpiSendChar

				INC		DPTR
				MOVX	A,@DPTR
				MOV		R7,A
				LCALL	_SpiSendChar

				INC		DPTR
				MOVX	A,@DPTR
				MOV		R7,A
				LCALL	_SpiSendChar

				MOV		R7,#55H
				LCALL	_SpiSendChar

				MOV		DPTR,#DatLen
				MOVX	A,@DPTR
				MOV		R5,A;长度

				MOV		DPTR,#RxdAdr		;接收数据缓冲区开始地址
LOOPRE:
				LCALL	SpiReceiveChar
				MOV		A,R7
				MOVX	@DPTR,A
				INC		DPTR
				DJNZ	R5,LOOPRE
 				RET


;发送LEN个数据在SPI总线上
 PUBLIC		SpiSendData					;从SPI总线上发送len个数据
 RSEG			DD
SpiSendData:

				MOV   	DPTR,#ChipType		;M45Pe80  is 0xAA and M25P80 is 0x55
				MOVX  	A,@DPTR
				CJNE  	A,#0AAH,M25P  		;not eneu
				MOV   	R7,#0AH				;eneu
				LJMP  	Flash				;page program
M25P:			
				MOV		R7,#02H				;写数据指令 page write
Flash:			
				LCALL	_SpiSendChar

				MOV		DPTR,#Adrress		;地址1
				MOVX	A,@DPTR
				MOV		R7,A
				LCALL	_SpiSendChar
				INC		DPTR				;地址2

				MOVX	A,@DPTR
				MOV		R7,A
				LCALL	_SpiSendChar
				INC		DPTR				;地址3

				MOVX	A,@DPTR
				MOV		R7,A
				LCALL	_SpiSendChar

				MOV		DPTR,#DatLen		;数据长度高位
				MOVX	A,@DPTR
				MOV		R5,A				;数据长度低位
				MOV		DPTR,#TxdAdr		;发送开始地址
LOOP_S:
				MOVX	A,@DPTR
				MOV		R7,A
				LCALL	_SpiSendChar
				INC		DPTR
				DJNZ	R5,LOOP_S
				RET

				END

⌨️ 快捷键说明

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