关于spi总线的读写程序一点探讨.txt

来自「这是有关SPI总线的一段读写程序」· 文本 代码 · 共 62 行

TXT
62
字号
关于SPI总线的读写程序一点探讨  

 

一个SPI接口的器件(即DI,DO,SCLK,CS四条线的借口),它的要求是: 
MCU写(write):在时钟的下降沿把数据存入器件内的寄存器 
MCU读(read):在时钟的上升沿把数据从器件内的寄存器读入单片机。 
而且要求单片机在上升沿进行对器件的读写,数据变化要求在时钟高电平时进行。 
当sclk=1,cs从高跳到低表示开始。cs为高表示没有选中器件。它的时序图如下: 
对于这样一个要求的SPI借口器件我写了一个单片机写的程序不知道 
OUTOFFSETWRITE EQU 30H 
OUTOFFSETREAD EQU 31H 
CS EQU P1.0 
SCLK EQU P1.2 
DOU EQU P1.1 
DIN EQU P1.3 
ORG 0000H 
JMP MAIN 
ORG 004BH 
MAIN: 
MOV SP,#60H 
;开始子程序 
START: 
setb sclk 
nop 
nop 
clr cs 
NOP 
RET 
;结束子程序 
SETB CS 
NOP 
NOP 
NOP 
RET 
;写子程序 
WRITE: 
SETB SCLK 
MOV R1,#08H 
CLR C 
MOV A,OUTOFFSETWRITE 
AGAIN1: 
RLC A 
MOV DIN,C 
CLR SCLK 
DJNZ R1,AGAIN1 
SETB SCLK 
RET 
;读子程序 
WRITE: 
SETB SCLK 
CLR C 
MOV R1,#08H 
MOV A,OUTOFFSETREAD 
AGAIN2: 
MOV C,DOU 
RLC A 
CLR SCLK 
DJNZ R1,AGAIN2 
SETB SCLK 
RET 

⌨️ 快捷键说明

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