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 + -
显示快捷键?