📄 spidemo.lst
字号:
A51 MACRO ASSEMBLER SPIDEMO 08/04/2010 09:11:50 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(1 master and 1 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
12
13
008E 14 AUXR DATA 08EH ;Auxiliary register
00CD 15 SPSTAT DATA 0CDH ;SPI status register
0080 16 SPIF EQU 080H ;SPSTAT.7
0040 17 WCOL EQU 040H ;SPSTAT.6
00CE 18 SPCTL DATA 0CEH ;SPI control register
0080 19 SSIG EQU 080H ;SPCTL.7
0040 20 SPEN EQU 040H ;SPCTL.6
0020 21 DORD EQU 020H ;SPCTL.5
0010 22 MSTR EQU 010H ;SPCTL.4
0008 23 CPOL EQU 008H ;SPCTL.3
0004 24 CPHA EQU 004H ;SPCTL.2
0000 25 SPDHH EQU 000H ;CPU_CLK/4
0001 26 SPDH EQU 001H ;CPU_CLK/16
0002 27 SPDL EQU 002H ;CPU_CLK/64
0003 28 SPDLL EQU 003H ;CPU_CLK/128
00CF 29 SPDAT DATA 0CFH ;SPI data register
0093 30 SPISS BIT P1.3 ;SPI slave select, connect to slave' SS(P1.4) pin
31
32 ;//////////////////////////////////////////////////////////
33
0000 34 ORG 0000H
0000 020100 35 LJMP RESET
0100 36 ORG 0100H
0100 37 RESET:
0100 12010B 38 LCALL INIT_UART ;initial UART
0103 12011D 39 LCALL INIT_SPI ;initial SPI
0106 40 MAIN:
0106 120138 46 LCALL SPI_SWAP ; send previous SPI data to master)
47
0109 80FB 48 SJMP MAIN
49
50 ;//////////////////////////////////////////////////////////
51
010B 52 INIT_UART:
010B 75985A 53 MOV SCON,#5AH ;set UART mode as 8-bit variable baudrate
010E 758920 54 MOV TMOD,#20H ;timer1 as 8-bit auto reload mode
0111 758E40 55 MOV AUXR,#40H ;timer1 work at 1T mode
0114 758BFB 56 MOV TL1,#0FBH ;115200 bps(256 - 18432000 / 32 / 115200)
0117 758DFB 57 MOV TH1,#0FBH
011A D28E 58 SETB TR1
A51 MACRO ASSEMBLER SPIDEMO 08/04/2010 09:11:50 PAGE 2
011C 22 59 RET
60
61 ;//////////////////////////////////////////////////////////
62
011D 63 INIT_SPI:
011D 75CF00 64 MOV SPDAT,#0 ;initial SPI data
0120 75CDC0 65 MOV SPSTAT,#SPIF | WCOL ;clear SPI status
66
0123 75CE40 69 MOV SPCTL,#SPEN ;slave mode
70
0126 22 71 RET
72
73 ;//////////////////////////////////////////////////////////
74
0127 75 SEND_UART:
0127 3099FD 76 JNB TI,$ ;wait pre-data sent
012A C299 77 CLR TI ;clear TI flag
012C F599 78 MOV SBUF,A ;send current data
012E 22 79 RET
80
81 ;//////////////////////////////////////////////////////////
82
012F 83 RECV_UART:
012F 3098FD 84 JNB RI,$ ;wait receive complete
0132 C298 85 CLR RI ;clear RI flag
0134 E599 86 MOV A,SBUF ;return receive data
0136 22 87 RET
0137 22 88 RET
89
90 ;//////////////////////////////////////////////////////////
91
0138 92 SPI_SWAP:
93
0138 F5CF 96 MOV SPDAT,A ;trigger SPI send
013A 97 WAIT:
013A E5CD 98 MOV A,SPSTAT
013C 30E7FB 99 JNB ACC.7,WAIT ;wait send complete
013F 75CDC0 100 MOV SPSTAT,#SPIF | WCOL ;clear SPI status
101
0142 E5CF 104 MOV A,SPDAT ;return received SPI data
0144 22 105 RET
106
107 ;//////////////////////////////////////////////////////////
108
109 END
A51 MACRO ASSEMBLER SPIDEMO 08/04/2010 09:11:50 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 011DH A
INIT_UART. . . . . C ADDR 010BH A
MAIN . . . . . . . C ADDR 0106H A
MSTR . . . . . . . N NUMB 0010H A
P1 . . . . . . . . D ADDR 0090H A
RECV_UART. . . . . C ADDR 012FH 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 0127H 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 0138H 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 013AH 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 + -