📄 spis.asm
字号:
;********************SPIS********************
;本程序实现SPI从动方式发送并接受一个字节数据。
;入口参数:待发送的数据在SOU中。
;出口参数:接收到的数据在SOU中。
;占用资源:W,STATUS,024H,07FH,07EH,17FH,SSP模块,二重堆栈。
;说明: 1.使用该程序需在中断入口程序中填入如下两条指令
; BTFSC PIR1,SSPIF
; GOTO SSPINT1
; 3.同步时钟频率为FOSC/64
IFNDEF SPIS1
#DEFINE SPIS1
SAVEW EQU 07FH ;现场保护中保存W的地址
SAVES EQU 07EH
SPIS BSF STATUS,RP0
MOVLW 11011111B
MOVWF TRISC ;SCK输入,SDO输出,SDI输入
CLRF SSPSTAT ;清除CKE,SMP位
BSF PIE1,SSPIE ;SSP中断允许
BCF STATUS,RP0
MOVLW 00110101B ;设置SSP控制方式:取FOSC/64,SPI主控,CKP=1
MOVWF SSPCON
BCF PIR1,SSPIF
BSF INTCON,GIE
BSF INTCON,PEIE ;开中断
MOVF SOU,W
MOVWF SSPBUF ;开始发送和接收
RETURN
;*****************接收中断服务程序***************
SSPINT1 MOVWF SAVEW
SWAPF STATUS,W
CLRF STATUS
MOVWF SAVES ;保护现场
BCF PIR1,SSPIF
MOVF SSPBUF,W
MOVWF SOU ;接收到数据
SWAPF SAVES,W
MOVWF STATUS
SWAPF SAVEW,F
SWAPF SAVEW,W ;恢复现场
RETFIE
ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -