📄 spist.sdi
字号:
,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,;
,,,; SPIST.ASM MPB Ver:1.0 14-9-05
,,,;...............................................................
,,,;
,,,; SPI Slave Transmitter program
,,,;
,,,; Waits for !SS and transmits switch BCD data
,,,;
,,,;
,,,;
,,,;
,,,;
,,,;
,,,;
,,,;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,
,,, PROCESSOR 16F877 ; define MPU
00002007,3731,, __CONFIG 0x3731 ; XT clock (4MHz)
,,,
,,,; LABEL EQUATES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,
,,, INCLUDE "P16F877.INC" ; Standard register labels
,,,
,,,
,,,
,,,
,,,; Initialise ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,
,,, ORG 0 ; Place machine code
00000000,0000,, NOP ; Required for ICD mode
,,,
00000001,1683 1303,, BANKSEL TRISC
00000003,1287,, BCF TRISC,5 ; Serial data output
00000004,0103,, CLRW SSPSTAT ; Default clock timing
,,,
00000005,1283 1303,, BANKSEL PORTD
00000007,3004,, MOVLW B'00000100' ; SPI slave mode with SS
00000008,0094,, MOVWF SSPCON ; SPI clock = 1MHz
00000009,1694,, BSF SSPCON,SSPEN ; Enable SPI mode
,,,
,,,
,,,; MAIN LOOP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
,,,
0000000A,0808,start,start MOVF PORTD,W ; Read BCD switch
0000000B,0093,, MOVWF SSPBUF ; Write SPI buffer
,,,
0000000C,1D8C,wait,wait BTFSS PIR1,SSPIF ; wait for SPI interrupt
0000000D,280C,, GOTO wait
0000000E,118C,, BCF PIR1,SSPIF ; clear interrupt flag
,,,
0000000F,280A,, GOTO start ; repeat main loop
,,,
,,,
,,,
,,, END ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -