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

📄 ks0108.lst

📁 c8051单片机程序包,keil C编写
💻 LST
📖 第 1 页 / 共 3 页
字号:
 308          char code Zi[]=
 309          {
 310          0x00,0x00,0x10,0x0C,0x14,0x14,0x14,0x15,0xD6,0x54,0x34,0x14,0x14,0x8C,0x00,0x00,
 311          0x00,0x01,0x01,0x01,0x01,0x01,0x11,0x21,0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,
 312          };
 313          
 314          void LCD_WriteHZ(char x,char y,char *Dot) //显示16*16点阵汉字
 315          {
 316   1      char i;
 317   1              for (i=0;i<32;i++)
 318   1              {
 319   2                      if ((x+i%16)<64)
 320   2                      {
 321   3                              LCD_WriteCommand1(0xB8+y+i/16);
 322   3                              LCD_WriteCommand1(0x40+x+i%16);
 323   3                              LCD_WriteData1(Dot[i]);
 324   3                      }
 325   2                      else
 326   2                      {
 327   3                              LCD_WriteCommand2(0xB8+y+i/16);
 328   3                              LCD_WriteCommand2(0x40+x-64+i%16);
 329   3                              LCD_WriteData2(Dot[i]);
 330   3                      }
 331   2              }
 332   1      }
 333          
 334          char code Number[]=
 335          /*--  文字:  "0123456789:/ "  --*/
 336          {
 337          0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x07,0x08,0x10,0x10,0x08,0x07,0x00,
 338          0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,0x00,
 339          0x00,0x30,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x18,0x14,0x12,0x11,0x10,0x18,0x00,
 340          0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x0C,0x10,0x10,0x10,0x11,0x0E,0x00,
 341          0x00,0x80,0x40,0x20,0xF8,0x00,0x00,0x00,0x00,0x03,0x02,0x12,0x1F,0x12,0x12,0x00,
 342          0x00,0xF8,0x88,0x48,0x48,0x48,0x88,0x00,0x00,0x0C,0x10,0x10,0x10,0x10,0x0F,0x00,
 343          0x00,0xE0,0x10,0x88,0x88,0x98,0x00,0x00,0x00,0x0F,0x11,0x10,0x10,0x10,0x0F,0x00,
 344          0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,
 345          0x00,0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x00,0x0E,0x11,0x10,0x10,0x11,0x0E,0x00,
 346          0x00,0xF0,0x08,0x08,0x08,0x90,0xE0,0x00,0x00,0x00,0x19,0x11,0x11,0x08,0x07,0x00,
 347          0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,
 348          0x00,0x00,0x00,0x80,0x60,0x1C,0x02,0x00,0x00,0x30,0x0C,0x03,0x00,0x00,0x00,0x00,
 349          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 350          };
 351          
 352          
 353          void LCD_WriteChar(char x,char y,char *Dot) //显示8*16点阵字符
 354          {
 355   1      char i;
 356   1              for (i=0;i<16;i++)
 357   1              {
 358   2                      if ((x+i%8)<64)
 359   2                      {
 360   3                              LCD_WriteCommand1(0xB8+y+i/8);
 361   3                              LCD_WriteCommand1(0x40+x+i%8);
 362   3                              LCD_WriteData1(Dot[i]);
 363   3                      }
 364   2                      else
 365   2                      {
C51 COMPILER V7.02b   KS0108                                                               12/21/2002 22:32:37 PAGE 7   

 366   3                              LCD_WriteCommand2(0xB8+y+i/8);
 367   3                              LCD_WriteCommand2(0x40+x-64+i%8);
 368   3                              LCD_WriteData2(Dot[i]);
 369   3                      }
 370   2              }
 371   1      }
 372          
 373          void LCD_DispChar(char x,char y,char ch) //128*64  取值x=0-128 y=0-8
 374          {
 375   1              if ((ch>=0)&&(ch<=9))
 376   1              {
 377   2                      LCD_WriteChar(x,y,&Number[ch*16]);
 378   2              }
 379   1      }
 380          
 381          void InitLCD(void)      //初始化LCD
 382          {
 383   1              char i,j;
 384   1              LCD_RST=0;
 385   1              Delay1ms(1);
 386   1              LCD_RST=1;
 387   1      
 388   1              LCD_WriteCommand1(0xc0);        
 389   1              LCD_WriteCommand2(0xc0);
 390   1              LCD_WriteCommand1(0x3f);        //开显示
 391   1              LCD_WriteCommand2(0x3f);
 392   1      
 393   1              for (j=0;j<8;j++)                       //清屏
 394   1              {
 395   2                      LCD_WriteCommand1(0xB8+j);      //清左半屏
 396   2                      LCD_WriteCommand1(0x40);
 397   2                      for (i=0;i<64;i++)
 398   2                              LCD_WriteData1(0x00);
 399   2      
 400   2                      LCD_WriteCommand2(0xB8+j);      //清右半屏
 401   2                      LCD_WriteCommand2(0x40);
 402   2                      for (i=0;i<64;i++)
 403   2                              LCD_WriteData2(0x00);
 404   2              }
 405   1      }
 406          
 407          void DispBmp(char *buf) //显示一幅位图
 408          {
 409   1      int i,j;
 410   1              for (j=0;j<8;j++)                       //显示位图
 411   1              {
 412   2                      LCD_WriteCommand1(0xB8+j);      
 413   2                      LCD_WriteCommand1(0x40);
 414   2                      for (i=0;i<64;i++)
 415   2                              LCD_WriteData1(buf[(j*2)*64+i]);
 416   2                      LCD_WriteCommand2(0xB8+j);      
 417   2                      LCD_WriteCommand2(0x40);
 418   2                      for (i=0;i<64;i++)
 419   2                              LCD_WriteData2(buf[(j*2+1)*64+i]);
 420   2              }
 421   1      }
 422          
 423          void Delay1s(unsigned char T);
 424          void TestLCD(void)
 425          {
 426   1      char i;
 427   1              InitLCD();
C51 COMPILER V7.02b   KS0108                                                               12/21/2002 22:32:37 PAGE 8   

 428   1              DispBmp(screen);
 429   1              for (i=0;i<64;i++)
 430   1              {
 431   2                      Delay1ms(50);
 432   2                      LCD_WriteCommand1(0xc0+i%64);   //设置起始行,实现向上滚动
 433   2                      LCD_WriteCommand2(0xc0+i%64);
 434   2              }
 435   1              Delay1s(3);
 436   1              for (;;)
 437   1              {
 438   2                      DispBmp(screen1);
 439   2                      Delay1s(3);
 440   2                      DispBmp(screen2);
 441   2                      Delay1s(3);
 442   2                      InitLCD();
 443   2                      LCD_WriteHZ(2,1,Han); //显示16*16点阵汉字'汉'
 444   2                      LCD_WriteHZ(60,3,Zi); //显示16*16点阵汉字'字'
 445   2                      Delay1s(3);
 446   2              }
 447   1      }
 448          
 449          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1052    ----
   CONSTANT SIZE    =   3344    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     29    ----
   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 + -