📄 mface_3.lst
字号:
A51 MACRO ASSEMBLER MFACE_3 10/29/2003 16:01:54 PAGE 1
MACRO ASSEMBLER A51 V7.08a
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
00B3 1 SS BIT P3.3
0090 2 SCLK BIT P1.0
0091 3 SDATA BIT P1.1
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 D2B3 20 SETB SS
0009 C291 21 CLR SDATA
000B 7FFF 22 MOV R7,#0FFH
000D 22 23 RET
000E 32 24 CLRINT: RETI
25
000F 26 SPI_INIT:
000F D2B3 27 SETB SS
0011 C291 28 CLR SDATA
0013 C290 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 D291 48 SETB SDATA
0032 C290 49 CLR SCLK
0034 2091FD 50 JB SDATA,$
0037 C2B3 51 CLR SS
0039 3091FD 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 10/29/2003 16:01:54 PAGE 2
0044 33 59 RLC A
0045 9291 60 MOV SDATA,C
0047 00000000 61 DB 0,0,0,0
004B D290 62 SETB SCLK
004D 00000000 63 DB 0,0,0,0,0,0,0
0051 000000
0054 C290 64 CLR SCLK
0056 DBEC 65 DJNZ R3,SENDBIT
0058 DAE2 66 DJNZ R2,SENDBYTE
005A D2B3 67 SETB SS
005C C291 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 C290 78 CLR SCLK
006A D291 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 D290 85 RCVBIT: SETB SCLK
007E 0000 86 DB 0,0
0080 A291 87 MOV C,SDATA
0082 33 88 RLC A
0083 0000 89 DB 0,0
0085 C290 90 CLR SCLK
0087 0000 91 DB 0,0
0089 DBF1 92 DJNZ R3,RCVBIT
008B F6 93 MOV @R0,A
008C 30B3E9 94 JNB SS,RCVBYTE
008F C291 95 CLR SDATA
0091 7F00 96 MOV R7,#0
0093 22 97 RET
98 END
A51 MACRO ASSEMBLER MFACE_3 10/29/2003 16:01:54 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.0 A
SDATA. . . . . . . B ADDR 0090H.1 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.3 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 + -