wl007.lst

来自「单片机开发资料 基于51单片机的单片机开发板 包括《实验例程」· LST 代码 · 共 407 行 · 第 1/2 页

LST
407
字号

0089 00              191             NOP     
008A A291            192             MOV     C,SDA                   ; 保存应答位到C
008C C290            193             CLR     SCL
008E 22              194             RET     
                     195     ; END OF SHOUT
                     196     
                     197     ;===============================================================================
----                 198             RSEG  CODE_SEG  
008F                 199     WRITE_BYTE:
                     200     ; 在指定地址写入数据
                     201     ; 传入参数: R7 --- 写入数据的地址
                     202     ; 传入参数: R5 --- 要写入的数据
                     203     ; 返回值:无
                     204     
                     205             USING   0
                     206     
008F AC07            207             MOV     R4,AR7
0091 120000   F      208             LCALL   START
                     209             
0094 7FA0            210             MOV     R7,#OP_WRITE            ; 写入器件地址和写命令
0096 120000   F      211             LCALL   SHOUT
                     212             
0099 AF04            213             MOV     R7,AR4                  ; 地址
009B 120000   F      214             LCALL   SHOUT
                     215             
009E AF05            216             MOV     R7,AR5                  ; 数据
00A0 120000   F      217             LCALL   SHOUT
                     218             
00A3 120000   F      219             LCALL   STOP
                     220     
00A6 7F0A            221             MOV     R7,#10                  ; 写入周期, 延时10ms
00A8 020000   F      222             LJMP    DELAYMS
                     223             
                     224     ; END OF WRITE_BYTE
                     225     
                     226     ;===============================================================================
----                 227             RSEG  CODE_SEG
00AB                 228     FILL_BYTE:
                     229     ; 填充数据到EEPROM内
                     230     ; 传入参数: R7 --- 要填充的数据
                     231     ; 返回值:无
                     232     
                     233             USING   0
                     234             
00AB 8F00     F      235             MOV     TMP3,R7
                     236     
00AD E4              237             CLR     A
00AE F500     F      238             MOV     TMP2,A
00B0                 239     FILL_LP:
00B0 AD00     F      240             MOV     R5,TMP3
00B2 AF00     F      241             MOV     R7,TMP2
00B4 120000   F      242             LCALL   WRITE_BYTE
                     243     
00B7 0500     F      244             INC     TMP2
00B9 E500     F      245             MOV     A,TMP2
00BB C3              246             CLR     C
00BC 947F            247             SUBB    A,#07FH
00BE 40F0            248             JC      FILL_LP
                     249             
                     250     ; END OF FILL_BYTE
                     251     
                     252     ;===============================================================================
----                 253             RSEG  CODE_SEG
00C0                 254     READ_CURRENT:
                     255     ; 在当前地址读取
                     256     ; 传入参数:无 
A51 MACRO ASSEMBLER  WL007                                                                11/03/2004 11:06:31 PAGE     5

                     257     ; 返回值:R7 --- 读出的数据
                     258     
                     259             USING   0
00C0 120000   F      260             LCALL   START
                     261     
00C3 7FA1            262             MOV     R7,#OP_READ             ; 写入器件地址和读取命令
00C5 120000   F      263             LCALL   SHOUT
                     264             
00C8 120000   F      265             LCALL   SHIN                    ; 读取数据,保存在R7
                     266     
00CB 120000   F      267             LCALL   STOP
                     268     
00CE 22              269             RET     
                     270     ; END OF read_current
                     271     
                     272     ;===============================================================================
----                 273             RSEG  CODE_SEG
00CF                 274     READ_RANDOM:
                     275     ; 在指定地址读取
                     276     ; 传入参数:R7 --- 地址 
                     277     ; 返回值:R7 --- 读出的数据
                     278             
                     279             USING   0
00CF AD07            280             MOV     R5,AR7                  ; 暂存地址
                     281     
00D1 120000   F      282             LCALL   START
                     283     
00D4 7FA0            284             MOV     R7,#OP_WRITE            ; 写入器件地址和写入命令
00D6 120000   F      285             LCALL   SHOUT
                     286     
00D9 AF05            287             MOV     R7,AR5                  ; 写入地址
00DB 120000   F      288             LCALL   SHOUT
                     289     
00DE 120000   F      290             LCALL   READ_CURRENT            ; 在当前地址读取
                     291     
00E1 22              292             RET     
                     293     ; END OF READ_RANDOM
                     294     
                     295     ;===============================================================================
                     296     
----                 297             RSEG  CODE_SEG
00E2                 298     DELAYMS:
                     299     ; 延时子程序
                     300     ; 传入参数:R7 --- 延时值(MS) 
                     301     ; 返回值:无
                     302     
00E2 EF              303             MOV     A,R7
00E3 6009            304             JZ      END_DLYMS       
00E5                 305     DLY_LP1:
00E5 7EB9            306             MOV     R6,#185
00E7                 307     DLY_LP2:
00E7 00              308             NOP
00E8 00              309             NOP
00E9 00              310             NOP
00EA DEFB            311             DJNZ    R6,DLY_LP2
00EC DFF7            312             DJNZ    R7,DLY_LP1
                     313     
00EE                 314     END_DLYMS:
00EE 22              315             RET 
                     316             
                     317     ; END OF DELAYMS
                     318     
                     319     ;===============================================================================
----                 320             RSEG  CODE_SEG
00EF                 321     DIS_CODE:
                     322     ; 写入到AT24C01的数据串
A51 MACRO ASSEMBLER  WL007                                                                11/03/2004 11:06:31 PAGE     6

                     323     
00EF 7E              324             DB      07EH
00F0 BD              325             DB      0BDH
00F1 DB              326             DB      0DBH
00F2 E7              327             DB      0E7H
00F3 DB              328             DB      0DBH
00F4 BD              329             DB      0BDH
00F5 7E              330             DB      07EH
00F6 FF              331             DB      0FFH
                     332     
                     333     
                     334             END
A51 MACRO ASSEMBLER  WL007                                                                11/03/2004 11:06:31 PAGE     7

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


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

ACC. . . . . . . .  D ADDR   00E0H   A   
ADDR . . . . . . .  D ADDR   0000H   R   SEG=DATA_SEG
AR4. . . . . . . .  D ADDR   0004H   A   
AR5. . . . . . . .  D ADDR   0005H   A   
AR7. . . . . . . .  D ADDR   0007H   A   
CODE_SEG . . . . .  C SEG    00F7H       REL=UNIT
DATA_SEG . . . . .  D SEG    0003H       REL=UNIT
DELAYMS. . . . . .  C ADDR   00E2H   R   SEG=CODE_SEG
DIS_CODE . . . . .  C ADDR   00EFH   R   SEG=CODE_SEG
DLY_LP1. . . . . .  C ADDR   00E5H   R   SEG=CODE_SEG
DLY_LP2. . . . . .  C ADDR   00E7H   R   SEG=CODE_SEG
END_DLYMS. . . . .  C ADDR   00EEH   R   SEG=CODE_SEG
FILL_BYTE. . . . .  C ADDR   00ABH   R   SEG=CODE_SEG
FILL_LP. . . . . .  C ADDR   00B0H   R   SEG=CODE_SEG
MAIN . . . . . . .  C ADDR   0000H   R   SEG=CODE_SEG
MAIN_LP1 . . . . .  C ADDR   000FH   R   SEG=CODE_SEG
MAIN_LP2 . . . . .  C ADDR   0027H   R   SEG=CODE_SEG
MAX_ADDR . . . . .  N NUMB   007FH   A   
OP_READ. . . . . .  N NUMB   00A1H   A   
OP_WRITE . . . . .  N NUMB   00A0H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
READ_CURRENT . . .  C ADDR   00C0H   R   SEG=CODE_SEG
READ_RANDOM. . . .  C ADDR   00CFH   R   SEG=CODE_SEG
SCL. . . . . . . .  B ADDR   0090H.0 A   
SDA. . . . . . . .  B ADDR   0090H.1 A   
SHIN . . . . . . .  C ADDR   0056H   R   SEG=CODE_SEG
SHIN_LP. . . . . .  C ADDR   0058H   R   SEG=CODE_SEG
SHOUT. . . . . . .  C ADDR   006BH   R   SEG=CODE_SEG
SHOUT_LP . . . . .  C ADDR   006DH   R   SEG=CODE_SEG
SP . . . . . . . .  D ADDR   0081H   A   
STACK. . . . . . .  I ADDR   0000H   R   SEG=STACK_SEG
STACK_SEG. . . . .  I SEG    0014H       REL=UNIT
START. . . . . . .  C ADDR   003AH   R   SEG=CODE_SEG
STOP . . . . . . .  C ADDR   0049H   R   SEG=CODE_SEG
TMP2 . . . . . . .  D ADDR   0001H   R   SEG=DATA_SEG
TMP3 . . . . . . .  D ADDR   0002H   R   SEG=DATA_SEG
WL007. . . . . . .  N NUMB   -----       
WRITE_BYTE . . . .  C ADDR   008FH   R   SEG=CODE_SEG


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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