?? 關于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 + -