📄 lcd_pg320240.lst
字号:
R 435 ?SYMB '',$,96,2
00C4 88C0 436 MOV [-R0],R12
R 437 ?SYMB '',$,96,4
00C6 2802 438 SUB R0,#02h
R 439 ?SYMB '',$,96,6
440 ; Locals:
441 ; Address = offset 2
442 ; Data = offset 0
443 ; Reg = offset 4
444 ;
445 ; Statics:
446 ;
447 ; CSEs:
448 ;
449 ?LINE 109
450 ?SYMB 'Address',1,99,18
R 451 ?SYMB '-4',$,101,1
452 ?SYMB 'Reg',3,99,3
R 453 ?SYMB '-2',$,101,3
454 ; lcd_pg320240.c 110 unsigned int Data;
455 ?LINE 110
456 ?SYMB 'Data',2,98,18
R 457 ?SYMB '-6',$,101,2
458 ; lcd_pg320240.c 111 CS = 0;
459 ?LINE 111
00C8 9EE0 460 BCLR P2.9
461 ; lcd_pg320240.c 112 READ = 1;
462 ?LINE 112
00CA EFE0 463 BSET P2.14
464 ; lcd_pg320240.c 113 WRITE = 1;
465 ?LINE 113
00CC CFE0 466 BSET P2.12
467 ; lcd_pg320240.c 114 // AB16 = 0;
468 ; lcd_pg320240.c 115 if (Reg) Address += REG_OFFSET;
469 ?LINE 115
00CE F4200400 470 MOVB RL1,[R0+#04H]
00D2 2D06 471 JMPR cc_Z,_9
00D4 D4C00200 472 MOV R12,[R0+#02H]
00D8 06FCE0FF 473 ADD R12,#0FFE0h
00DC C4C00200 474 MOV [R0+#02H],R12
00E0 475 _9:
476 ; lcd_pg320240.c 116 lcd_write_address(Address);
477 ?LINE 116
00E0 D4C00200 478 MOV R12,[R0+#02H]
00E4 BBA9 479 CALLR _lcd_write_address
480 ; lcd_pg320240.c 117 // AB16 = 1;
TASKING C166/ST10 assembler v8.0r1 Build 256 SN 00096962 Date: Apr 23 2004 Time: 16:27:02 Page: 10
lcd_pg320240
LOC CODE LINE SOURCELINE
481 ; lcd_pg320240.c 118 SETDATAINPUT;
482 ?LINE 118
00E6 F2FCC6FF 483 MOV R12,DP3
00EA 66FC00FF 484 AND R12,#0FF00h
00EE F6FCC6FF 485 MOV DP3,R12
486 ; lcd_pg320240.c 119 READ = 0;
487 ?LINE 119
00F2 EEE0 488 BCLR P2.14
489 ; lcd_pg320240.c 120 while(!WAIT);
490 ?LINE 120
00F4 0D00 491 JMPR cc_UC,_11
00F6 492 _10:
00F6 493 _11:
00F6 494 _12:
00F6 9AE0FEA0 495 JNB P2.10,_12
496 ; lcd_pg320240.c 121 Data = DATA;
497 ?LINE 121
00FA 8400C4FF 498 MOV [R0],P3
499 ; lcd_pg320240.c 122 READ = 1;
500 ?LINE 122
00FE EFE0 501 BSET P2.14
502 ; lcd_pg320240.c 123 SETDATAOUTPUT;
503 ?LINE 123
0100 F2FCC6FF 504 MOV R12,DP3
0104 76FCFF00 505 OR R12,#0FFh
0108 F6FCC6FF 506 MOV DP3,R12
507 ; lcd_pg320240.c 124 CS = 1;
508 ?LINE 124
010C 9FE0 509 BSET P2.9
510 ; lcd_pg320240.c 125 // Data = reverseLSB_MSB(Data);
511 ; lcd_pg320240.c 126 return(Data);
512 ?LINE 126
010E A980 513 MOVB RL4,[R0]
514 ; lcd_pg320240.c 127 }
515 ?LINE 127
0110 516 _13:
R 517 ?SYMB '',$,102,2
R 518 ?SYMB '',$,102,3
R 519 ?SYMB '',$,102,1
0110 0806 520 ADD R0,#06h
R 521 ?SYMB '',$,96,0
0112 CB00 522 RET
523 _lcd_read_reg ENDP
R 524 ?SYMB '',$,17,127
525 ; lcd_pg320240.c 128 //---------------------------------------------------------------------
--------
526 ; lcd_pg320240.c 129 void lcd_write (unsigned int Address, unsigned char Data)
527 ; lcd_pg320240.c 130 {
528 ?LINE 130
529 PUBLIC _lcd_write
R 530 ?SYMB 'lcd_write',_lcd_write,37,1
531 ?SYMB '',130,8,34
532 _lcd_write PROC NEAR
533 ?SYMB '',00H,95,0
0114 88D0 534 MOV [-R0],R13
TASKING C166/ST10 assembler v8.0r1 Build 256 SN 00096962 Date: Apr 23 2004 Time: 16:27:02 Page: 11
lcd_pg320240
LOC CODE LINE SOURCELINE
R 535 ?SYMB '',$,96,2
0116 88C0 536 MOV [-R0],R12
R 537 ?SYMB '',$,96,4
538 ; Locals:
539 ; Address = offset 0
540 ; Data = offset 2
541 ;
542 ; Statics:
543 ;
544 ; CSEs:
545 ;
546 ?LINE 130
547 ?SYMB 'Address',1,99,18
R 548 ?SYMB '-4',$,101,1
549 ?SYMB 'Data',2,99,3
R 550 ?SYMB '-2',$,101,2
551 ; lcd_pg320240.c 131 CS = 0;
552 ?LINE 131
0118 9EE0 553 BCLR P2.9
554 ; lcd_pg320240.c 132 lcd_write_address(Address);
555 ?LINE 132
011A A8C0 556 MOV R12,[R0]
011C BB8D 557 CALLR _lcd_write_address
558 ; lcd_pg320240.c 133 lcd_write_data(Data);
559 ?LINE 133
011E F4200200 560 MOVB RL1,[R0+#02H]
0122 C02C 561 MOVBZ R12,RL1
0124 CA002200 R 562 CALLA cc_UC,_lcd_write_data
563 ; lcd_pg320240.c 134 CS = 1;
564 ?LINE 134
0128 9FE0 565 BSET P2.9
566 ; lcd_pg320240.c 135 }
567 ?LINE 135
R 568 ?SYMB '',$,102,2
R 569 ?SYMB '',$,102,1
012A 0804 570 ADD R0,#04h
R 571 ?SYMB '',$,96,0
012C CB00 572 RET
573 _lcd_write ENDP
R 574 ?SYMB '',$,17,135
575 ; lcd_pg320240.c 136
576 ; lcd_pg320240.c 137 // initializing of display
577 ; lcd_pg320240.c 138 void lcd_init (void)
578 ; lcd_pg320240.c 139 {
579 ?LINE 139
580 PUBLIC _lcd_init
R 581 ?SYMB 'lcd_init',_lcd_init,37,1
582 ?SYMB '',139,8,34
583 _lcd_init PROC NEAR
584 ?SYMB '',00H,95,0
012E 2802 585 SUB R0,#02h
R 586 ?SYMB '',$,96,2
587 ; Locals:
588 ; i = offset 0
589 ;
TASKING C166/ST10 assembler v8.0r1 Build 256 SN 00096962 Date: Apr 23 2004 Time: 16:27:02 Page: 12
lcd_pg320240
LOC CODE LINE SOURCELINE
590 ; Statics:
591 ;
592 ; CSEs:
593 ;
594 ; lcd_pg320240.c 140 int i;
595 ?LINE 140
596 ?SYMB 'i',1,98,16
R 597 ?SYMB '-2',$,101,1
598 ; lcd_pg320240.c 141 /* Initialize the chip. Each register is individually programmed to
make comments clearer.*/
599 ; lcd_pg320240.c 142 lcd_set_reg(0x01, 0x00); //Register 01h: Mode Register 0
- Mono, 4-bit format 2
600 ?LINE 142
0130 E01C 601 MOV R12,#01h
0132 E00D 602 MOV R13,#00h
0134 BBB6 603 CALLR _lcd_set_reg
604 ; lcd_pg320240.c 143 lcd_set_reg(0x02, 0xB0); //Register 02h: Mode Register 1
- 4BPP, High Performance, CLKi/2
605 ?LINE 143
0136 E02C 606 MOV R12,#02h
0138 E6FDB000 607 MOV R13,#0B0h
013C BBB2 608 CALLR _lcd_set_reg
609 ; lcd_pg320240.c 144 // lcd_set_reg(0x02, 0x60); //Register 02h: Mode Register 1
- 2BPP, High Performance, CLKi/2
610 ; lcd_pg320240.c 145
611 ; lcd_pg320240.c 146 lcd_set_reg(0x03, 0x03); //Register 03h: Mode Register 2
- Normal power mode
612 ?LINE 146
013E E03C 613 MOV R12,#03h
0140 E03D 614 MOV R13,#03h
0142 BBAF 615 CALLR _lcd_set_reg
616 ; lcd_pg320240.c 147 lcd_set_reg(0x04, 0x27); //Register 04h: Horizontal Panel Size -
320 pixels - (320/8)-1 = 39 = 27h
617 ?LINE 147
0144 E04C 618 MOV R12,#04h
0146 E6FD2700 619 MOV R13,#027h
014A BBAB 620 CALLR _lcd_set_reg
621 ; lcd_pg320240.c 148 lcd_set_reg(0x05, 0xEF); //Register 05h: Vertical Panel
Size LSB - 240 pixels
622 ?LINE 148
014C E05C 623 MOV R12,#05h
014E E6FDEF00 624 MOV R13,#0EFh
0152 BBA7 625 CALLR _lcd_set_reg
626 ; lcd_pg320240.c 149 lcd_set_reg(0x06, 0x00); //Register 06h: Vertical Panel
Size MSB - (240 - 1) = 239 = EFh
627 ?LINE 149
0154 E06C 628 MOV R12,#06h
0156 E00D 629 MOV R13,#00h
0158 BBA4 630 CALLR _lcd_set_reg
631 ; lcd_pg320240.c 150 lcd_set_reg(0x07, 0x1E); //Register 07h - FPLINE Start P
osition - not used by STN
632 ?LINE 150
015A E07C 633 MOV R12,#07h
015C E6FD1E00 634 MOV R13,#01Eh
0160 BBA0 635 CALLR _lcd_set_reg
TASKING C166/ST10 assembler v8.0r1 Build 256 SN 00096962 Date: Apr 23 2004 Time: 16:27:02 Page: 13
lcd_pg320240
LOC CODE LINE SOURCELINE
636 ; lcd_pg320240.c 151 /* Register 08h - Horizontal Non-Display Period HNDP and VNDP a
re calculated to achieve the
637 ; lcd_pg320240.c 152 ** desired frame rate according to:
638 ; lcd_pg320240.c 153 ** PCLK
639 ; lcd_pg320240.c 154 ** Frame Rate = ---------------------------
640 ; lcd_pg320240.c 155 ** (HDP + HNDP) * (VDP + VNDP)
641 ; lcd_pg320240.c 156 */
642 ; lcd_pg320240.c 157 lcd_set_reg(0x08, 0x00);
643 ?LINE 157
0162 E08C 644 MOV R12,#08h
0164 E00D 645 MOV R13,#00h
0166 BB9D 646 CALLR _lcd_set_reg
647 ; lcd_pg320240.c 158 lcd_set_reg(0x09, 0x00); //Register 09h - FPFRAME Start
Position - not used by STN
648 ?LINE 158
0168 E09C 649 MOV R12,#09h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -