📄 lcm240128zktest.lst
字号:
501
502 整屏写入从B1H,A0H开始的字库中的汉字
503
504 **************************************************************************************************/
505 void TEST_Ziku(void) small
506 {
507 1 int i=0,j=0;
508 1 unsigned char Data0,Data1;
509 1 LCD_CmdWrite(0x00);
510 1 LCD_CmdWrite(0xcd);
511 1 LCD_CmdWrite(0xF0);
512 1 LCD_CmdWrite(0xA0);
513 1 LCD_CursorX(0x00);
514 1 LCD_CursorY(0x00);
515 1 Data0=0xb1;
516 1 Data1=0xa0;
517 1 for(i = 0; i < 120; i++)
518 1 {
519 2 LCD_DataWrite(Data0);
520 2 LCD_DataWrite(Data1);
521 2 Data1++;
522 2 }
523 1 }
524 /******************************************************************************
525
526 LCD Reset Subroutine
527
528 *******************************************************************************/
529 void LCD_Reset(void) small
530 {
531 1 rst = 0;
532 1 DelayXms(2);
533 1 rst = 1;
534 1 DelayXms(2);
535 1 }
536
537 /*******************************************************************************
538
539 LCD Function Initail Subroutine
540
541 *******************************************************************************/
542 void LCD_Initial(void) small
543 {
544 1 LCD_CmdWrite(0x00); /* LCD Controller Register.BIT76=11:电源正常模式,BIT3=1:文字模式,BIT0=1:正常
-显示 */
545 1 LCD_CmdWrite(0xC5); //cd
546 1 LCD_CmdWrite(0x08);
547 1 LCD_CmdWrite(0x73);
C51 COMPILER V7.50 LCM240128ZKTEST 01/02/2006 09:05:30 PAGE 10
548 1 LCD_CmdWrite(0x10);
549 1 LCD_CmdWrite(0x3f);
550 1 LCD_CmdWrite(0x18);
551 1 LCD_CmdWrite(0x20);
552 1 LCD_CmdWrite(0x20);
553 1 LCD_CmdWrite(0x1D);
554 1 LCD_CmdWrite(0x30);
555 1 LCD_CmdWrite(0x7F);
556 1 LCD_CmdWrite(0x40);
557 1 LCD_CmdWrite(0x00);
558 1 LCD_CmdWrite(0x50);
559 1 LCD_CmdWrite(0x00);
560 1 LCD_CmdWrite(0x28);
561 1 LCD_CmdWrite(0x1D);
562 1 LCD_CmdWrite(0x38);
563 1 LCD_CmdWrite(0x7F);
564 1 LCD_CmdWrite(0x48);
565 1 LCD_CmdWrite(0x00);
566 1 LCD_CmdWrite(0x58);
567 1 LCD_CmdWrite(0x00);
568 1 LCD_CmdWrite(0x60);
569 1 LCD_CmdWrite(0x00);
570 1 LCD_CmdWrite(0x70);
571 1 LCD_CmdWrite(0x00);
572 1 /*LCD_CmdWrite(0x80);
573 1 LCD_CmdWrite(0x33);*/
574 1 LCD_CmdWrite(0x90);
575 1 LCD_CmdWrite(0x1E);
576 1 LCD_CmdWrite(0xB0);
577 1 LCD_CmdWrite(0x27);
578 1 LCD_CmdWrite(0xB8);
579 1 LCD_CmdWrite(0xEF);
580 1 LCD_CmdWrite(0xA0);
581 1 LCD_CmdWrite(0x08);
582 1 LCD_CmdWrite(0xC0);
583 1 LCD_CmdWrite(0xF0);
584 1 LCD_CmdWrite(0xD0);
585 1 LCD_CmdWrite(0xe0); /* 发现使能亮度控制时(原值为0x30),显示屏全黑。其他显示也不能正常工作 */
586 1 LCD_CmdWrite(0xE0);
587 1 LCD_CmdWrite(0x00);
588 1 LCD_CmdWrite(0xF0);
589 1 LCD_CmdWrite(0xA0);
590 1 }
591
592 /*******************************************************************************
593
594 LCD Cursor Set Subroutine
595
596 *******************************************************************************/
597 void LCD_CursorX(unsigned char Cursor) small
598 {
599 1 LCD_CmdWrite(0x60);
600 1 LCD_CmdWrite(Cursor);
601 1 }
602
603 /*******************************************************************************
604
605 LCD Cursor Set Subroutine
606
607 *******************************************************************************/
608 void LCD_CursorY(unsigned char Cursor) small
609 {
C51 COMPILER V7.50 LCM240128ZKTEST 01/02/2006 09:05:30 PAGE 11
610 1 LCD_CmdWrite(0x70);
611 1 LCD_CmdWrite(Cursor);
612 1 }
613
614 /*******************************************************************************
615
616 LCD Clear Screen Subroutine
617
618 *******************************************************************************/
619 void LCD_Clear(void) small
620 {
621 1 unsigned char REG_TMP;
622 1 LCD_CmdWrite(0xE0);LCD_CmdWrite(0x00);
623 1 REG_TMP = LCD_CmdRead(0xF0);
624 1 REG_TMP &= (0xF7);
625 1 REG_TMP |= (0x08);
626 1 LCD_CmdWrite(0xF0);
627 1 LCD_CmdWrite(REG_TMP);
628 1 DelayXms(1);
629 1 }
630
631 /*******************************************************************************
632
633 LCD Command Write Subroutine
634
635 *******************************************************************************/
636 void LCD_CmdWrite(unsigned char Cmd_Data) small
637 {
638 1
639 1 LCD_ChkBusy(); /* Call LCD_ChkBusy to Check Busy Bit */
640 1 LCD_Command = Cmd_Data;
641 1 EN = 0;
642 1 P2 = 0x8d; /* rst=1,P2.6-P2.4=0,BUSU=1,INT=1,CS1=0,RS=1 */
643 1 LCD_RW = 0;
644 1 _nop_();
645 1 EN = 1;
646 1 _nop_();
647 1 EN = 0;
648 1 LCD_RW = 1;
649 1 P2 = 0x8d;
650 1 }
651
652 /*******************************************************************************
653
654 LCD Data Write Subroutine
655
656 *******************************************************************************/
657 void LCD_DataWrite(unsigned char Data_Data) small
658 {
659 1 LCD_ChkBusy(); /* Call LCD_ChkBusy to Check Busy Bit */
660 1 LCD_Data = Data_Data;
661 1 EN = 0;
662 1 P2 = 0x8c;
663 1 LCD_RW = 0;
664 1 _nop_();
665 1 EN = 1;
666 1 _nop_();
667 1 EN = 0;
668 1 LCD_RW = 1;
669 1 P2 = 0x8d;
670 1 }
671
C51 COMPILER V7.50 LCM240128ZKTEST 01/02/2006 09:05:30 PAGE 12
672 /*******************************************************************************
673
674 LCD Cmd Read Subroutine
675
676 *******************************************************************************/
677 unsigned char LCD_CmdRead(unsigned char REG_Addr) small
678 {
679 1 unsigned char REG_READ;
680 1 LCD_CmdWrite(REG_Addr);
681 1 LCD_RW = 1;
682 1 EN = 0;
683 1 P2 = (0x8d);
684 1 EN = 1;
685 1 _nop_();
686 1 REG_READ = LCD_Command;
687 1 _nop_();
688 1 EN = 0;
689 1 P2 = (0x8d);
690 1 return REG_READ;
691 1 }
692
693 /*******************************************************************************
694
695 LCD Data Read Subroutine
696
697 *******************************************************************************/
698 unsigned char LCD_DataRead(void) small
699 {
700 1 unsigned char DATA_READ;
701 1 LCD_ChkBusy();
702 1 LCD_RW = 1;
703 1 EN = 0;
704 1 P2 = (0x8c);
705 1 EN = 1;
706 1 _nop_();
707 1 REG_READ = LCD_Command;
708 1 _nop_();
709 1 EN = 0;
710 1 P2 = (0x8d);
711 1 return DATA_READ;
712 1 }
713
714 /*******************************************************************************
715
716 LCD Check Busy Subroutine
717
718 *******************************************************************************/
719 void LCD_ChkBusy(void) small
720 {
721 1 do
722 1 {
723 2 ;
724 2 }
725 1 while(BUSY == 1);
726 1 }
727
728 /*******************************************************************************
729
730 Delay Subroutine
731
732 *******************************************************************************/
733 void DelayXms(int count) small
C51 COMPILER V7.50 LCM240128ZKTEST 01/02/2006 09:05:30 PAGE 13
734 {
735 1 int i,j;
736 1 for(i=0; i<count; i++)
737 1 for(j=0; j<240; j++)
738 1 _nop_();
739 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1433 ----
CONSTANT SIZE = 3915 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 51
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -