?? vspi.asm
字號:
;******************VSPI****************
;虛擬SPI總線軟件包
;入口參數:待發送數據在SPIBUF中。
;出口參數:接收到的數據在SPIBUF中。
;占用資源:W,STATUS,RB,023H,024H,1重堆棧。
;說 明:1.總線空閑時,時鐘為高電平。
; 2.時鐘上升沿移出數據,下降沿移入數據。
; 3.高位在前,低位在后。
IFNDEF VSPI1
#DEFINE VSPI1
#DEFINE VSCK PORTB,1 ;SPI時鐘信號線
#DEFINE VSDO PORTB,2 ;SPI數據輸出線
#DEFINE VSDI PORTB,3 ;SPI數據輸入線
#DEFINE SCKIO TRISB,1 ;SCK屬性
#DEFINE SDOIO TRISB,2 ;SDO屬性
#DEFINE SDIIO TRISB,3 ;SDI屬性
SPIBUF EQU SOU ;數據緩沖器
BCOUNT EQU CNT ;位計數器
VSPI MOVLW 8
MOVWF BCOUNT
BSF VSCK
BSF VSDO
BSF VSDI
BSF STATUS,RP0
BCF SCKIO
BCF SDOIO
BSF SDIIO ;設置口屬性
BCF STATUS,RP0
SPILOOP BCF VSCK ;時鐘下降沿
NOP
NOP
BCF STATUS,C
BTFSC VSDI
BSF STATUS,C ;讀入一位數據
RLF SPIBUF,F
BCF VSDO
BTFSC STATUS,C
BSF VSDO ;送出一位數據
NOP
NOP
BSF VSCK ;時鐘上升沿
NOP
DECFSZ BCOUNT,F
GOTO SPILOOP
BSF STATUS,RP0
BSF SCKIO
BSF SDOIO
BSF SDIIO ;設置口屬性
BCF STATUS,RP0
RETURN
ENDIF
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -