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