📄 ks107.lst
字号:
LOC OBJ LINE SOURCE STATEMENT
00F7 120000 F 210 CALL DISP_DATA
00FA A3 211 INC DPTR
00FB D5F0F7 212 DJNZ B,DISP_RX0
00FE 0500 F 213 INC DISP_ROW ; Next Row
0100 D500EC F 214 DJNZ M,DISP_RY0
0103 80DD 215 JMP DISP_IRET
216
217 ; ----------------------------------
218 ; Decode IMAGE in Compress 1 (ZERO)
219 ; ----------------------------------
220 DISP_RY1:
0105 850000 F 221 MOV DISP_ACT,DISP_COL
0108 8500F0 F 222 MOV B,M+1
223 DISP_RX1:
010B E500 F 224 MOV A,M+2
010D 7012 225 JNZ DISP_RP1
010F E4 226 CLR A
0110 93 227 MOVC A,@A+DPTR
0111 120000 F 228 CALL DISP_DATA
0114 A3 229 INC DPTR
0115 7010 230 JNZ DISP_RZ1
0117 E4 231 CLR A
0118 93 232 MOVC A,@A+DPTR
0119 A3 233 INC DPTR
011A F500 F 234 MOV M+2,A
011C 1500 F 235 DEC M+2
011E 020000 F 236 JMP DISP_RZ1
237 DISP_RP1:
0121 1500 F 238 DEC M+2
0123 E4 239 CLR A
0124 120000 F 240 CALL DISP_DATA
241 DISP_RZ1:
0127 D5F0E1 242 DJNZ B,DISP_RX1
012A 0500 F 243 INC DISP_ROW ; Next Row
012C D500D6 F 244 DJNZ M,DISP_RY1
012F 80B1 245 JMP DISP_IRET
246
247 ; ----------------------------------
248 ; Decode IMAGE in Compress 2 (FULL)
249 ; ----------------------------------
250 DISP_RY2:
0131 850000 F 251 MOV DISP_ACT,DISP_COL
0134 8500F0 F 252 MOV B,M+1
253 DISP_RX2:
0137 E500 F 254 MOV A,M+2
0139 7012 255 JNZ DISP_RP2
013B E4 256 CLR A
013C 93 257 MOVC A,@A+DPTR
013D F500 F 258 MOV M+3,A
013F 120000 F 259 CALL DISP_DATA
0142 A3 260 INC DPTR
0143 E4 261 CLR A
0144 93 262 MOVC A,@A+DPTR
PC - 8051 ASSEMBLER, V1.1 24.07.2005/09:38:40 PAGE 6
LOC OBJ LINE SOURCE STATEMENT
0145 A3 263 INC DPTR
0146 F500 F 264 MOV M+2,A
0148 1500 F 265 DEC M+2
014A 020000 F 266 JMP DISP_RZ2
267 DISP_RP2:
014D 1500 F 268 DEC M+2
014F E500 F 269 MOV A,M+3
0151 120000 F 270 CALL DISP_DATA
271 DISP_RZ2:
0154 D5F0E0 272 DJNZ B,DISP_RX2
0157 0500 F 273 INC DISP_ROW ; Next Row
0159 D500D5 F 274 DJNZ M,DISP_RY2
015C 8084 275 JMP DISP_IRET
276
277 ; ------------------------------------
278 ; Select direct control and send Byte to display
279 ; In: A ... Byte to write
280 ; DISP_ROW .. Position in ROW <0..7>
281 ; DISP_COL .. Position in COLUMN <0..127>
282 ; ------------------------------------
283 DISP_DATA:
015E C0E0 284 PUSH Acc
0160 E500 F 285 MOV A,DISP_ACT
0162 B44000 286 CJNE A,#64,DISP_POR
287 DISP_POR:
0165 4007 288 JC DISP_RAD1
0167 C200 F 289 CLR CS1
0169 D200 F 290 SETB CS2 ; Select control 2
016B 020000 F 291 JMP DISP_RAD2
292 DISP_RAD1:
016E D200 F 293 SETB CS1 ; Select control 1
0170 C200 F 294 CLR CS2
295 DISP_RAD2:
0172 B50003 F 296 CJNE A,DISP_COL,DISP_NE
0175 020000 F 297 JMP DISP_SET
298 DISP_NE:
0178 B4400C 299 CJNE A,#64,DISP_N1
300 DISP_SET:
017B E500 F 301 MOV A,DISP_ROW
017D 120000 F 302 CALL DISP_ADR_X
0180 E500 F 303 MOV A,DISP_ACT ; Actual Column
0182 543F 304 ANL A,#00111111B ; Reduce at 64
0184 120000 F 305 CALL DISP_ADR_Y
306 DISP_N1:
0187 D0E0 307 POP Acc
0189 120000 F 308 CALL DISP_WRITE ; Send Byte
018C 0500 F 309 INC DISP_ACT ; Increase actual column
018E C200 F 310 CLR CS1
0190 C200 F 311 CLR CS1
0192 22 312 RET
313
314 ; ------------------------------------
315 ; Write Byte to Display
PC - 8051 ASSEMBLER, V1.1 24.07.2005/09:38:40 PAGE 7
LOC OBJ LINE SOURCE STATEMENT
316 ; In: A ... Byte to Write
317 ; ------------------------------------
318 DISP_WRITE:
0193 C0E0 319 PUSH Acc
0195 F580 320 MOV P0,A
0197 D200 F 321 SETB E
0199 C200 F 322 CLR E
019B 7450 323 MOV A,#Time_Delay
019D D5E0FD 324 DJNZ Acc,$
01A0 D0E0 325 POP Acc
01A2 22 326 RET
327
328 ; ---------------------------------------
329
330 DISP_ADR_X: ; Set Row <0..7>
01A3 C200 F 331 CLR RS
01A5 5407 332 ANL A,#00000111B
01A7 44B8 333 ORL A,#10111000B
01A9 120000 F 334 CALL DISP_WRITE
01AC D200 F 335 SETB RS
01AE 22 336 RET
337
338 ; ----------------------------------------
339
340 DISP_ADR_Y: ; Set Column <0..63>
01AF C200 F 341 CLR RS
01B1 543F 342 ANL A,#00111111B
01B3 4440 343 ORL A,#01000000B
01B5 120000 F 344 CALL DISP_WRITE
01B8 D200 F 345 SETB RS
01BA 22 346 RET
347
348 ; ----------------------------------------
349
350 DISP_ADR_Z:
01BB C200 F 351 CLR RS
01BD 543F 352 ANL A,#00111111B
01BF 44C0 353 ORL A,#11000000B
01C1 120000 F 354 CALL DISP_WRITE
01C4 D200 F 355 SETB RS
01C6 22 356 RET
357
358 ; --------------------------------------
359
360 DISP_ON: ; Display ON
01C7 D200 F 361 SETB CS1
01C9 D200 F 362 SETB CS2
01CB C200 F 363 CLR RS
01CD 743F 364 MOV A,#00111111B
01CF 120000 F 365 CALL DISP_WRITE
01D2 D200 F 366 SETB RS
01D4 C200 F 367 CLR CS1
01D6 C200 F 368 CLR CS2
PC - 8051 ASSEMBLER, V1.1 24.07.2005/09:38:40 PAGE 8
LOC OBJ LINE SOURCE STATEMENT
01D8 22 369 RET
370
371 ; --------------------------------------
372
373 DISP_OFF: ; Display OFF
01D9 D200 F 374 SETB CS1
01DB D200 F 375 SETB CS2
01DD C200 F 376 CLR RS
01DF 743E 377 MOV A,#00111110B
01E1 120000 F 378 CALL DISP_WRITE
01E4 D200 F 379 SETB RS
01E6 C200 F 380 CLR CS1
01E8 C200 F 381 CLR CS2
01EA 22 382 RET
383
384 ; --------------------------------------------
385 ; Display Clear
386 ; --------------------------------------------
387 DISP_CLEAR:
01EB C0E0 388 PUSH Acc
01ED C000 F 389 PUSH M
01EF C000 F 390 PUSH M+1
01F1 C0F0 391 PUSH B
01F3 D200 F 392 SETB CS1
01F5 D200 F 393 SETB CS2
01F7 750008 F 394 MOV M,#8
01FA 750040 F 395 MOV M+1,#64
396 DISP_CY:
01FD E500 F 397 MOV A,M
01FF 14 398 DEC A
0200 120000 F 399 CALL DISP_ADR_X
0203 E4 400 CLR A
0204 120000 F 401 CALL DISP_ADR_Y
0207 8500F0 F 402 MOV B,M+1
403 DISP_CX:
020A E4 404 CLR A
020B 120000 F 405 CALL DISP_WRITE
020E D5F0F9 406 DJNZ B,DISP_CX
0211 D500E9 F 407 DJNZ M,DISP_CY
0214 C200 F 408 CLR CS1
0216 C200 F 409 CLR CS2
0218 D0F0 410 POP B
021A D000 F 411 POP M+1
021C D000 F 412 POP M
021E D0E0 413 POP Acc
0220 22 414 RET
415
416 ; ---------------------------------------
417 ; Tab ASCII char
418 ; ---------------------------------------
419 TabASCII:
0221 00000000 420 DB 000H,000H,000H,000H,000H,000H,000H,05FH,000H,000H,000H,000H,000H,007H,000H,007H
0225 0000005F
PC - 8051 ASSEMBLER, V1.1 24.07.2005/09:38:40 PAGE 9
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -