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

📄 lcd.lst

📁 8051单片机结合BU2614的PLL程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 510          *************************************************************************
 511          说明:入口参数:图画的点数组指针
 512                    出口参数:无
 513          ************************************************************************/ 
 514          
 515          void LCD_PutBMP(unsigned char *ptr)
 516                  {unsigned char i,j;
 517   1              for(i=0;i<0x20;i++)
 518   1              {for(j=0;j<8;j++)
 519   2                              {
 520   3                              LCD_WriteCommand(0x80+i);
 521   3                              LCD_WriteCommand(0x80+j);
 522   3                              LCD_WriteData(*ptr);
 523   3                              ptr++;
 524   3                              LCD_WriteData(*ptr);
 525   3                              ptr++;
 526   3                              }
 527   2                      }
 528   1              for(i=0;i<0x20;i++)
 529   1                      {for(j=0;j<8;j++)
 530   2                              {
 531   3                              LCD_WriteCommand(0x80+i);
 532   3                              LCD_WriteCommand(0x80+j+8);
 533   3                              LCD_WriteData(*ptr++);
 534   3                              LCD_WriteData(*ptr++);
 535   3                         }
 536   2                      }
 537   1         }
 538          
 539          /************************************************************************
 540          -------图形方式下WINDOWS窗口子程序---------------------------------------
 541          *************************************************************************
 542          说明:入口参数:TITLE OF THE WINDOWS
 543                    出口参数:无
 544          ************************************************************************/ 
 545          void WindowsFront(unsigned char *ptr)
 546                  {
 547   1              LCD_CLEAR();
 548   1              Delay1ms(100);
 549   1              LCD_ChangMode(1);
 550   1              LCD_PutBMP(WindowsFronts);
 551   1              Delay1ms(100);
C51 COMPILER V8.02   LCD                                                                   06/07/2008 19:32:58 PAGE 10  

 552   1              LCD_ChangMode(0);
 553   1              LCD_CURSOR_OFF();
 554   1              LCD_Printf(1,1,ptr);
 555   1              }
 556                  
 557          
 558          /***********************************************************************
 559          ------变量值显示函数-------------------------
 560          说明:将变量的值显示到指定的位置
 561                    入口参数:显示起始位置,要显示的变量
 562                    出口参数:无
 563          ***********************************************************************/
 564          void    LCD_Put_Varib(unsigned char x,unsigned char y, float  variable)
 565                  {
 566   1              unsigned char i;
 567   1              unsigned char dispbuf[7]={0};
 568   1      
 569   1              LCD_Goto ( (x-1), y );
 570   1      
 571   1              if(variable<0)
 572   1                      {
 573   2                              variable=-variable;//  print "-"
 574   2                              LCD_WriteData(45);
 575   2                       }
 576   1              LCD_Goto(x,y);
 577   1      
 578   1              dispbuf[0]=variable/10000;                                                                                                                      // divide the data into bit;
 579   1              dispbuf[1]=(variable-dispbuf[0]*10000)/1000;
 580   1              dispbuf[2]=(variable-dispbuf[0]*10000-dispbuf[1]*1000)/100;
 581   1              dispbuf[3]=(variable-dispbuf[0]*10000-dispbuf[1]*1000-dispbuf[2]*100)/10;
 582   1              dispbuf[4]=variable-dispbuf[0]*10000-dispbuf[1]*1000-dispbuf[2]*100-dispbuf[3]*10;
 583   1              dispbuf[5]=(variable-dispbuf[0]*10000-dispbuf[1]*1000-dispbuf[2]*100-dispbuf[3]*10-dispbuf[4])/0.1;
 584   1              dispbuf[6]=(variable-dispbuf[0]*10000-dispbuf[1]*1000-dispbuf[2]*100-dispbuf[3]*10-dispbuf[4]-dispbuf[5]*
             -0.1)/0.01;
 585   1              
 586   1              
 587   1              for(i=0;i<6;i++)                                        // 找出第一个不是0的位数;
 588   1                      {
 589   2                              if(dispbuf[i]==0)
 590   2                                      continue;
 591   2                              else
 592   2                                      break;
 593   2                      }
 594   1              for(;i<7;i++)
 595   1              {
 596   2                      
 597   2                      if(dispbuf[i]!=0)
 598   2                      {
 599   3                              dispbuf[i]=tbl[ dispbuf[i] ];
 600   3                              LCD_Goto(x, (y+i ));
 601   3                              LCD_WriteData(dispbuf[i]);
 602   3                      }               
 603   2              }
 604   1       }
 605          
 606          /***************************************************/
 607          //---------------清屏子函数--------------------------
 608          //入口参数:无
 609          //出口参数:无
 610          /***************************************************/
 611          void LCD_Clear (void)
 612                  {
C51 COMPILER V8.02   LCD                                                                   06/07/2008 19:32:58 PAGE 11  

 613   1              LCD_CLEAR();
 614   1              Delay1ms(100);
 615   1              }       
 616          /***************************************************/
 617          //---------------关闭光标函数--------------------------
 618          //入口参数:无
 619          //出口参数:无
 620          /***************************************************/
 621          void LCD_CursorOff(void)
 622                  {
 623   1              LCD_CURSOR_OFF();
 624   1              }
 625          
 626                  
 627          
 628          /*
 629          
 630             main()
 631                  {
 632                  unsigned char i;
 633                  // unsigned char hz[]="十八组”;
 634                  config();
 635                  LCD_Init();
 636                  LCD_ChangMode(1);
 637                  LCD_PutPiex(6,7);
 638          //      LCD_ChangMode(0);
 639          //      LCD_Printf(1,1,"lcd init");
 640          //      LCD_CURSOR_OFF();
 641          
 642          //      for(i=0;i<10;i++)
 643          //              Delay1ms(200);
 644          //      LCD_ChangMode(1);
 645          //      LCD_PutPiex(6,7);
 646          //      for(i=0;i<10;i++)
 647          //              Delay1ms(200);
 648                          
 649                  LCD_ChangMode(0);
 650                  LCD_CURSOR_OFF();
 651                  LCD_PutHZ(1,1,"十" );
 652                  LCD_PutHZ(1,2,"八");
 653                  LCD_PutHZ(1,3,"组");
 654                  while(1);
 655          while(1);
 656          /*
 657                  unsigned char i;
 658                  unsigned char num[4];
 659                  num[2]='%';num[3]=0;
 660                  config();
 661                  LCD_Init();
 662                  LCD_ChangMode(1);
 663                  LCD_PutBMP(screen0);
 664                  Delay1ms(1);
 665                  LCD_ChangMode(0);
 666                  LCD_CURSOR_OFF();
 667                  LCD_Printf(4,1,"Copyright Team18");
 668                  for(i=0;i<5;i++)
 669                          Delay1ms(200);
 670                  LCD_CLEAR();
 671                  for(i=0;i<10;i++)
 672                          {LCD_Printf(1,1,"System Star...");
 673                          Delay1ms(100);
 674                          }
C51 COMPILER V8.02   LCD                                                                   06/07/2008 19:32:58 PAGE 12  

 675                  for(i=0;i<64;i++)
 676                          {LCD_Printf(2,1,"Hardware Init.");
 677                          switch(i%4)
 678                                  {
 679                                  case 0: {LCD_PutChar(2,8,'-');Delay1ms(80);break;}
 680                                  case 1: {LCD_PutChar(2,8,92);Delay1ms(80);break;}
 681                                  case 2: {LCD_PutChar(2,8,'|');Delay1ms(80);break;}
 682                                  case 3: {LCD_PutChar(2,8,'/');Delay1ms(80);break;}
 683                                  }
 684                  }
 685                  LCD_Printf(3,1,"C8051F020 CPU!");
 686                  for(i=0;i<5;i++)
 687                          Delay1ms(100);
 688                  LCD_Printf(3,1,"OK!!!         ");
 689                  for(i=0;i<5;i++)
 690                          Delay1ms(100);
 691                  LCD_Printf(4,1,"SYSTEM CLOCK!!");
 692                  for(i=0;i<5;i++)
 693                          Delay1ms(100);
 694                  LCD_Printf(4,1,"OK!!!8M       ");
 695                  for(i=0;i<5;i++)
 696                          Delay1ms(100);
 697                  LCD_CLEAR();
 698                  for(i=0;i<=100;i++)
 699                          {
 700                          LCD_Printf(1,1,"MEMORY TEST.");
 701                          Delay1ms(40);
 702                          num[0]=i/10+0x30;
 703                          num[1]=i%10+0x30;
 704                          LCD_Printf(1,7,num);
 705                          Delay1ms(10);
 706                  }
 707                  LCD_Printf(2,1,"Basic Mem  256B");
 708                  Delay1ms(100);
 709                  LCD_Printf(3,1,"Exten Mem 4096B");
 710                  Delay1ms(100);
 711                  LCD_Printf(4,1,"Flash Mem  64KB");
 712                  for(i=0;i<10;i++)
 713                                  Delay1ms(150);
 714              LCD_CLEAR();
 715              for(i=0;i<5;i++)
 716                          {
 717                          Delay1ms(100);
 718                          LCD_Printf(1,1,"128*64 LCD..");
 719                          }
 720                  LCD_Printf(1,7,"OK");
 721                  for(i=0;i<10;i++)
 722                          Delay1ms(100);
 723                  LCD_Printf(2,1,"KEYBOARD TEST!");
 724                  for(i=0;i<5;i++)
 725                          Delay1ms(100);
 726                  LCD_Printf(2,1,"ERR!!!!!      ");
 727                  for(i=0;i<5;i++)
 728                          Delay1ms(100);
 729                  LCD_Printf(3,1,"SYSTEM TEST END");
 730                  LCD_Printf(4,1,"   WELCOME!!!  ");
 731                  for(i=0;i<10;i++)
 732                          Delay1ms(200);
 733                  LCD_CLEAR();
 734                  Delay1ms(20);
 735                  LCD_ChangMode(1);               
 736                  LCD_PutBMP(screen2);
C51 COMPILER V8.02   LCD                                                                   06/07/2008 19:32:58 PAGE 13  

 737                  Delay1ms(20);
 738              LCD_ChangMode(0);
 739                  LCD_WriteCommand(0x0f);
 740                  LCD_Goto(4,2);
 741                  Delay1ms(200);
 742                  Delay1ms(200);
 743                  Delay1ms(200);
 744                  WindowsFront("  超声测距系统  ");
 745                  while(1)
 746                          {_nop_();}
 747          
 748                  }
 749          
 750          */
 751          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2490    ----
   CONSTANT SIZE    =   1073    ----
   XDATA SIZE       =   1024    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      75
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -