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

📄 wl007.lst

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

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

                     323             
                     324     ; END OF DELAYMS
                     325     
                     326     ;===============================================================================
----                 327             RSEG  CODE_SEG
00EF                 328     DIS_CODE:
                     329     ; 写入到AT24C02的数据串
                     330     
00EF 7E              331             DB      07EH
00F0 BD              332             DB      0BDH
00F1 DB              333             DB      0DBH
00F2 E7              334             DB      0E7H
00F3 DB              335             DB      0DBH
00F4 BD              336             DB      0BDH
00F5 7E              337             DB      07EH
00F6 FF              338             DB      0FFH
                     339     
                     340     
                     341             END
A51 MACRO ASSEMBLER  WL007                                                                08/19/2005 20:30:40 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   
P3 . . . . . . . .  D ADDR   00B0H   A   
READ_CURRENT . . .  C ADDR   00C0H   R   SEG=CODE_SEG
READ_RANDOM. . . .  C ADDR   00CFH   R   SEG=CODE_SEG
SCL. . . . . . . .  B ADDR   00B0H.3 A   
SDA. . . . . . . .  B ADDR   0090H.3 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -