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

📄 spi.lst

📁 at89x52 spi 编程工具
💻 LST
字号:
A51 MACRO ASSEMBLER  SPI                                                                  04/12/2007 15:50:05 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN spi.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE spi.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     
                       2     
                       3     
                       4     $nomod51 
                       5     
                       6     NAME    SPI
                       7     
                       8     ;MOSI   BIT     90H.2
                       9     ;MISO   BIT     90H.3
                      10     ;SCK    BIT     90H.4
  00B5                11     MOSI    BIT     0B0H.5
  00B4                12     MISO    BIT     0B0H.4
  00B2                13     SCK     BIT     0B0H.2
  00E0                14     ACC     DATA    0E0H
  00D0                15     PSW     DATA    0D0H
  0082                16     DPL     DATA    82H
  0083                17     DPH     DATA    83H
                      18     
                      19     ?PR?_WBYTE?SPI          SEGMENT CODE
                      20     ?PR?RBYTE?SPI           SEGMENT CODE
                      21     ?PR?INIT?SPI            SEGMENT CODE
                      22     ?PR?_READ_MEM?SPI       SEGMENT CODE
                      23     ?PR?_WRITE_MEM?SPI      SEGMENT CODE
                      24     ?PR?DELAY10?SPI         SEGMENT CODE
                      25     PUBLIC  _WBYTE
                      26     PUBLIC  RBYTE
                      27     PUBLIC  INIT
                      28     PUBLIC  _READ_MEM
                      29     PUBLIC  _WRITE_MEM
                      30     PUBLIC  DELAY10
                      31     ;-------------------------------------------------------------------------
                      32     ;C调用形式为:VOID WBYTE(UNSIGNED CHAR VALUE)
                      33     ;VALUR放在R7中
                      34     ;-------------------------------------------------------------------------
----                  35     RSEG  ?PR?_WBYTE?SPI
                      36     USING   0
0000                  37     _WBYTE:
0000 7B08             38             MOV     R3,#08H
0002 EF               39             MOV     A,R7
0003 C3               40             CLR     C
0004 33               41     W1:     RLC     A
0005 92B5             42             MOV     MOSI,C
0007 00               43             NOP
0008 D2B2             44             SETB    SCK
000A 00               45             NOP
000B C2B2             46             CLR     SCK
000D 00               47             NOP
000E DBF4             48             DJNZ    R3,W1
0010 22               49             RET     
                      50     ;-------------------------------------------------------------------------
                      51     ;C调用形式为:UNSIGNED CHAR RBYTE(VOID)
                      52     ;VALUR放在R7中
                      53     ;-------------------------------------------------------------------------
----                  54     RSEG  ?PR?RBYTE?SPI
                      55     USING   0
0000                  56     RBYTE:
0000 D2B4             57             SETB    MISO
0002 7B08             58             MOV     R3,#08H
A51 MACRO ASSEMBLER  SPI                                                                  04/12/2007 15:50:05 PAGE     2

0004 D2B2             59     RE1:    SETB    SCK
0006 00               60             NOP
0007 A2B4             61             MOV     C,MISO
0009 C2B2             62             CLR     SCK
000B 00               63             NOP
000C 33               64             RLC     A
000D DBF5             65             DJNZ    R3,RE1
000F FF               66             MOV     R7,A
0010 22               67             RET
                      68     ;-------------------------------------------------------------------------
                      69     ;C调用形式为: VOID INIT(VOID)
                      70     ;-------------------------------------------------------------------------
----                  71     RSEG  ?PR?INIT?SPI
                      72     USING   0
0000                  73     INIT:
0000 C2B5             74             CLR     MOSI
0002 C2B4             75             CLR     MISO
0004 C2B2             76             CLR     SCK
0006 22               77             RET
                      78     ;-------------------------------------------------------------------------
                      79     ;C调用形式为:VOID WRITE_MEM(UNSIGNED INT ADDR,UNSIGNED CHAR VALUE)
                      80     ;VALUR放在R5中,ADDR IN R6,R7
                      81     ;-------------------------------------------------------------------------
----                  82     RSEG  ?PR?_WRITE_MEM?SPI
                      83     USING   0
0000                  84     _WRITE_MEM:
0000 8E83             85             MOV     DPH,R6
0002 8F82             86             MOV     DPL,R7
0004 7F40             87             MOV     R7,#40H
0006 120000   F       88             LCALL   _WBYTE
0009 AF83             89             MOV     R7,DPH
000B 120000   F       90             LCALL   _WBYTE
000E AF82             91             MOV     R7,DPL
0010 120000   F       92             LCALL   _WBYTE
0013 AF05             93             MOV     R7,AR5
0015 120000   F       94             LCALL   _WBYTE
0018 22               95             RET
                      96     ;-------------------------------------------------------------------------
                      97     ;C调用形式为:UNSIGNED CHAR READ_MEM(UNSIGNED INT ADDR)
                      98     ;VALUR放在R7中,ADDR IN R6,R7
                      99     ;-------------------------------------------------------------------------
----                 100     RSEG  ?PR?_READ_MEM?SPI
                     101     USING   0
0000                 102     _READ_MEM:
0000 8E83            103             MOV     DPH,R6
0002 8F82            104             MOV     DPL,R7
0004 7F20            105             MOV     R7,#20H
0006 120000   F      106             LCALL   _WBYTE
0009 AF83            107             MOV     R7,DPH
000B 120000   F      108             LCALL   _WBYTE
000E AF82            109             MOV     R7,DPL
0010 120000   F      110             LCALL   _WBYTE
0013 120000   F      111             LCALL   RBYTE
0016 22              112             RET
                     113     ;-------------------------------------------------------------------------
                     114     ;C调用形式为:VOID DELAY10(VOID)
                     115     ;1 MES DELAY
                     116     ;-------------------------------------------------------------------------
----                 117     RSEG  ?PR?DELAY10?SPI
0000                 118     DELAY10:
0000 7CC8            119             MOV     R4,#0C8H
0002 00              120     DEL:    NOP
0003 00              121             NOP
0004 00              122             NOP
0005 DCFB            123             DJNZ    R4,DEL
0007 22              124             RET
A51 MACRO ASSEMBLER  SPI                                                                  04/12/2007 15:50:05 PAGE     3

                     125     END     
A51 MACRO ASSEMBLER  SPI                                                                  04/12/2007 15:50:05 PAGE     4

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

?PR?DELAY10?SPI. .  C SEG    0008H       REL=UNIT
?PR?INIT?SPI . . .  C SEG    0007H       REL=UNIT
?PR?RBYTE?SPI. . .  C SEG    0011H       REL=UNIT
?PR?_READ_MEM?SPI.  C SEG    0017H       REL=UNIT
?PR?_WBYTE?SPI . .  C SEG    0011H       REL=UNIT
?PR?_WRITE_MEM?SPI  C SEG    0019H       REL=UNIT
ACC. . . . . . . .  D ADDR   00E0H   A   
AR5. . . . . . . .  D ADDR   0005H   A   
DEL. . . . . . . .  C ADDR   0002H   R   SEG=?PR?DELAY10?SPI
DELAY10. . . . . .  C ADDR   0000H   R   SEG=?PR?DELAY10?SPI
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
INIT . . . . . . .  C ADDR   0000H   R   SEG=?PR?INIT?SPI
MISO . . . . . . .  B ADDR   00B0H.4 A   
MOSI . . . . . . .  B ADDR   00B0H.5 A   
PSW. . . . . . . .  D ADDR   00D0H   A   
RBYTE. . . . . . .  C ADDR   0000H   R   SEG=?PR?RBYTE?SPI
RE1. . . . . . . .  C ADDR   0004H   R   SEG=?PR?RBYTE?SPI
SCK. . . . . . . .  B ADDR   00B0H.2 A   
SPI. . . . . . . .  N NUMB   -----       
W1 . . . . . . . .  C ADDR   0004H   R   SEG=?PR?_WBYTE?SPI
_READ_MEM. . . . .  C ADDR   0000H   R   SEG=?PR?_READ_MEM?SPI
_WBYTE . . . . . .  C ADDR   0000H   R   SEG=?PR?_WBYTE?SPI
_WRITE_MEM . . . .  C ADDR   0000H   R   SEG=?PR?_WRITE_MEM?SPI


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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