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

📄 spi.asm

📁 基于PIC16F877的SPI串口发送数据
💻 ASM
字号:
;单片机发送2个数据 
    LIST P=16F877
     INCLUDE<P16F877.INC>
   
      ORG   0X00
      GOTO  MAIN
MAIN   BSF  STATUS,RP0           ;在体1里面设置TRISC和SSPSTAT
       BCF  STATUS,RP1
       MOVLW  0X00
       MOVWF  TRISC
       MOVLW  0X80
       MOVWF  SSPSTAT
       BCF   STATUS,RP0          ;在体0里面设置SSPCON
       MOVLW  0X30
       MOVWF  SSPCON

;设置完成启动发送
LOOP   MOVLW  0X3F               ;发送的第1个数先送到W寄存器        
       CALL   FASONG             ;调用发送程序
       CALL   DELAY              ;延时
       MOVLW  0X06               ;发送的第2个数送到W寄存器
       CALL   FASONG             ;调用发送程序
       CALL   DELAY              ;延时
       MOVLW  0X5B               ;发送的第3个数送到W寄存器
       CALL   FASONG             ;调用发送程序
       CALL   DELAY 
       MOVLW  0X4F               ;发送的第4个数送到W寄存器
       CALL   FASONG             ;调用发送程序
       CALL   DELAY 
       MOVLW  0X66               ;发送的第5个数送到W寄存器
       CALL   FASONG             ;调用发送程序
       CALL   DELAY 
       MOVLW  0X6D               ;发送的第6个数送到W寄存器
       CALL   FASONG             ;调用发送程序
       CALL   DELAY 
       MOVLW  0X7D               ;发送的第7个数送到W寄存器
       CALL   FASONG             ;调用发送程序
       CALL   DELAY 
       GOTO   LOOP
FASONG  MOVWF   SSPBUF          ;要发送的数据已经在W里面,需要将其取出并且送到SSPBUF中
        BCF    STATUS,RP1
        BCF    STATUS,RP0
LOOP1   BTFSS  PIR1,SSPIF       ;测试SSPIF是否为1,即是否已经完成了发送数据
        GOTO   LOOP1             ;SSPIF=0,即发未完成,继续查询,直到发送完成
        RETURN                  ;SSPIF=1,发送完成,返回
        
DELAY   movlw    0xff
        movwf     77h
lp0     movlw    0xff
        movwf     78h
lp1     nop
        nop 
        nop
        nop 
        nop
        decfsz    78h,1
        goto      lp1
        decfsz    77h,1
        goto      lp0
        return
        end          

       

⌨️ 快捷键说明

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