📄 wl006.lst
字号:
195
0085 22 196 RET
197 ; END OF ERASE
198
199 ;===============================================================================
---- 200 RSEG CODE_SEG
0086 201 INOP:
202 ; 写入操作码
203 ; 传入参数:R7高两位 --- 指令码的高两位
204 ; 传入参数:R5低七位 --- 指令码的低7位或地址
205 ; 返回值:无
206
207 USING 0
208
0086 C290 209 CLR SK ; 开始位
0088 D292 210 SETB DI
008A D294 211 SETB CS
008C 00 212 NOP
008D 00 213 NOP
008E D290 214 SETB SK
0090 00 215 NOP
0091 00 216 NOP
0092 C290 217 CLR SK ; 开始位结束
218
0094 EF 219 MOV A,R7 ; 先移入指令码高位
0095 33 220 RLC A
0096 9292 221 MOV DI,C
0098 D290 222 SETB SK
009A 33 223 RLC A
009B C290 224 CLR SK
009D 9292 225 MOV DI,C ; 移入指令码次高位
009F D290 226 SETB SK
00A1 00 227 NOP
00A2 00 228 NOP
00A3 C290 229 CLR SK
230
231
00A5 ED 232 MOV A,R5 ; 移入余下的指令码或地址数据
00A6 33 233 RLC A
00A7 FD 234 MOV R5,A ; R5左移一位
235
00A8 E4 236 CLR A
00A9 FF 237 MOV R7,A
00AA 238 INOP_LP:
00AA ED 239 MOV A,R5 ; 移入R5的高7位
00AB 33 240 RLC A
00AC 9292 241 MOV DI,C
00AE D290 242 SETB SK
00B0 ED 243 MOV A,R5
00B1 33 244 RLC A
00B2 FD 245 MOV R5,A
00B3 C290 246 CLR SK
247
00B5 0F 248 INC R7
00B6 BF07F1 249 CJNE R7,#07H,INOP_LP ; 判断是否7位全移完
250
00B9 D292 251 SETB DI
252
00BB 22 253 RET
254 ; END OF INOP
255
256 ;===============================================================================
A51 MACRO ASSEMBLER WL006 04/20/2004 11:57:07 PAGE 5
---- 257 RSEG CODE_SEG
00BC 258 SHIN:
259 ; 从MCU移出数据到AT93C46
260 ; 传入参数:R7 --- 要移入的数据
261 ; 返回值:无
262
263 USING 0
264
00BC E4 265 CLR A
00BD FE 266 MOV R6,A
00BE EE 267 MOV A,R6
00BF EF 268 MOV A,R7
00C0 269 SHIN_LP:
00C0 33 270 RLC A
00C1 9292 271 MOV DI,C
00C3 D290 272 SETB SK
00C5 00 273 NOP
00C6 00 274 NOP
00C7 C290 275 CLR SK
276
00C9 0E 277 INC R6
00CA BE08F3 278 CJNE R6,#08H,SHIN_LP ; 共8位,判断是否完成
279
00CD D292 280 SETB DI
00CF 22 281 RET
282 ; END OF SHIN
283
284 ;===============================================================================
285
---- 286 RSEG CODE_SEG
00D0 287 SHOUT:
288 ; 从AT93C46移出数据MCU
289 ; 传入参数:无
290 ; 返回值:R7 --- 读出的数据
291
292 USING 0
293
00D0 E4 294 CLR A
00D1 FE 295 MOV R6,A
00D2 296 SHOUT_LP:
00D2 D290 297 SETB SK
00D4 00 298 NOP
00D5 00 299 NOP
00D6 C290 300 CLR SK
00D8 A293 301 MOV C,DO
00DA 33 302 RLC A
00DB 0E 303 INC R6
00DC BE08F3 304 CJNE R6,#08H,SHOUT_LP ; 共8位,判断是否完成
00DF F507 305 MOV AR7,A
306
00E1 22 307 RET
308 ; END OF SHOUT
309
310 ;===============================================================================
---- 311 RSEG CODE_SEG
00E2 312 DELAYMS:
313 ; 延时子程序
314 ; 传入参数:R7 --- 延时值(MS)
315 ; 返回值:无
316
00E2 EF 317 MOV A,R7
00E3 6009 318 JZ END_DLYMS
00E5 319 DLY_LP1:
00E5 7EB9 320 MOV R6,#185
00E7 321 DLY_LP2:
00E7 00 322 NOP
A51 MACRO ASSEMBLER WL006 04/20/2004 11:57:07 PAGE 6
00E8 00 323 NOP
00E9 00 324 NOP
00EA DEFB 325 DJNZ R6,DLY_LP2
00EC DFF7 326 DJNZ R7,DLY_LP1
327
00EE 328 END_DLYMS:
00EE 22 329 RET
330 ; END OF DELAYMS
331
332 ;===============================================================================
333
---- 334 RSEG CODE_SEG
00EF 335 DIS_CODE:
336 ; 写入到AT93C46的数据串
337
00EF 7E 338 DB 07EH
00F0 BD 339 DB 0BDH
00F1 DB 340 DB 0DBH
00F2 E7 341 DB 0E7H
00F3 DB 342 DB 0DBH
00F4 BD 343 DB 0BDH
00F5 7E 344 DB 07EH
00F6 FF 345 DB 0FFH
346
347 END
A51 MACRO ASSEMBLER WL006 04/20/2004 11:57:07 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -