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

📄 at25cxx.lst

📁 AT25F512 Serial EEPROMs with AT89.rar. 通过spi通信
💻 LST
📖 第 1 页 / 共 4 页
字号:
                     583             ; Data (if any) returned in XDATA.
                     584             ; Destroys A.
                     585     
01D0 C292            586                     clr     CS              ; select device
                     587     
01D2 B40506          588                     cjne    a, #RDSR, x1    ; check for read status command
01D5 120235          589                     call    shout           ; send command
01D8 0201E1          590                     jmp     x2
                     591             x1:
01DB B4030A          592                     cjne    a, #READ, x3    ; check for read memory command
01DE 120210          593                     call    send_addr       ; send command/high addr and low addr
                     594             x2:
01E1 120220          595                     call    shin            ; read data from device
01E4 FA              596                     mov     zdata, a        ; save data
01E5 02020D          597                     jmp     x10
                     598             x3:
01E8 B40603          599                     cjne    a, #WREN, x4    ; check for write enable command
01EB 0201F1          600                     jmp     x5
MCS-51 MACRO ASSEMBLER    CONTROL_AT25XXX                                                           02/06/96   PAGE   12


LOC  OBJ            LINE     SOURCE

                     601             x4:
01EE B40406          602                     cjne    a, #WRDI, x6    ; check for write disable command
                     603             x5:
01F1 120235          604                     call    shout           ; send command
01F4 02020A          605                     jmp     x9
                     606             x6:
01F7 B40206          607                     cjne    a, #WRITE, x7   ; check for write memory command
01FA 120210          608                     call    send_addr       ; send command/high addr and low addr
01FD 020206          609                     jmp     x8
                     610             x7:
0200 B4010A          611                     cjne    a, #WRSR, x10   ; check for write status command
0203 120235          612                     call    shout           ; send command
                     613             x8:
0206 EA              614                     mov     a, zdata        ; get data
0207 120235          615                     call    shout           ; send data
                     616             x9:
020A C293            617                     clr     SCK             ; drop clock
020C 00              618                     nop                     ; enforce delay
                     619             x10:
020D D292            620                     setb    CS              ; deselect device
020F 22              621                     ret
                     622     
                     623     
                     624     send_addr:
                     625     
                     626             ; Send command combined with most significant bit of address
                     627             ; followed by least significant byte of address.
                     628             ; Called with command code in A, address in ADDR_HI:ADDR_LO.
                     629             ; Returns nothing. Destroys A.
                     630     
0210 C0E0            631                     push    acc             ; save command
0212 ED              632                     mov     a, addr_hi      ; get high byte of address
0213 13              633                     rrc     a               ; move LSB into carry bit
0214 D0E0            634                     pop     acc             ; restore command
0216 92E3            635                     mov     A8, c           ; combine command and high bit of addr
0218 120235          636                     call    shout           ; send command and high bit of address
021B EC              637                     mov     a, addr_lo      ; get low byte of address
021C 120235          638                     call    shout           ; send low byte of address
021F 22              639                     ret
                     640     
                     641     
                     642     shin:
                     643             ; Shift in a byte from the device, most significant bit first.
                     644             ; Expects device already selected (CS low).
                     645             ; Expects SCK high on entry. Returns with SCK high.
                     646             ; The SO pin is allowed to float before data is read
                     647             ; to support three-wire (SI shorted to SO) mode.
                     648             ; Returns assembled byte in A.
                     649     
0220 D295            650                     setb    SO              ; float pin for three-wire mode
                     651     
0222 C0F0            652                     push    b
0224 75F008          653                     mov     b, #8           ; bit count
                     654             ee12:
0227 C293            655                     clr     SCK             ; drop clock
MCS-51 MACRO ASSEMBLER    CONTROL_AT25XXX                                                           02/06/96   PAGE   13


LOC  OBJ            LINE     SOURCE

0229 00              656                     nop                     ; enforce output delay
022A A295            657                     mov     c, SO           ; input bit
022C 33              658                     rlc     a               ; move bit into byte
022D D293            659                     setb    SCK             ; raise clock
022F D5F0F5          660                     djnz    b, ee12         ; next bit
                     661     
0232 D0F0            662                     pop     b
0234 22              663                     ret
                     664     
                     665     
                     666     shout:
                     667             ; Shift out a byte to the device, most significant bit first.
                     668             ; Expects device already selected (CS low).
                     669             ; Returns with SCK high.
                     670             ; Called with data to send in A.
                     671             ; Returns nothing. All registers preserved.
                     672     
0235 C0F0            673                     push    b
0237 75F008          674                     mov     b, #8           ; bit count
                     675     
023A 33              676                     rlc     a               ; move bit into CY
                     677             ee13:
023B C293            678                     clr     SCK             ; drop clock
023D 9294            679                     mov     SI, c           ; output bit
023F 33              680                     rlc     a               ; move bit into CY
0240 D293            681                     setb    SCK             ; raise clock
0242 D5F0F6          682                     djnz    b, ee13         ; next bit
                     683     
0245 D0F0            684                     pop     b
0247 22              685                     ret
                     686     
                     687     
                     688                     END
MCS-51 MACRO ASSEMBLER    CONTROL_AT25XXX                                                           02/06/96   PAGE   14


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


N A M E           T Y P E   V A L U E       A T T R I B U T E S

A8 . . . . . . .  B ADDR    00E0H.3 A       
ACC. . . . . . .  D ADDR    00E0H   A       
ADDR_HI. . . . .    REG     R5              
ADDR_LO. . . . .    REG     R4              
B. . . . . . . .  D ADDR    00F0H   A       
BP0. . . . . . .  B ADDR    00E0H.2 A       
BP1. . . . . . .  B ADDR    00E0H.3 A       
BUFFER . . . . .  D ADDR    0020H   A       
BYTE_FILL. . . .  C ADDR    008BH   A       
COMMANDER. . . .  C ADDR    01D0H   A       
CONTROL_AT25XXX.    ----    ----            
CS . . . . . . .  B ADDR    0090H.2 A       
DISABLE_WRITE. .  C ADDR    0141H   A       
DPH. . . . . . .  D ADDR    0083H   A       
DPL. . . . . . .  D ADDR    0082H   A       
EE10 . . . . . .  C ADDR    019BH   A       
EE11 . . . . . .  C ADDR    01C0H   A       
EE12 . . . . . .  C ADDR    0227H   A       
EE13 . . . . . .  C ADDR    023BH   A       
ENABLE_WRITE . .  C ADDR    0134H   A       
FILL . . . . . .    NUMB    0055H   A       
INDEX. . . . . .    REG     R0              
KOUNT. . . . . .    REG     R7              
NPAGES . . . . .    NUMB    0040H   A       
NRDY . . . . . .  B ADDR    00E0H.0 A       
ON_RESET . . . .  C ADDR    0080H   A       
P1 . . . . . . .  D ADDR    0090H   A       
PAGE_FILL. . . .  C ADDR    00BEH   A       
PSIZE. . . . . .    NUMB    0008H   A       
RDSR . . . . . .    NUMB    0005H   A       
READ_BYTE. . . .  C ADDR    014EH   A       
READ_PAGE. . . .  C ADDR    0183H   A       
READ_STATUS. . .  C ADDR    0113H   A       
READ . . . . . .    NUMB    0003H   A       
SCK. . . . . . .  B ADDR    0090H.3 A       
SEND_ADDR. . . .  C ADDR    0210H   A       
SHIN . . . . . .  C ADDR    0220H   A       
SHOUT. . . . . .  C ADDR    0235H   A       
SI . . . . . . .  B ADDR    0090H.4 A       
SIZE . . . . . .    NUMB    0200H   A       
SO . . . . . . .  B ADDR    0090H.5 A       
SP . . . . . . .  D ADDR    0081H   A       
STACK. . . . . .  D ADDR    0030H   A       
VERIFY_BYTE_FILL  C ADDR    00A3H   A       
VERIFY_PAGE_FILL  C ADDR    00E7H   A       
WEN. . . . . . .  B ADDR    00E0H.1 A       
WRDI . . . . . .    NUMB    0004H   A       
WREN . . . . . .    NUMB    0006H   A       
WRITE_BYTE . . .  C ADDR    0165H   A       
WRITE_PAGE . . .  C ADDR    01A8H   A       
WRITE_STATUS . .  C ADDR    0120H   A       
MCS-51 MACRO ASSEMBLER    CONTROL_AT25XXX                                                           02/06/96   PAGE   15


N A M E           T Y P E   V A L U E       A T T R I B U T E S

WRITE. . . . . .    NUMB    0002H   A       
WRSR . . . . . .    NUMB    0001H   A       
X1 . . . . . . .  C ADDR    01DBH   A       
X10. . . . . . .  C ADDR    020DH   A       
X11. . . . . . .  C ADDR    008EH   A       
X2 . . . . . . .  C ADDR    01E1H   A       
X21. . . . . . .  C ADDR    00A3H   A       
X22. . . . . . .  C ADDR    00ACH   A       
X23. . . . . . .  C ADDR    00BCH   A       
X24. . . . . . .  C ADDR    00BDH   A       
X3 . . . . . . .  C ADDR    01E8H   A       
X31. . . . . . .  C ADDR    00C3H   A       
X32. . . . . . .  C ADDR    00CEH   A       
X33. . . . . . .  C ADDR    00E4H   A       
X4 . . . . . . .  C ADDR    01EEH   A       
X41. . . . . . .  C ADDR    00E7H   A       
X42. . . . . . .  C ADDR    00F2H   A       
X43. . . . . . .  C ADDR    00FAH   A       
X44. . . . . . .  C ADDR    010BH   A       
X45. . . . . . .  C ADDR    0111H   A       
X46. . . . . . .  C ADDR    0112H   A       
X5 . . . . . . .  C ADDR    01F1H   A       
X6 . . . . . . .  C ADDR    01F7H   A       
X7 . . . . . . .  C ADDR    0200H   A       
X8 . . . . . . .  C ADDR    0206H   A       
X9 . . . . . . .  C ADDR    020AH   A       
ZDATA. . . . . .    REG     R2              


REGISTER BANK(S) USED: 0

ASSEMBLY COMPLETE, NO ERRORS FOUND

⌨️ 快捷键说明

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