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

📄 spidemo.lst

📁 STC-MCU-SPI演示(源代码)
💻 LST
字号:
A51 MACRO ASSEMBLER  SPIDEMO                                                              08/04/2010 09:13:23 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;/*------------------------------------------------------------------*/
                       2     ;/* --- STC MCU International Limited -------------------------------*/
                       3     ;/* --- STC 1T Series MCU SPI Demo(Each other as the master-slave) --*/
                       4     ;/* --- Mobile: (86)13922805190 -------------------------------------*/
                       5     ;/* --- Fax: 86-755-82944243 ----------------------------------------*/
                       6     ;/* --- Tel: 86-755-82948412 ----------------------------------------*/
                       7     ;/* --- Web: www.STCMCU.com -----------------------------------------*/
                       8     ;/* If you want to use the program or the program referenced in the  */
                       9     ;/* article, please specify in which data and procedures from STC    */
                      10     ;/*------------------------------------------------------------------*/
                      11     
  008E                12     AUXR    DATA    08EH            ;Auxiliary register
  00CD                13     SPSTAT  DATA    0CDH            ;SPI status register
  0080                14     SPIF    EQU     080H            ;SPSTAT.7
  0040                15     WCOL    EQU     040H            ;SPSTAT.6
  00CE                16     SPCTL   DATA    0CEH            ;SPI control register
  0080                17     SSIG    EQU     080H            ;SPCTL.7
  0040                18     SPEN    EQU     040H            ;SPCTL.6
  0020                19     DORD    EQU     020H            ;SPCTL.5
  0010                20     MSTR    EQU     010H            ;SPCTL.4
  0008                21     CPOL    EQU     008H            ;SPCTL.3
  0004                22     CPHA    EQU     004H            ;SPCTL.2
  0000                23     SPDHH   EQU     000H            ;CPU_CLK/4
  0001                24     SPDH    EQU     001H            ;CPU_CLK/16
  0002                25     SPDL    EQU     002H            ;CPU_CLK/64
  0003                26     SPDLL   EQU     003H            ;CPU_CLK/128
  00CF                27     SPDAT   DATA    0CFH            ;SPI data register
  0093                28     SPISS   BIT     P1.3            ;SPI slave select, connect to other MCU's SS(P1.4) pin
                      29     
                      30     ;//////////////////////////////////////////////////////////
                      31     
0000                  32             ORG     0000H
0000 020100           33             LJMP    RESET
0100                  34             ORG     0100H
0100                  35     RESET:
0100 120127           36             LCALL   INIT_UART               ;initial UART
0103 120139           37             LCALL   INIT_SPI                ;initial SPI
0106                  38     MAIN:
0106 20980D           39             JB      RI,MASTER_MODE
0109                  40     SLAVE_MODE:
0109 E5CD             41             MOV     A,SPSTAT
010B 30E7F8           42             JNB     ACC.7,MAIN
010E 75CDC0           43             MOV     SPSTAT,#SPIF | WCOL ;clear SPI status
0111 85CFCF           44             MOV     SPDAT,SPDAT             ;return received SPI data
0114 80F0             45             SJMP    MAIN
0116                  46     MASTER_MODE:
0116 75CE50           47             MOV     SPCTL,#SPEN | MSTR; ;set as master
0119 12014B           48             LCALL   RECV_UART               ;receive UART data from PC
011C 120154           49             LCALL   SPI_SWAP        ;send it to slave, in the meantime, receive SPI data from s
                             lave
011F 120143           50             LCALL   SEND_UART       ;send SPI data to PC
0122 75CE40           51             MOV     SPCTL,#SPEN;    ;reset as slave
0125 80DF             52             SJMP    MAIN
                      53     
                      54     ;//////////////////////////////////////////////////////////
                      55     
0127                  56     INIT_UART:
0127 75985A           57             MOV     SCON,#5AH               ;set UART mode as 8-bit variable baudrate
A51 MACRO ASSEMBLER  SPIDEMO                                                              08/04/2010 09:13:23 PAGE     2

012A 758920           58             MOV     TMOD,#20H               ;timer1 as 8-bit auto reload mode
012D 758E40           59             MOV     AUXR,#40H               ;timer1 work at 1T mode
0130 758BFB           60             MOV     TL1,#0FBH       ;115200 bps(256 - 18432000 / 32 / 115200)
0133 758DFB           61             MOV     TH1,#0FBH
0136 D28E             62             SETB    TR1
0138 22               63             RET
                      64     
                      65     ;//////////////////////////////////////////////////////////
                      66     
0139                  67     INIT_SPI:
0139 75CF00           68             MOV     SPDAT,#0                ;initial SPI data
013C 75CDC0           69             MOV     SPSTAT,#SPIF | WCOL ;clear SPI status
013F 75CE40           70             MOV     SPCTL,#SPEN             ;slave mode
0142 22               71             RET
                      72     
                      73     ;//////////////////////////////////////////////////////////
                      74     
0143                  75     SEND_UART:
0143 3099FD           76             JNB     TI,$                    ;wait pre-data sent
0146 C299             77             CLR     TI                              ;clear TI flag
0148 F599             78             MOV     SBUF,A                  ;send current data
014A 22               79             RET
                      80     
                      81     ;//////////////////////////////////////////////////////////
                      82     
014B                  83     RECV_UART:
014B 3098FD           84             JNB     RI,$                    ;wait receive complete
014E C298             85             CLR     RI                              ;clear RI flag
0150 E599             86             MOV     A,SBUF                  ;return receive data
0152 22               87             RET
0153 22               88             RET
                      89     
                      90     ;//////////////////////////////////////////////////////////
                      91     
0154                  92     SPI_SWAP:
0154 C293             93             CLR     SPISS                   ;pull low slave SS
0156 F5CF             94             MOV     SPDAT,A                 ;trigger SPI send
0158                  95     WAIT:
0158 E5CD             96             MOV     A,SPSTAT
015A 30E7FB           97             JNB     ACC.7,WAIT              ;wait send complete
015D 75CDC0           98             MOV     SPSTAT,#SPIF | WCOL ;clear SPI status
0160 D293             99             SETB    SPISS                   ;push high slave SS
0162 E5CF            100             MOV     A,SPDAT                 ;return received SPI data
0164 22              101             RET
                     102     
                     103     ;//////////////////////////////////////////////////////////
                     104     
                     105             END
A51 MACRO ASSEMBLER  SPIDEMO                                                              08/04/2010 09:13:23 PAGE     3

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
AUXR . . . . . . .  D ADDR   008EH   A   
CPHA . . . . . . .  N NUMB   0004H   A   
CPOL . . . . . . .  N NUMB   0008H   A   
DORD . . . . . . .  N NUMB   0020H   A   
INIT_SPI . . . . .  C ADDR   0139H   A   
INIT_UART. . . . .  C ADDR   0127H   A   
MAIN . . . . . . .  C ADDR   0106H   A   
MASTER_MODE. . . .  C ADDR   0116H   A   
MSTR . . . . . . .  N NUMB   0010H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
RECV_UART. . . . .  C ADDR   014BH   A   
RESET. . . . . . .  C ADDR   0100H   A   
RI . . . . . . . .  B ADDR   0098H.0 A   
SBUF . . . . . . .  D ADDR   0099H   A   
SCON . . . . . . .  D ADDR   0098H   A   
SEND_UART. . . . .  C ADDR   0143H   A   
SLAVE_MODE . . . .  C ADDR   0109H   A   
SPCTL. . . . . . .  D ADDR   00CEH   A   
SPDAT. . . . . . .  D ADDR   00CFH   A   
SPDH . . . . . . .  N NUMB   0001H   A   
SPDHH. . . . . . .  N NUMB   0000H   A   
SPDL . . . . . . .  N NUMB   0002H   A   
SPDLL. . . . . . .  N NUMB   0003H   A   
SPEN . . . . . . .  N NUMB   0040H   A   
SPIF . . . . . . .  N NUMB   0080H   A   
SPISS. . . . . . .  B ADDR   0090H.3 A   
SPI_SWAP . . . . .  C ADDR   0154H   A   
SPSTAT . . . . . .  D ADDR   00CDH   A   
SSIG . . . . . . .  N NUMB   0080H   A   
TH1. . . . . . . .  D ADDR   008DH   A   
TI . . . . . . . .  B ADDR   0098H.1 A   
TL1. . . . . . . .  D ADDR   008BH   A   
TMOD . . . . . . .  D ADDR   0089H   A   
TR1. . . . . . . .  B ADDR   0088H.6 A   
WAIT . . . . . . .  C ADDR   0158H   A   
WCOL . . . . . . .  N NUMB   0040H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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