📄 lm9864.lst
字号:
303 0173 34F0 retlw -16
304 0174 3424 retlw 36
305 0175 3444 retlw 68
306 0176 3408 retlw 8
307 0177 3488 retlw -120
308 0178 3450 retlw 80
309 0179 3420 retlw 32
310 017A 3450 retlw 80
311 017B 3488 retlw -120
312 017C 340C retlw 12
313 017D 3408 retlw 8
314 017E 3400 retlw 0
315 017F 3404 retlw 4
316 0180 3484 retlw -124
317 0181 3444 retlw 68
318 0182 3467 retlw 103
319 0183 3400 retlw 0
320 0184 3404 retlw 4
321 0185 3404 retlw 4
322 0186 3404 retlw 4
323 0187 3404 retlw 4
324 0188 34FF retlw -1
325 0189 3404 retlw 4
326 018A 3404 retlw 4
327 018B 340C retlw 12
328 018C 3404 retlw 4
329 018D 3400 retlw 0
330 018E 3400 retlw 0
331 018F 3400 retlw 0
332 0190 3400 retlw 0
333 0191 34F8 retlw -8
334 0192 3410 retlw 16
335 0193 3420 retlw 32
336 0194 3400 retlw 0
337 0195 3400 retlw 0
338 0196 3400 retlw 0
339 0197 34FC retlw -4
340 0198 3400 retlw 0
341 0199 3400 retlw 0
342 019A 3400 retlw 0
343 019B 3400 retlw 0
344 019C 3400 retlw 0
345
346 psect text6
347 066A _disp_data
348 ; _x assigned to ?a_disp_data+0
349 0000 _disp_data$x set ?a_disp_data
350 ; _i assigned to ?a_disp_data+1
351 0000 _disp_data$i set ?a_disp_data+1
352 ;_x stored from w
353 066A 0183 clrf 3 ;select bank 0
354 066B 00A7 movwf ?a_disp_data
355 ;LM9864.C: 93: unsigned char i;
356 066C 00A1 movwf _x_line ;volatile
357 ;LM9864.C: 95: y_line = y;
358 066D 0823 movf ?_disp_data,w
359 066E 00A2 movwf _y_line ;volatile
360 ;LM9864.C: 96: PAGE = page;
361 066F 0824 movf ?_disp_data+1,w
362 0670 00A0 movwf _PAGE ;volatile
363 ;LM9864.C: 97: write_command(PAGE);
364 0671 0820 movf _PAGE,w ;volatile
365 0672 2706 120A 118A fcall _write_command
366 ;LM9864.C: 98: if (size == 0x00)
367 0675 08A6 movf ?_disp_data+3
368 0676 1D03 btfss 3,2
369 0677 2E9F goto l16
370 ;LM9864.C: 99: {
371 0678 01A8 clrf ?a_disp_data+1
372 0679 l17
373 ;LM9864.C: 101: {
374 ;LM9864.C: 102: write_data(sz_number[charater*1
+ 6+i]);
375 0679 3000 movlw _sz_number shr (0+8)
376 067A 008A movwf 10
377 067B 0E25 swapf ?_disp_data+2,w
378 067C 39F0 andlw 240
379 067D 0728 addwf ?a_disp_data+1,w
380 067E 2013 call ((_sz_number+-1)& (0+2047))| (($)& (0+-20
+ 48))
381 067F 120A 118A 2714 fcall _write_data
382 ;LM9864.C: 103: }
383 0682 0AA8 incf ?a_disp_data+1
384 0683 3008 movlw 8
385 0684 0228 subwf ?a_disp_data+1,w
386 0685 1C03 btfss 3,0
387 0686 2E79 goto l17
388 ;LM9864.C: 104: PAGE = PAGE - 1;
389 0687 03A0 decf _PAGE ;volatile
390 ;LM9864.C: 105: write_command(PAGE);
391 0688 0820 movf _PAGE,w ;volatile
392 0689 2706 fcall _write_command
393 ;LM9864.C: 106: x_line = x;
394 068A 0827 movf ?a_disp_data,w
395 068B 00A1 movwf _x_line ;volatile
396 ;LM9864.C: 107: y_line = y;
397 068C 0823 movf ?_disp_data,w
398 068D 00A2 movwf _y_line ;volatile
399 ;LM9864.C: 108: for (i = 0; i < 8;i++)
400 068E 01A8 clrf ?a_disp_data+1
401 068F l20
402 ;LM9864.C: 109: {
403 ;LM9864.C: 110: write_data(sz_number[charater*1
+ 6+i+8]);
404 068F 3000 movlw _sz_number shr (0+8)
405 0690 008A movwf 10
406 0691 0E25 swapf ?_disp_data+2,w
407 0692 39F0 andlw 240
408 0693 0728 addwf ?a_disp_data+1,w
409 0694 3E08 addlw 8
410 0695 2013 call ((_sz_number+-1)& (0+2047))| (($)& (0+-20
+ 48))
411 0696 120A 118A 2714 fcall _write_data
412 ;LM9864.C: 111: }
413 0699 0AA8 incf ?a_disp_data+1
414 069A 3008 movlw 8
415 069B 0228 subwf ?a_disp_data+1,w
416 069C 1803 btfsc 3,0
417 069D 0008 return
418 069E 2E8F goto l20
419 ;LM9864.C: 112: }
420 069F l16
421 ;LM9864.C: 114: {
422 069F 01A8 clrf ?a_disp_data+1
423 06A0 l24
424 ;LM9864.C: 116: {
425 ;LM9864.C: 117: write_data(hz_charater[charater
+ *32+i]);
426 06A0 0825 movf ?_disp_data+2,w
427 06A1 00F0 movwf btemp
428 06A2 3005 movlw 5
429 06A3 00F1 movwf btemp+1
430 06A4 u75
431 06A4 1003 bcf 3,0
432 06A5 0DF0 rlf btemp
433 06A6 0BF1 decfsz btemp+1
434 06A7 2EA4 goto u75
435 06A8 0870 movf btemp,w
436 06A9 0728 addwf ?a_disp_data+1,w
437 06AA 00F0 movwf btemp
438 06AB 3001 movlw _hz_charater shr (0+8)
439 06AC 008A movwf 10
440 06AD 0870 movf btemp,w
441 06AE 2100 call ((_hz_charater+-1)& (0+2047))| (($)& (0+-
+ 2048))
442 06AF 120A 118A 2714 fcall _write_data
443 ;LM9864.C: 118: }
444 06B2 0AA8 incf ?a_disp_data+1
445 06B3 3010 movlw 16
446 06B4 0228 subwf ?a_disp_data+1,w
447 06B5 1C03 btfss 3,0
448 06B6 2EA0 goto l24
449 ;LM9864.C: 119: PAGE = PAGE - 1;
450 06B7 03A0 decf _PAGE ;volatile
451 ;LM9864.C: 120: write_command(PAGE);
452 06B8 0820 movf _PAGE,w ;volatile
453 06B9 2706 120A 118A fcall _write_command
454 ;LM9864.C: 121: x_line = x;
455 06BC 0827 movf ?a_disp_data,w
456 06BD 00A1 movwf _x_line ;volatile
457 ;LM9864.C: 122: y_line = y;
458 06BE 0823 movf ?_disp_data,w
459 06BF 00A2 movwf _y_line ;volatile
460 ;LM9864.C: 123: for (i = 0; i < 16;i++)
461 06C0 01A8 clrf ?a_disp_data+1
462 06C1 l27
463 ;LM9864.C: 124: {
464 ;LM9864.C: 125: write_data(hz_charater[charater
+ *32+i+16]);
465 06C1 0825 movf ?_disp_data+2,w
466 06C2 00F0 movwf btemp
467 06C3 3005 movlw 5
468 06C4 00F1 movwf btemp+1
469 06C5 u95
470 06C5 1003 bcf 3,0
471 06C6 0DF0 rlf btemp
472 06C7 0BF1 decfsz btemp+1
473 06C8 2EC5 goto u95
474 06C9 0870 movf btemp,w
475 06CA 0728 addwf ?a_disp_data+1,w
476 06CB 3E10 addlw 16
477 06CC 00F0 movwf btemp
478 06CD 3001 movlw _hz_charater shr (0+8)
479 06CE 008A movwf 10
480 06CF 0870 movf btemp,w
481 06D0 2100 call ((_hz_charater+-1)& (0+2047))| (($)& (0+-
+ 2048))
482 06D1 120A 118A 2714 fcall _write_data
483 ;LM9864.C: 126: }
484 06D4 0AA8 incf ?a_disp_data+1
485 06D5 3010 movlw 16
486 06D6 0228 subwf ?a_disp_data+1,w
487 06D7 1803 btfsc 3,0
488 06D8 0008 return
489 06D9 2EC1 goto l27
490 ;LM9864.C: 144: void lcd_clear(void)
491 ;LM9864.C: 145: {
492 06DA _lcd_clear
493 ; _i assigned to ?a_lcd_clear+0
494 0000 _lcd_clear$i set ?a_lcd_clear
495 ; _j assigned to ?a_lcd_clear+1
496 0000 _lcd_clear$j set ?a_lcd_clear+1
497 ;LM9864.C: 146: unsigned char i,j;
498 06DA 30B0 movlw -80
499 06DB 0183 clrf 3 ;select bank 0
500 06DC 00A0 movwf _PAGE ;volatile
501 ;LM9864.C: 149: for(i = 0;i < 8;i++)
502 06DD 01A3 clrf ?a_lcd_clear
503 06DE l32
504 ;LM9864.C: 150: {
505 ;LM9864.C: 151: x_line = 0x10;
506 06DE 3010 movlw 16
507 06DF 00A1 movwf _x_line ;volatile
508 ;LM9864.C: 152: y_line = 0x00;
509 06E0 01A2 clrf _y_line ;volatile
510 ;LM9864.C: 153: write_command(PAGE);
511 06E1 0820 movf _PAGE,w ;volatile
512 06E2 2706 120A 118A fcall _write_command
513 ;LM9864.C: 154: for(j=0;j<98;j++)
514 06E5 01A4 clrf ?a_lcd_clear+1
515 06E6 l35
516 ;LM9864.C: 155: {
517 ;LM9864.C: 156: write_data(0x00);
518 06E6 3000 movlw 0
519 06E7 2714 fcall _write_data
520 ;LM9864.C: 157: }
521 06E8 0AA4 incf ?a_lcd_clear+1
522 06E9 3062 movlw 98
523 06EA 0224 subwf ?a_lcd_clear+1,w
524 06EB 1C03 btfss 3,0
525 06EC 2EE6 goto l35
526 ;LM9864.C: 158: PAGE++;
527 06ED 0AA0 incf _PAGE ;volatile
528 ;LM9864.C: 159: }
529 06EE 0AA3 incf ?a_lcd_clear
530 06EF 3008 movlw 8
531 06F0 0223 subwf ?a_lcd_clear,w
532 06F1 1803 btfsc 3,0
533 06F2 0008 return
534 06F3 2EDE goto l32
535 ;LM9864.C: 49: void lcd_busy(void)
536 ;LM9864.C: 50: {
537 06F4 _lcd_busy
538 ; _temp assigned to ?a_lcd_busy+0
539 0000 _lcd_busy$temp set ?a_lcd_busy
540 ;LM9864.C: 51: unsigned char temp;
541 06F4 30FF movlw -1
542 06F5 0183 clrf 3 ;select bank 0
543 06F6 0088 movwf 8 ;volatile
544 ;LM9864.C: 53: RS = 0;
545 06F7 1007 bcf 7,0
546 ;LM9864.C: 54: RW = 1;
547 06F8 1487 bsf 7,1
548 ;LM9864.C: 55: E=1;
549 06F9 1507 bsf 7,2
550 ;LM9864.C: 56: TRISD = 0xff;
551 06FA 1683 bsf 3,5
552 06FB 0088 movwf 8 ;volatile
553 ;LM9864.C: 57: temp = PORTD;
554 06FC 1283 bcf 3,5
555 06FD 0808 movf 8,w ;volatile
556 06FE 00AB movwf ?a_lcd_busy
557 ;LM9864.C: 58: E = 0;
558 06FF 1107 bcf 7,2
559 ;LM9864.C: 59: while (temp & 0x80);
560 0700 l9
561 0700 1BAB btfsc ?a_lcd_busy,7
562 0701 2F00 goto l9
563 ;LM9864.C: 60: TRISD = 0x00;
564 0702 1683 bsf 3,5
565 0703 0188 clrf 8 ;volatile
566 ;LM9864.C: 61: return;
567 ;LM9864.C: 62: }
568 0704 1283 bcf 3,5
569 0705 0008 return
570 ;LM9864.C: 63: void write_command(unsigned char
+ send_command)
571 ;LM9864.C: 64: {
572 0706 _write_command
573 ; _send_command assigned to ?a_write_command+0
574 0000 _write_command$send_command set ?a_write_comman
+ d
575 ;_send_command stored from w
576 0706 0183 clrf 3 ;select bank 0
577 0707 00AA movwf ?a_write_command
578 ;LM9864.C: 65: lcd_busy();
579 0708 26F4 fcall _lcd_busy
580 ;LM9864.C: 66: RS = 0;
581 0709 1007 bcf 7,0
582 ;LM9864.C: 67: RW = 0;
583 070A 1087 bcf 7,1
584 ;LM9864.C: 68: PORTD = send_command;
585 070B 082A movf ?a_write_command,w
586 070C 0088 movwf 8 ;volatile
587 ;LM9864.C: 69: E = 1;
588 070D 1507 bsf 7,2
589 ;LM9864.C: 70: lcd_delay(0x02);
590 070E 3002 movlw 2
591 070F 00AB movwf ?_lcd_delay
592 0710 01AC clrf ?_lcd_delay+1
593 0711 2731 fcall _lcd_delay
594 ;LM9864.C: 71: E = 0;
595 0712 1107 bcf 7,2
596 ;LM9864.C: 72: }
597 0713 0008 return
598 ;LM9864.C: 73: void write_data(unsigned char se
+ nd_data)
599 ;LM9864.C: 74: {
600 0714 _write_data
601 ; _send_data assigned to ?a_write_data+0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -