⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcm240128zktest.lst

📁 北京青云液晶LCM240128的C51驱动程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 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 + -