sspi.asm

来自「LPC932的SPI接口应用」· 汇编 代码 · 共 42 行

ASM
42
字号
; SPI从机
; 使用LPC932的SPI总线和主机进行通讯。
; 接收主机发送的地址,并取出对应内存地址的数据发送回主机。

;定义LPC932的部分特殊寄存器
DIVM	DATA	95H	; CPU分频设置寄存器
P2M1	DATA	0A4H
P2M2	DATA	0A5H

SPCTL	DATA	0E2H	; SPI设置寄存器
SPSTAT	DATA	0E1H	; SPI状态寄存器
SPDAT	DATA	0E3H	; SPI数据寄存器

SSIN	BIT	P2.4


	ORG	000H
MAIN:   
	MOV	R7,#0
	DJNZ	R7,$

	MOV	DIVM,#2		; 设置分频,使其总线频率与主机一置。否则最低位发送会为0
	MOV	P2M1,#00H	; 设置SS为准双向口,以使主机能操作从机
	MOV	P2M2,#00H

	MOV	A,#SLAVEMODE	; 初化从机
	ACALL	SETSPI

READ_DAT:
	ACALL	SRCV_DAT	; 读出主机发送过来的数据
	JNC	READ_DAT
	MOV	R1,A
	MOV	A,@R1
	JNB	SSIN,$		; 等待总线放开。
	ACALL	SSEND_DAT	; 将要发送的数据写入SPI数据寄存器
	SJMP	READ_DAT


$INCLUDE (LPC932SPI.INC)	; 使用LPC932的SPI软件包

	END

⌨️ 快捷键说明

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