⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vspi.asm

📁 微芯公司的PIC子程序库及运算平台
💻 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 + -