📄 mface_3.lst
字号:
A51 MACRO ASSEMBLER MFACE_3 08/18/2006 08:26:15 PAGE 1
MACRO ASSEMBLER A51 V7.09
OBJECT MODULE PLACED IN mface_3.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE mface_3.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
00B2 1 SS BIT P3.2
0096 2 SCLK BIT P1.6
0095 3 SDATA BIT P1.5
4
5 PUBLIC _SPI_SEND,_SPI_RCV,SPI_INIT
6
7 SPI_DT SEGMENT DATA
8 SPI_PR SEGMENT CODE
9
---- 10 RSEG SPI_DT
0000 11 STACKSAVE: DS 1
12
---- 13 CSEG AT 000BH
000B 020000 F 14 LJMP SPI_WDG
15
---- 16 RSEG SPI_PR
0000 C28C 17 SPI_WDG:CLR TR0
0002 1100 F 18 ACALL CLRINT
0004 850081 F 19 MOV SP,STACKSAVE
0007 D2B2 20 SETB SS
0009 C295 21 CLR SDATA
000B 7FFF 22 MOV R7,#0FFH
000D 22 23 RET
000E 32 24 CLRINT: RETI
25
000F 26 SPI_INIT:
000F D2B2 27 SETB SS
0011 C295 28 CLR SDATA
0013 C296 29 CLR SCLK
0015 5389F0 30 ANL TMOD,#0F0H
0018 438901 31 ORL TMOD,#01H
001B D2B9 32 SETB PT0 ;T0's IP>X1's IP
001D D288 33 SETB IT0 ;INT0 is falling edg trig
001F D2A9 34 SETB ET0
0021 22 35 RET
36
37 ;Send data.R0=First address of Send_Buffer,R2=Lenght
0022 38 _SPI_SEND:
0022 858100 F 39 MOV STACKSAVE,SP
0025 D2A9 40 SETB ET0
0027 D28C 41 SETB TR0
0029 C2A8 42 CLR EX0
002B EF 43 MOV A,R7
002C F8 44 MOV R0,A
002D ED 45 MOV A,R5
002E FA 46 MOV R2,A
002F 18 47 DEC R0
0030 D295 48 SETB SDATA
0032 C296 49 CLR SCLK
0034 2095FD 50 JB SDATA,$
0037 C2B2 51 CLR SS
0039 3095FD 52 JNB SDATA,$
003C 53 SENDBYTE:
003C 08 54 INC R0
003D E6 55 MOV A,@R0
003E 7B08 56 MOV R3,#8
0040 00000000 57 DB 0,0,0,0
0044 58 SENDBIT:
A51 MACRO ASSEMBLER MFACE_3 08/18/2006 08:26:15 PAGE 2
0044 33 59 RLC A
0045 9295 60 MOV SDATA,C
0047 00000000 61 DB 0,0,0,0
004B D296 62 SETB SCLK
004D 00000000 63 DB 0,0,0,0,0,0,0
0051 000000
0054 C296 64 CLR SCLK
0056 DBEC 65 DJNZ R3,SENDBIT
0058 DAE2 66 DJNZ R2,SENDBYTE
005A D2B2 67 SETB SS
005C C295 68 CLR SDATA
005E C28C 69 CLR TR0
0060 7F00 70 MOV R7,#0
0062 22 71 RET
72
0063 73 _SPI_RCV:
0063 EF 74 MOV A,R7
0064 F8 75 MOV R0,A
0065 7AFF 76 MOV R2,#0FFH
0067 18 77 DEC R0
0068 C296 78 CLR SCLK
006A D295 79 SETB SDATA
006C 00000000 80 DB 0,0,0,0,0,0
0070 0000
0072 00000000 81 DB 0,0,0,0,0,0
0076 0000
0078 7B08 82 RCVBYTE:MOV R3,#8
007A 08 83 INC R0
007B 0A 84 INC R2
007C D296 85 RCVBIT: SETB SCLK
007E 0000 86 DB 0,0
0080 A295 87 MOV C,SDATA
0082 33 88 RLC A
0083 0000 89 DB 0,0
0085 C296 90 CLR SCLK
0087 0000 91 DB 0,0
0089 DBF1 92 DJNZ R3,RCVBIT
008B F6 93 MOV @R0,A
008C 30B2E9 94 JNB SS,RCVBYTE
008F C295 95 CLR SDATA
0091 7F00 96 MOV R7,#0
0093 22 97 RET
98 END
A51 MACRO ASSEMBLER MFACE_3 08/18/2006 08:26:15 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
CLRINT . . . . . . C ADDR 000EH R SEG=SPI_PR
ET0. . . . . . . . B ADDR 00A8H.1 A
EX0. . . . . . . . B ADDR 00A8H.0 A
IT0. . . . . . . . B ADDR 0088H.0 A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
PT0. . . . . . . . B ADDR 00B8H.1 A
RCVBIT . . . . . . C ADDR 007CH R SEG=SPI_PR
RCVBYTE. . . . . . C ADDR 0078H R SEG=SPI_PR
SCLK . . . . . . . B ADDR 0090H.6 A
SDATA. . . . . . . B ADDR 0090H.5 A
SENDBIT. . . . . . C ADDR 0044H R SEG=SPI_PR
SENDBYTE . . . . . C ADDR 003CH R SEG=SPI_PR
SP . . . . . . . . D ADDR 0081H A
SPI_DT . . . . . . D SEG 0001H REL=UNIT
SPI_INIT . . . . . C ADDR 000FH R SEG=SPI_PR
SPI_PR . . . . . . C SEG 0094H REL=UNIT
SPI_WDG. . . . . . C ADDR 0000H R SEG=SPI_PR
SS . . . . . . . . B ADDR 00B0H.2 A
STACKSAVE. . . . . D ADDR 0000H R SEG=SPI_DT
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
_SPI_RCV . . . . . C ADDR 0063H R SEG=SPI_PR
_SPI_SEND. . . . . C ADDR 0022H R SEG=SPI_PR
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -