📄 spi_slave_ss.lst
字号:
A51 MACRO ASSEMBLER SPI_SLAVE_SS 04/30/2004 16:06:21 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN spi_slave_ss.OBJ
ASSEMBLER INVOKED BY: C:\KEIL\C51\BIN\A51.EXE spi_slave_ss.a51 NOMOD51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;$include (reg_c51.INC)
+1 2 +1 $save
+1 210 +1 $restore
211
0001 212 transmit_completed BIT 20H.1; software flag
0008 213 serial_data DATA 08H
214
0000 215 org 000h
0000 020100 216 ljmp begin
217
004B 218 org 4Bh
004B 02011E 219 ljmp it_SPI
220
221 ;/**
222 ; * FUNCTION_PURPOSE: This file set up spi in slave mode with
223 ; * Fclk Periph/128 as baud rate and with slave select pin
224 ; * FUNCTION_INPUTS: P1.5(MISO) serial input
225 ; * P1.1(/SS)=0 slave selected
226 ; * FUNCTION_OUTPUTS: P1.7(MOSI) serial output
227 ; */
0100 228 org 0100h
0100 229 begin:
230
0100 53C3EF 231 ANL SPCON,#0EFh; /* slave mode */
0103 53C3F7 232 ANL SPCON,#0F7h; /* CPOL=0; transmit mode example */
0106 43C304 233 ORL SPCON,#04h; /* CPHA=1; transmit mode example */
0109 43B104 234 ORL IEN1,#04h; /* enable spi interrupt */
010C 43C340 235 ORL SPCON,#40h; /* run spi */
010F C201 236 CLR transmit_completed; /* clear software transfert flag */
0111 D2AF 237 SETB EA; /* enable interrupts */
238
0113 239 loop:
0113 300105 240 JNB transmit_completed,end_if
241
0116 8508C5 242 MOV SPDAT,serial_data; /* echo data to master */
0119 C201 243 CLR transmit_completed; /* clear software transfert flag */
244
011B 245 end_if:
011B 020113 246 LJMP loop
247
248
249 ;/**
250 ; * FUNCTION_PURPOSE: spi interrupt, receive data to master
251 ; * FUNCTION_INPUTS: void
252 ; * FUNCTION_OUTPUTS: void
253 ; */
011E 254 it_SPI:; /* interrupt address is 0x004B */
255
011E AFC4 256 MOV R7,SPSTA;
0120 8FE0 257 MOV ACC,R7
0122 30E705 258 JNB ACC.7,break1;case 0x80:
0125 85C508 259 MOV serial_data,SPDAT; /* read receive data */
0128 D201 260 SETB transmit_completed; /* set software flag */
012A 261 break1:
262
012A 30E400 263 JNB ACC.4,break2;case 0x10:
264 ; /* put here for mode fault tasking */
012D 265 break2:;
A51 MACRO ASSEMBLER SPI_SLAVE_SS 04/30/2004 16:06:21 PAGE 2
266
012D 30E600 267 JNB ACC.6,break3;case 0x40:
268 ; /* put here for overrun tasking */
0130 269 break3:;
270
0130 8508C5 271 MOV SPDAT,serial_data; /* needed to complete clearing sequence */
272
0133 32 273 RETI
274
275 end
A51 MACRO ASSEMBLER SPI_SLAVE_SS 04/30/2004 16:06:21 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
AC . . . . . . . . B ADDR 00D0H.6 A
ACC. . . . . . . . D ADDR 00E0H A
AUXR . . . . . . . D ADDR 008EH A
AUXR1. . . . . . . D ADDR 00A2H A
B. . . . . . . . . D ADDR 00F0H A
BDRCON . . . . . . D ADDR 009BH A
BEGIN. . . . . . . C ADDR 0100H A
BREAK1 . . . . . . C ADDR 012AH A
BREAK2 . . . . . . C ADDR 012DH A
BREAK3 . . . . . . C ADDR 0130H A
BRL. . . . . . . . D ADDR 009AH A
CCAP0H . . . . . . D ADDR 00FAH A
CCAP0L . . . . . . D ADDR 00EAH A
CCAP1H . . . . . . D ADDR 00FBH A
CCAP1L . . . . . . D ADDR 00EBH A
CCAP2H . . . . . . D ADDR 00FCH A
CCAP2L . . . . . . D ADDR 00ECH A
CCAP3H . . . . . . D ADDR 00FDH A
CCAP3L . . . . . . D ADDR 00EDH A
CCAP4H . . . . . . D ADDR 00FEH A
CCAP4L . . . . . . D ADDR 00EEH A
CCAPM0 . . . . . . D ADDR 00DAH A
CCAPM1 . . . . . . D ADDR 00DBH A
CCAPM2 . . . . . . D ADDR 00DCH A
CCAPM3 . . . . . . D ADDR 00DDH A
CCAPM4 . . . . . . D ADDR 00DEH A
CCF0 . . . . . . . B ADDR 00D8H.0 A
CCF1 . . . . . . . B ADDR 00D8H.1 A
CCF2 . . . . . . . B ADDR 00D8H.2 A
CCF3 . . . . . . . B ADDR 00D8H.3 A
CCF4 . . . . . . . B ADDR 00D8H.4 A
CCON . . . . . . . D ADDR 00D8H A
CF . . . . . . . . B ADDR 00D8H.7 A
CH . . . . . . . . D ADDR 00F9H A
CKCON0 . . . . . . D ADDR 008FH A
CKCON1 . . . . . . D ADDR 00AFH A
CKRL . . . . . . . D ADDR 0097H A
CKSEL. . . . . . . D ADDR 0085H A
CL . . . . . . . . D ADDR 00E9H A
CMOD . . . . . . . D ADDR 00D9H A
CP_RL2 . . . . . . B ADDR 00C8H.0 A
CR . . . . . . . . B ADDR 00D8H.6 A
CY . . . . . . . . B ADDR 00D0H.7 A
C_T2 . . . . . . . B ADDR 00C8H.1 A
DPH. . . . . . . . D ADDR 0083H A
DPL. . . . . . . . D ADDR 0082H A
EA . . . . . . . . B ADDR 00A8H.7 A
EC . . . . . . . . B ADDR 00A8H.6 A
EECON. . . . . . . D ADDR 00D2H A
END_IF . . . . . . C ADDR 011BH A
ES . . . . . . . . B ADDR 00A8H.4 A
ET0. . . . . . . . B ADDR 00A8H.1 A
ET1. . . . . . . . B ADDR 00A8H.3 A
ET2. . . . . . . . B ADDR 00A8H.5 A
EX0. . . . . . . . B ADDR 00A8H.0 A
EX1. . . . . . . . B ADDR 00A8H.2 A
EXEN2. . . . . . . B ADDR 00C8H.3 A
EXF2 . . . . . . . B ADDR 00C8H.6 A
F0 . . . . . . . . B ADDR 00D0H.5 A
FCON . . . . . . . D ADDR 00D1H A
A51 MACRO ASSEMBLER SPI_SLAVE_SS 04/30/2004 16:06:21 PAGE 4
IE0. . . . . . . . B ADDR 0088H.1 A
IE1. . . . . . . . B ADDR 0088H.3 A
IEN0 . . . . . . . D ADDR 00A8H A
IEN1 . . . . . . . D ADDR 00B1H A
INT0 . . . . . . . B ADDR 00B0H.2 A
INT1 . . . . . . . B ADDR 00B0H.3 A
IPH0 . . . . . . . D ADDR 00B7H A
IPH1 . . . . . . . D ADDR 00B3H A
IPL0 . . . . . . . D ADDR 00B8H A
IPL1 . . . . . . . D ADDR 00B2H A
IT0. . . . . . . . B ADDR 0088H.0 A
IT1. . . . . . . . B ADDR 0088H.2 A
IT_SPI . . . . . . C ADDR 011EH A
KBE. . . . . . . . D ADDR 009DH A
KBF. . . . . . . . D ADDR 009EH A
KBLS . . . . . . . D ADDR 009CH A
LOOP . . . . . . . C ADDR 0113H A
OSCCON . . . . . . D ADDR 0086H A
OV . . . . . . . . B ADDR 00D0H.2 A
P. . . . . . . . . B ADDR 00D0H.0 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
P4 . . . . . . . . D ADDR 00C0H A
P5 . . . . . . . . D ADDR 00E8H A
PCON . . . . . . . D ADDR 0087H A
PI2. . . . . . . . D ADDR 00F8H A
PI2_1. . . . . . . B ADDR 00F8H.1 A
PI2_O. . . . . . . B ADDR 00F8H.0 A
PPCL . . . . . . . B ADDR 00B8H.6 A
PSL. . . . . . . . B ADDR 00B8H.4 A
PSW. . . . . . . . D ADDR 00D0H A
PT0L . . . . . . . B ADDR 00B8H.1 A
PT1L . . . . . . . B ADDR 00B8H.3 A
PT2L . . . . . . . B ADDR 00B8H.5 A
PX0L . . . . . . . B ADDR 00B8H.0 A
PX1L . . . . . . . B ADDR 00B8H.2 A
RB8. . . . . . . . B ADDR 0098H.2 A
RCAP2H . . . . . . D ADDR 00CBH A
RCAP2L . . . . . . D ADDR 00CAH A
RCLK . . . . . . . B ADDR 00C8H.5 A
RD . . . . . . . . B ADDR 00B0H.7 A
REN. . . . . . . . B ADDR 0098H.4 A
RI . . . . . . . . B ADDR 0098H.0 A
RS0. . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . B ADDR 00D0H.4 A
RXD. . . . . . . . B ADDR 00B0H.0 A
SADDR. . . . . . . D ADDR 00A9H A
SADEN. . . . . . . D ADDR 00B9H A
SBUF . . . . . . . D ADDR 0099H A
SCON . . . . . . . D ADDR 0098H A
SERIAL_DATA. . . . D ADDR 0008H A
SM0. . . . . . . . B ADDR 0098H.7 A
SM1. . . . . . . . B ADDR 0098H.6 A
SM2. . . . . . . . B ADDR 0098H.5 A
SP . . . . . . . . D ADDR 0081H A
SPCON. . . . . . . D ADDR 00C3H A
SPDAT. . . . . . . D ADDR 00C5H A
SPSTA. . . . . . . D ADDR 00C4H A
SSADR. . . . . . . D ADDR 0096H A
SSCON. . . . . . . D ADDR 0093H A
SSCS . . . . . . . D ADDR 0094H A
SSDAT. . . . . . . D ADDR 0095H A
T0 . . . . . . . . B ADDR 00B0H.4 A
T1 . . . . . . . . B ADDR 00B0H.5 A
A51 MACRO ASSEMBLER SPI_SLAVE_SS 04/30/2004 16:06:21 PAGE 5
T2CON. . . . . . . D ADDR 00C8H A
T2MOD. . . . . . . D ADDR 00C9H A
TB8. . . . . . . . B ADDR 0098H.3 A
TCLK . . . . . . . B ADDR 00C8H.4 A
TCON . . . . . . . D ADDR 0088H A
TF0. . . . . . . . B ADDR 0088H.5 A
TF1. . . . . . . . B ADDR 0088H.7 A
TF2. . . . . . . . B ADDR 00C8H.7 A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TH2. . . . . . . . D ADDR 00CDH A
TI . . . . . . . . B ADDR 0098H.1 A
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TL2. . . . . . . . D ADDR 00CCH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
TR2. . . . . . . . B ADDR 00C8H.2 A
TRANSMIT_COMPLETED B ADDR 0020H.1 A
TXD. . . . . . . . B ADDR 00B0H.1 A
WDTPRG . . . . . . D ADDR 00A7H A
WDTRST . . . . . . D ADDR 00A6H A
WR . . . . . . . . B ADDR 00B0H.6 A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -