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

📄 ks0108.lst

📁 c51单片机液晶点阵的程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 384          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 385          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 386          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 387          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 388          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 389          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 390          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 391          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 392          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 393          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 394          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 395          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 396          
 397          };
 398          
 399          void LCD_WriteTZ(char x,char y,char *Dot) //显示16*16点阵汉字
 400          {
 401   1      char i;
 402   1              for (i=0;i<32;i++)
 403   1              {
 404   2                      if ((x+i%16)<64)
 405   2                      {
 406   3                              LCD_WriteCommand1(0xB8+y+i/16);
 407   3                              LCD_WriteCommand1(0x40+x+i%16);
 408   3                              LCD_WriteData1(Dot[i]);
 409   3                      }
 410   2                      else
 411   2                      {
 412   3                              LCD_WriteCommand2(0xB8+y+i/16);
 413   3                              LCD_WriteCommand2(0x40+x-64+i%16);
 414   3                              LCD_WriteData2(Dot[i]);
 415   3                      }
 416   2              }
 417   1      }
 418          
 419          void LCD_WriteTZ1(char x,char y,char *Dot) //显示8*16点阵数字
 420          {
 421   1      char i;
 422   1              for (i=0;i<16;i++)
 423   1              {
 424   2                      if ((x+i%8)<64)
 425   2                      {
 426   3                              LCD_WriteCommand1(0xB8+y+i/8 );
 427   3                              LCD_WriteCommand1(0x40+x+i%8);
C51 COMPILER V7.02a   KS0108                                                               06/29/2008 18:48:40 PAGE 8   

 428   3                              LCD_WriteData1(Dot[i]);
 429   3                      }
 430   2                      else
 431   2                      {
 432   3                              LCD_WriteCommand2(0xB8+y+i/8);
 433   3                              LCD_WriteCommand2(0x40+x-64+i%8);
 434   3                              LCD_WriteData2(Dot[i]);
 435   3                      }
 436   2              }
 437   1      }
 438          
 439          void InitLCD(void)      //初始化LCD
 440          {
 441   1              char i,j;
 442   1              LCD_RST=0;
 443   1              Delay1ms(1);
 444   1              LCD_RST=1;
 445   1      
 446   1              LCD_WriteCommand1(0xc0);        
 447   1              LCD_WriteCommand2(0xc0);
 448   1              LCD_WriteCommand1(0x3f);        //开显示
 449   1              LCD_WriteCommand2(0x3f);
 450   1      
 451   1              for (j=0;j<8;j++)                       //清屏
 452   1              {
 453   2                      LCD_WriteCommand1(0xB8+j);      //清左半屏
 454   2                      LCD_WriteCommand1(0x40);
 455   2                      for (i=0;i<64;i++)
 456   2                              LCD_WriteData1(0x00);
 457   2      
 458   2                      LCD_WriteCommand2(0xB8+j);      //清右半屏
 459   2                      LCD_WriteCommand2(0x40);
 460   2                      for (i=0;i<64;i++)
 461   2                              LCD_WriteData2(0x00);
 462   2              }
 463   1      }
 464          
 465          void DispBmp(char *buf) //显示一幅位图
 466          {
 467   1      int i,j;
 468   1              for (j=0;j<8;j++)                       //显示位图
 469   1              {
 470   2                      LCD_WriteCommand1(0xB8+j);      
 471   2                      LCD_WriteCommand1(0x40);
 472   2                      for (i=0;i<64;i++)
 473   2                              LCD_WriteData1(buf[(j*2)*64+i]);
 474   2                      LCD_WriteCommand2(0xB8+j);      
 475   2                      LCD_WriteCommand2(0x40);
 476   2                      for (i=0;i<64;i++)
 477   2                              LCD_WriteData2(buf[(j*2+1)*64+i]);
 478   2              }
 479   1      }
 480          
 481          void DispBmp1(char *buf)        //显示一幅位图(lr)
 482          {
 483   1      int i,j,k;
 484   1      for(k=0;k<128;k++)
 485   1      {
 486   2              Delay1ms(50);
 487   2              for (j=0;j<8;j++)                       //显示位图
 488   2              {
 489   3                      LCD_WriteCommand1(0xB8+j);      
C51 COMPILER V7.02a   KS0108                                                               06/29/2008 18:48:40 PAGE 9   

 490   3                      LCD_WriteCommand1(0x40);
 491   3                      for (i=0;i<64;i++)
 492   3                              LCD_WriteData1(buf[(j*2)*64+(i+k)%128]);
 493   3                      LCD_WriteCommand2(0xB8+j);      
 494   3                      LCD_WriteCommand2(0x40);
 495   3                      for (i=0;i<64;i++)
 496   3                              LCD_WriteData2(buf[(j*2)*64+(i+k+64)%128]);
 497   3              }
 498   2              }
 499   1      }
 500          
 501          void Delay1s(unsigned char T);
 502          
 503          //--------------学生信息显示----------------//
 504          void TestLCD(void)
 505          {
 506   1              char i;
 507   1      
 508   1                      InitLCD();
 509   1              DispBmp1(classroom);
 510   1                      for (i=0;i<64;i++)
 511   1                      {
 512   2                      Delay1ms(50);
 513   2                      LCD_WriteCommand1(0xc0+i%64);   //设置起始行,实现向上滚动
 514   2                      LCD_WriteCommand2(0xc0+i%64);
 515   2                      }
 516   1                      Delay1s(1);
 517   1      
 518   1      //      for(;;)
 519   1      //      {
 520   1                      InitLCD();
 521   1                      DispBmp(screen1);
 522   1                      Delay1s(1);
 523   1                      DispBmp(screen2);
 524   1                      Delay1s(1);
 525   1      
 526   1                      InitLCD();
 527   1                      LCD_WriteTZ(2,1,Tang); //显示16*16点阵汉字'唐'
 528   1                      LCD_WriteTZ(32,1,Zhan); //显示16*16点阵汉字'湛'
 529   1                      for (i=64;i>0;i--)
 530   1                      {
 531   2                      Delay1ms(50);
 532   2                      LCD_WriteCommand1(0xc0+i%64);   //设置起始行,实现向上滚动
 533   2                      LCD_WriteCommand2(0xc0+i%64);
 534   2                      }
 535   1                      Delay1s(1);
 536   1      
 537   1      
 538   1                      
 539   1                      DispBmp(xuehao);
 540   1                      Delay1s(2);
 541   1      //      }
 542   1      }
 543          
 544          char code Wen[]=
 545          {
 546          /*--  文字:  温  --*/
 547          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
 548          0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A,0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00,
 549          0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00,
 550          };
 551          
C51 COMPILER V7.02a   KS0108                                                               06/29/2008 18:48:40 PAGE 10  

 552          char code Du[]=
 553          {
 554          /*--  文字:  度  --*/
 555          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
 556          0x00,0x00,0xFC,0x04,0x24,0x24,0xFC,0xA5,0xA6,0xA4,0xFC,0x24,0x24,0x24,0x04,0x00,
 557          0x80,0x60,0x1F,0x80,0x80,0x42,0x46,0x2A,0x12,0x12,0x2A,0x26,0x42,0xC0,0x40,0x00,
 558          };
 559          
 560          char code Ya[]=
 561          {
 562          /*--  文字:  压  --*/
 563          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
 564          0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
 565          0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00,
 566          };
 567          
 568          char code Li[]=
 569          {
 570          /*--  文字:  力  --*/
 571          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
 572          0x00,0x10,0x10,0x10,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0xF0,0x00,0x00,
 573          0x00,0x00,0x80,0x40,0x20,0x18,0x06,0x01,0x00,0x00,0x40,0x80,0x40,0x3F,0x00,0x00,
 574          };
 575          
 576          char code Dian[]=
 577          {
 578          /*--  文字:  电  --*/
 579          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/

⌨️ 快捷键说明

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