📄 关于spi总线的读写程序一点探讨.txt
字号:
关于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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -