📄 wl007.lst
字号:
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 + -