wl006.lst
来自「单片机开发资料 基于51单片机的单片机开发板 包括《实验例程」· LST 代码 · 共 414 行 · 第 1/2 页
LST
414 行
0085 22 193 RET
194 ; END OF ERASE
195
196 ;===============================================================================
---- 197 RSEG CODE_SEG
0086 198 INOP:
199 ; 写入操作码
200 ; 传入参数:R7高两位 --- 指令码的高两位
201 ; 传入参数:R5低七位 --- 指令码的低7位或地址
202 ; 返回值:无
203
204 USING 0
205
0086 C290 206 CLR SK ; 开始位
0088 D292 207 SETB DI
008A D294 208 SETB CS
008C 00 209 NOP
008D 00 210 NOP
008E D290 211 SETB SK
0090 00 212 NOP
0091 00 213 NOP
0092 C290 214 CLR SK ; 开始位结束
215
0094 EF 216 MOV A,R7 ; 先移入指令码高位
0095 33 217 RLC A
0096 9292 218 MOV DI,C
0098 D290 219 SETB SK
009A 33 220 RLC A
009B C290 221 CLR SK
009D 9292 222 MOV DI,C ; 移入指令码次高位
009F D290 223 SETB SK
00A1 00 224 NOP
00A2 00 225 NOP
00A3 C290 226 CLR SK
227
228
00A5 ED 229 MOV A,R5 ; 移入余下的指令码或地址数据
00A6 33 230 RLC A
00A7 FD 231 MOV R5,A ; R5左移一位
232
00A8 E4 233 CLR A
00A9 FF 234 MOV R7,A
00AA 235 INOP_LP:
00AA ED 236 MOV A,R5 ; 移入R5的高7位
00AB 33 237 RLC A
00AC 9292 238 MOV DI,C
00AE D290 239 SETB SK
00B0 ED 240 MOV A,R5
00B1 33 241 RLC A
00B2 FD 242 MOV R5,A
00B3 C290 243 CLR SK
244
00B5 0F 245 INC R7
00B6 BF07F1 246 CJNE R7,#07H,INOP_LP ; 判断是否7位全移完
247
00B9 D292 248 SETB DI
249
00BB 22 250 RET
251 ; END OF INOP
252
253 ;===============================================================================
---- 254 RSEG CODE_SEG
00BC 255 SHIN:
256 ; 从MCU移出数据到AT93C46
A51 MACRO ASSEMBLER WL006 11/03/2004 11:05:11 PAGE 5
257 ; 传入参数:R7 --- 要移入的数据
258 ; 返回值:无
259
260 USING 0
261
00BC E4 262 CLR A
00BD FE 263 MOV R6,A
00BE EE 264 MOV A,R6
00BF EF 265 MOV A,R7
00C0 266 SHIN_LP:
00C0 33 267 RLC A
00C1 9292 268 MOV DI,C
00C3 D290 269 SETB SK
00C5 00 270 NOP
00C6 00 271 NOP
00C7 C290 272 CLR SK
273
00C9 0E 274 INC R6
00CA BE08F3 275 CJNE R6,#08H,SHIN_LP ; 共8位,判断是否完成
276
00CD D292 277 SETB DI
00CF 22 278 RET
279 ; END OF SHIN
280
281 ;===============================================================================
282
---- 283 RSEG CODE_SEG
00D0 284 SHOUT:
285 ; 从AT93C46移出数据MCU
286 ; 传入参数:无
287 ; 返回值:R7 --- 读出的数据
288
289 USING 0
290
00D0 E4 291 CLR A
00D1 FE 292 MOV R6,A
00D2 293 SHOUT_LP:
00D2 D290 294 SETB SK
00D4 00 295 NOP
00D5 00 296 NOP
00D6 C290 297 CLR SK
00D8 A293 298 MOV C,DO
00DA 33 299 RLC A
00DB 0E 300 INC R6
00DC BE08F3 301 CJNE R6,#08H,SHOUT_LP ; 共8位,判断是否完成
00DF F507 302 MOV AR7,A
303
00E1 22 304 RET
305 ; END OF SHOUT
306
307 ;===============================================================================
---- 308 RSEG CODE_SEG
00E2 309 DELAYMS:
310 ; 延时子程序
311 ; 传入参数:R7 --- 延时值(MS)
312 ; 返回值:无
313
00E2 EF 314 MOV A,R7
00E3 6009 315 JZ END_DLYMS
00E5 316 DLY_LP1:
00E5 7EB9 317 MOV R6,#185
00E7 318 DLY_LP2:
00E7 00 319 NOP
00E8 00 320 NOP
00E9 00 321 NOP
00EA DEFB 322 DJNZ R6,DLY_LP2
A51 MACRO ASSEMBLER WL006 11/03/2004 11:05:11 PAGE 6
00EC DFF7 323 DJNZ R7,DLY_LP1
324
00EE 325 END_DLYMS:
00EE 22 326 RET
327 ; END OF DELAYMS
328
329 ;===============================================================================
330
---- 331 RSEG CODE_SEG
00EF 332 DIS_CODE:
333 ; 写入到AT93C46的数据串
334
00EF 7E 335 DB 07EH
00F0 BD 336 DB 0BDH
00F1 DB 337 DB 0DBH
00F2 E7 338 DB 0E7H
00F3 DB 339 DB 0DBH
00F4 BD 340 DB 0BDH
00F5 7E 341 DB 07EH
00F6 FF 342 DB 0FFH
343
344 END
A51 MACRO ASSEMBLER WL006 11/03/2004 11:05:11 PAGE 7
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ADDR . . . . . . . D ADDR 0001H R SEG=DATA_SEG
AR7. . . . . . . . D ADDR 0007H A
CODE_SEG . . . . . C SEG 00F7H REL=UNIT
CS . . . . . . . . B ADDR 0090H.4 A
DATA_SEG . . . . . D SEG 0002H REL=UNIT
DELAYMS. . . . . . C ADDR 00E2H R SEG=CODE_SEG
DI . . . . . . . . B ADDR 0090H.2 A
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
DO . . . . . . . . B ADDR 0090H.3 A
END_DLYMS. . . . . C ADDR 00EEH R SEG=CODE_SEG
ERASE. . . . . . . C ADDR 0077H R SEG=CODE_SEG
EWDS . . . . . . . C ADDR 006EH R SEG=CODE_SEG
EWEN . . . . . . . C ADDR 0064H R SEG=CODE_SEG
INDATA . . . . . . D ADDR 0000H R SEG=DATA_SEG
INOP . . . . . . . C ADDR 0086H R SEG=CODE_SEG
INOP_LP. . . . . . C ADDR 00AAH R SEG=CODE_SEG
MAIN . . . . . . . C ADDR 0000H R SEG=CODE_SEG
MAIN_LP. . . . . . C ADDR 002FH R SEG=CODE_SEG
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
READ . . . . . . . C ADDR 0057H R SEG=CODE_SEG
SHIN . . . . . . . C ADDR 00BCH R SEG=CODE_SEG
SHIN_LP. . . . . . C ADDR 00C0H R SEG=CODE_SEG
SHOUT. . . . . . . C ADDR 00D0H R SEG=CODE_SEG
SHOUT_LP . . . . . C ADDR 00D2H R SEG=CODE_SEG
SK . . . . . . . . B ADDR 0090H.0 A
SP . . . . . . . . D ADDR 0081H A
STACK. . . . . . . I ADDR 0000H R SEG=STACK_SEG
STACK_SEG. . . . . I SEG 0014H REL=UNIT
WL006. . . . . . . N NUMB -----
WRITE. . . . . . . C ADDR 0042H R SEG=CODE_SEG
WRITE_LP . . . . . C ADDR 0014H R SEG=CODE_SEG
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?