📄 lcd1602.lst
字号:
297 0750 00C1 movwf ?a_wr_data
298 ;lcd1602.c: 108: unsigned char i;
299 0751 0E41 swapf ?a_wr_data,w
300 0752 390F andlw 15
301 0753 00C2 movwf ?a_wr_data+1
302 ;lcd1602.c: 111: PORTB &= ~0x20;
303 0754 1286 bcf 6,5 ;volatile
304 ;lcd1602.c: 112: PORTB &= ~0x10;
305 0755 1206 bcf 6,4 ;volatile
306 ;lcd1602.c: 114: PORTB |= 0x10;
307 0756 1606 bsf 6,4 ;volatile
308 ;lcd1602.c: 116: PORTB |= 0x20;
309 0757 1686 bsf 6,5 ;volatile
310 ;lcd1602.c: 118: pb=PORTB;
311 0758 0806 movf 6,w ;volatile
312 0759 00C3 movwf ?a_wr_data+2
313 ;lcd1602.c: 119: pb=pb&0xF0;
314 075A 30F0 movlw -16
315 075B 05C3 andwf ?a_wr_data+2
316 ;lcd1602.c: 120: pb +=i&0x0F;
317 075C 0842 movf ?a_wr_data+1,w
318 075D 390F andlw 15
319 075E 07C3 addwf ?a_wr_data+2
320 ;lcd1602.c: 121: PORTB =pb;
321 075F 0843 movf ?a_wr_data+2,w
322 0760 0086 movwf 6 ;volatile
323 ;lcd1602.c: 123: PORTB &= ~0x20;
324 0761 1286 bcf 6,5 ;volatile
325 ;lcd1602.c: 125: i=dat&0x0f;
326 0762 0841 movf ?a_wr_data,w
327 0763 390F andlw 15
328 0764 00C2 movwf ?a_wr_data+1
329 ;lcd1602.c: 126: PORTB |= 0x20;
330 0765 1686 bsf 6,5 ;volatile
331 ;lcd1602.c: 128: pb=PORTB;
332 0766 0806 movf 6,w ;volatile
333 0767 00C3 movwf ?a_wr_data+2
334 ;lcd1602.c: 129: pb=pb&0xF0;
335 0768 30F0 movlw -16
336 0769 05C3 andwf ?a_wr_data+2
337 ;lcd1602.c: 130: pb +=i&0x0F;
338 076A 0842 movf ?a_wr_data+1,w
339 076B 390F andlw 15
340 076C 07C3 addwf ?a_wr_data+2
341 ;lcd1602.c: 131: PORTB =pb;
342 076D 0843 movf ?a_wr_data+2,w
343 076E 0086 movwf 6 ;volatile
344 ;lcd1602.c: 133: PORTB &= ~0x20;
345 076F 1286 bcf 6,5 ;volatile
346 ;lcd1602.c: 134: PORTB &= ~0x10;
347 0770 1206 bcf 6,4 ;volatile
348 ;lcd1602.c: 136: }
349 0771 0008 return
350 ;lcd1602.c: 29: void delay50us()
351 ;lcd1602.c: 30: {
352 0772 _delay50us
353 ; _i assigned to ?a_delay50us+0
354 0000 _delay50us$i set ?a_delay50us
355 ;lcd1602.c: 31: register int i;
356 0772 0183 clrf 3 ;select bank 0
357 0773 01C1 clrf ?a_delay50us
358 0774 01C2 clrf ?a_delay50us+1
359 0775 l6
360 ;lcd1602.c: 33: ;
361 0775 0AC1 incf ?a_delay50us
362 0776 1903 btfsc 3,2
363 0777 0AC2 incf ?a_delay50us+1
364 0778 0842 movf ?a_delay50us+1,w
365 0779 3A80 xorlw 128
366 077A 00F0 movwf btemp
367 077B 3080 movlw 128
368 077C 0270 subwf btemp,w
369 077D 3064 movlw 100
370 ;set bank bits for (((?a_delay50us+0)))
371 077E 1903 btfsc 3,2
372 077F 0241 subwf ?a_delay50us,w
373 0780 1803 btfsc 3,0
374 0781 0008 return
375 0782 2F75 goto l6
376 ;lcd1602.c: 74: wr_com(unsigned char comm)
377 ;lcd1602.c: 75: {
378 0783 _wr_com
379 ; _comm assigned to ?a_wr_com+0
380 0000 _wr_com$comm set ?a_wr_com
381 ; _i assigned to ?a_wr_com+1
382 0000 _wr_com$i set ?a_wr_com+1
383 ; _pb assigned to ?a_wr_com+2
384 0000 _wr_com$pb set ?a_wr_com+2
385 ;_comm stored from w
386 0783 0183 clrf 3 ;select bank 0
387 0784 00C1 movwf ?a_wr_com
388 ;lcd1602.c: 76: unsigned char i;
389 0785 0E41 swapf ?a_wr_com,w
390 0786 390F andlw 15
391 0787 00C2 movwf ?a_wr_com+1
392 ;lcd1602.c: 79: PORTB &= ~0x20;
393 0788 1286 bcf 6,5 ;volatile
394 ;lcd1602.c: 80: PORTB &= ~0x10;
395 0789 1206 bcf 6,4 ;volatile
396 ;lcd1602.c: 82: PORTB |= 0x20;
397 078A 1686 bsf 6,5 ;volatile
398 ;lcd1602.c: 83: pb=PORTB;
399 078B 0806 movf 6,w ;volatile
400 078C 00C3 movwf ?a_wr_com+2
401 ;lcd1602.c: 84: pb=pb&0xF0;
402 078D 30F0 movlw -16
403 078E 05C3 andwf ?a_wr_com+2
404 ;lcd1602.c: 85: pb +=i&0x0F;
405 078F 0842 movf ?a_wr_com+1,w
406 0790 390F andlw 15
407 0791 07C3 addwf ?a_wr_com+2
408 ;lcd1602.c: 86: PORTB =pb;
409 0792 0843 movf ?a_wr_com+2,w
410 0793 0086 movwf 6 ;volatile
411 ;lcd1602.c: 89: PORTB &= ~0x10;
412 0794 1206 bcf 6,4 ;volatile
413 ;lcd1602.c: 91: PORTB &= ~0x20;
414 0795 1286 bcf 6,5 ;volatile
415 ;lcd1602.c: 93: PORTB |= 0x20;
416 0796 1686 bsf 6,5 ;volatile
417 ;lcd1602.c: 94: i=comm&0x0f;
418 0797 0841 movf ?a_wr_com,w
419 0798 390F andlw 15
420 0799 00C2 movwf ?a_wr_com+1
421 ;lcd1602.c: 95: pb=PORTB;
422 079A 0806 movf 6,w ;volatile
423 079B 00C3 movwf ?a_wr_com+2
424 ;lcd1602.c: 96: pb=pb&0xF0;
425 079C 30F0 movlw -16
426 079D 05C3 andwf ?a_wr_com+2
427 ;lcd1602.c: 97: pb +=i&0x0F;
428 079E 0842 movf ?a_wr_com+1,w
429 079F 390F andlw 15
430 07A0 07C3 addwf ?a_wr_com+2
431 ;lcd1602.c: 98: PORTB =pb;
432 07A1 0843 movf ?a_wr_com+2,w
433 07A2 0086 movwf 6 ;volatile
434 ;lcd1602.c: 101: PORTB &= ~0x20;
435 07A3 1286 bcf 6,5 ;volatile
436 ;lcd1602.c: 102: PORTB &= ~0x10;
437 07A4 1206 bcf 6,4 ;volatile
438 ;lcd1602.c: 104: }
439 07A5 0008 return
440 ;lcd1602.c: 202: display_162()
441 ;lcd1602.c: 203: {
442 07A6 _display_162
443 ; _i assigned to ?a_display_162+0
444 0000 _display_162$i set ?a_display_162
445 ;lcd1602.c: 204: unsigned char in,i;
446 07A6 3080 movlw -128
447 07A7 2783 fcall _wr_com
448 ;lcd1602.c: 206: delay50us();
449 07A8 2772 fcall _delay50us
450 ;lcd1602.c: 207: delay50us();
451 07A9 2772 fcall _delay50us
452 ;lcd1602.c: 208: for(i=0;i<16;i++)
453 07AA 01C0 clrf ?a_display_162
454 07AB l20
455 ;lcd1602.c: 209: {
456 ;lcd1602.c: 210: wr_data(line1[i]);
457 07AB 0840 movf ?a_display_162,w
458 07AC 3E20 addlw _line1
459 07AD 0084 movwf 4
460 07AE 1383 bcf 3,7
461 07AF 0800 movf 0,w
462 07B0 274F fcall _wr_data
463 ;lcd1602.c: 211: delay50us();
464 07B1 2772 fcall _delay50us
465 ;lcd1602.c: 213: }
466 07B2 0AC0 incf ?a_display_162
467 07B3 3010 movlw 16
468 07B4 0240 subwf ?a_display_162,w
469 07B5 1C03 btfss 3,0
470 07B6 2FAB goto l20
471 ;lcd1602.c: 215: delay50us();
472 07B7 2772 fcall _delay50us
473 ;lcd1602.c: 216: wr_com(0xc0);
474 07B8 30C0 movlw -64
475 07B9 2783 fcall _wr_com
476 ;lcd1602.c: 217: delay50us();
477 07BA 2772 fcall _delay50us
478 ;lcd1602.c: 219: delay50us();
479 07BB 2772 fcall _delay50us
480 ;lcd1602.c: 220: for(i=0;i<16;i++)
481 07BC 01C0 clrf ?a_display_162
482 07BD l23
483 ;lcd1602.c: 221: {
484 ;lcd1602.c: 222: wr_data(line2[i]);
485 07BD 0840 movf ?a_display_162,w
486 07BE 3E30 addlw _line2
487 07BF 0084 movwf 4
488 07C0 1383 bcf 3,7
489 07C1 0800 movf 0,w
490 07C2 274F fcall _wr_data
491 ;lcd1602.c: 223: delay50us();
492 07C3 2772 fcall _delay50us
493 ;lcd1602.c: 225: }
494 07C4 0AC0 incf ?a_display_162
495 07C5 3010 movlw 16
496 07C6 0240 subwf ?a_display_162,w
497 07C7 1803 btfsc 3,0
498 07C8 0008 return
499 07C9 2FBD goto l23
500 ;lcd1602.c: 36: wr_com_8(unsigned char comm)
501 ;lcd1602.c: 37: {
502 07CA _wr_com_8
503 ; _comm assigned to ?a_wr_com_8+0
504 0000 _wr_com_8$comm set ?a_wr_com_8
505 ; _pb assigned to ?a_wr_com_8+1
506 0000 _wr_com_8$pb set ?a_wr_com_8+1
507 ;_comm stored from w
508 07CA 0183 clrf 3 ;select bank 0
509 07CB 00C1 movwf ?a_wr_com_8
510 ;lcd1602.c: 38: unsigned char pb;
511 07CC 1286 bcf 6,5 ;volatile
512 ;lcd1602.c: 40: PORTB &= ~0x10;
513 07CD 1206 bcf 6,4 ;volatile
514 ;lcd1602.c: 42: PORTB |= 0x20;
515 07CE 1686 bsf 6,5 ;volatile
516 ;lcd1602.c: 43: pb=PORTB;
517 07CF 0806 movf 6,w ;volatile
518 07D0 00C2 movwf ?a_wr_com_8+1
519 ;lcd1602.c: 46: pb=pb&0xF0;
520 07D1 30F0 movlw -16
521 07D2 05C2 andwf ?a_wr_com_8+1
522 ;lcd1602.c: 47: pb +=comm&0x0F;
523 07D3 0841 movf ?a_wr_com_8,w
524 07D4 390F andlw 15
525 07D5 07C2 addwf ?a_wr_com_8+1
526 ;lcd1602.c: 48: PORTB =pb;
527 07D6 0842 movf ?a_wr_com_8+1,w
528 07D7 0086 movwf 6 ;volatile
529 ;lcd1602.c: 49: PORTB &= ~0x10;
530 07D8 1206 bcf 6,4 ;volatile
531 ;lcd1602.c: 51: PORTB &= ~0x20;
532 07D9 1286 bcf 6,5 ;volatile
533 ;lcd1602.c: 52: }
534 07DA 0008 return
535 ;lcd1602.c: 144: void init()
536 ;lcd1602.c: 145: {
537 07DB _init
538 ; _i assigned to ?a_init+0
539 0000 _init$i set ?a_init
540 ;lcd1602.c: 148: unsigned char in,i;
541 07DB 3003 movlw 3
542 07DC 27CA fcall _wr_com_8
543 ;lcd1602.c: 155: delay5ms();
544 07DD 2700 fcall _delay5ms
545 ;lcd1602.c: 156: wr_com_8(0x03);
546 07DE 3003 movlw 3
547 07DF 27CA fcall _wr_com_8
548 ;lcd1602.c: 157: delay5ms();
549 07E0 2700 fcall _delay5ms
550 ;lcd1602.c: 158: wr_com_8(0x03);
551 07E1 3003 movlw 3
552 07E2 27CA fcall _wr_com_8
553 ;lcd1602.c: 159: delay5ms();
554 07E3 2700 fcall _delay5ms
555 ;lcd1602.c: 161: delay5ms();
556 07E4 2700 fcall _delay5ms
557 ;lcd1602.c: 170: wr_com(0x28);
558 07E5 3028 movlw 40
559 07E6 2783 fcall _wr_com
560 ;lcd1602.c: 171: delay50us();
561 07E7 2772 fcall _delay50us
562 ;lcd1602.c: 173: delay50us();
563 07E8 2772 fcall _delay50us
564 ;lcd1602.c: 174: wr_com(0x0c);
565 07E9 300C movlw 12
566 07EA 2783 fcall _wr_com
567 ;lcd1602.c: 175: delay50us();
568 07EB 2772 fcall _delay50us
569 ;lcd1602.c: 177: delay50us();
570 07EC 2772 fcall _delay50us
571 ;lcd1602.c: 179: wr_com(0x40);
572 07ED 3040 movlw 64
573 07EE 2783 fcall _wr_com
574 ;lcd1602.c: 180: delay50us();
575 07EF 2772 fcall _delay50us
576 ;lcd1602.c: 182: delay50us();
577 07F0 2772 fcall _delay50us
578 ;lcd1602.c: 183: for(i=0;i<64;i++)
579 07F1 01C0 clrf ?a_init
580 07F2 l15
581 ;lcd1602.c: 184: {
582 ;lcd1602.c: 185: wr_data(cgram1[i]);
583 07F2 3000 movlw _cgram1 shr (0+8)
584 07F3 008A movwf 10
585 07F4 0840 movf ?a_init,w
586 07F5 2013 call ((_cgram1+-1)& (0+2047))| (($)& (0+-2048)
+ )
587 07F6 120A 118A 274F fcall _wr_data
588 ;lcd1602.c: 186: delay50us();
589 07F9 2772 fcall _delay50us
590 ;lcd1602.c: 188: }
591 07FA 0AC0 incf ?a_init
592 07FB 3040 movlw 64
593 07FC 0240 subwf ?a_init,w
594 07FD 1803 btfsc 3,0
595 07FE 0008 return
596 07FF 2FF2 goto l15
597
598 psect text11
599 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -