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

📄 lcd12864.lst

📁 0-30v
💻 LST
📖 第 1 页 / 共 2 页
字号:
 261   3                      }
 262   2              }
 263   1              else    
 264   1              {
 265   2                      x1 = x1 / 2;
 266   2                      for(a = 0;a < 16;a++)
 267   2                      {
 268   3                              y = y1;
 269   3                      x = x1;
 270   3                              /**/
 271   3                              if(y < 16) 
 272   3                              {
 273   4                                      x = x + 0x80;
 274   4                                      y = y + 0x80;
 275   4                              }
 276   3                              if((y >= 16) && (y < 32))
 277   3                              {
 278   4                                      x = x  + 0x90;
 279   4                                      y = y + 0x80;
 280   4                              }
 281   3                              if((y >= 32) && (y < 48))
 282   3                              {
 283   4                                      x = x + 0x88;
 284   4                                      y = (y - 32) + 0x80;
 285   4                              }
 286   3                              if((y >= 48) && (y < 64))
 287   3                              {
 288   4                                      x = x + 0x98;
 289   4                                      y = (y - 32) + 0x80;
 290   4                              }
 291   3      
 292   3                              w_code(y);
 293   3                              w_code(x);
 294   3                              z = r_data(); 
 295   3                              w_code(y);
 296   3                              w_code(x);
 297   3                              w_data(z);        
 298   3                              if(fanbai == 0)
 299   3                              {
 300   4                                      w_data(zz[i]);
 301   4                              }
 302   3                              else
 303   3                              {
C51 COMPILER V8.08   LCD12864                                                              11/20/2008 22:02:48 PAGE 6   

 304   4                                      w_data(~zz[i]);
 305   4                              }
 306   3                              y1++;
 307   3                              i++;
 308   3                      }
 309   2              }
 310   1      }
 311          /************************************************************************************
 312          /************************************************************************************
 313          ---------------------------写16*16阵数据 
 314          ************************************************************************************/
 315          void  write_lcd_1616(uchar x1,uchar y1,uchar code * zz,bit fanbai)
 316          {
 317   1              data uchar a,y,x,i = 0;
 318   1      
 319   1              for(a = 0;a < 16;a++)
 320   1              {
 321   2                      y = y1;
 322   2              x = x1;
 323   2                      /**/
 324   2                      if(y < 16) 
 325   2                      {
 326   3                              x = x + 0x80;
 327   3                              y = y + 0x80;
 328   3                      }
 329   2                      if((y >= 16) && (y < 32))
 330   2                      {
 331   3                              x = x  + 0x90;
 332   3                              y = y + 0x80;
 333   3                      }
 334   2                      if((y >= 32) && (y < 48))
 335   2                      {
 336   3                              x = x + 0x88;
 337   3                              y = (y - 32) + 0x80;
 338   3                      }
 339   2                      if((y >= 48) && (y < 64))
 340   2                      {
 341   3                              x = x + 0x98;
 342   3                              y = (y - 32) + 0x80;
 343   3                      }
 344   2      
 345   2                      w_code(y);
 346   2                      y1++;
 347   2                      w_code(x);      
 348   2                      if(fanbai == 0)  
 349   2                      {
 350   3                                      w_data(zz[i]);
 351   3                                      i++;
 352   3                                      w_data(zz[i]);
 353   3                                      i++;
 354   3                              }
 355   2                              else
 356   2                              {
 357   3                                      w_data(~zz[i]);
 358   3                                      i++;
 359   3                                      w_data(~zz[i]);
 360   3                                      i++;
 361   3                              }
 362   2                      
 363   2              }
 364   1      }
 365          /************************************************************************************
C51 COMPILER V8.08   LCD12864                                                              11/20/2008 22:02:48 PAGE 7   

 366          ---------------------------清0 16*16阵数据       
 367          ************************************************************************************/
 368          void  write_lcd_1616_clr(uchar x1,uchar y1)
 369          {
 370   1              data uchar a,y,x,i = 0;
 371   1      
 372   1              for(a = 0;a < 16;a++)
 373   1              {
 374   2                      y = y1;
 375   2              x = x1;
 376   2                      if(y < 16) 
 377   2                      {
 378   3                              x = x + 0x80;
 379   3                              y = y + 0x80;
 380   3                      }
 381   2      
 382   2                      if((y >= 16) && (y < 32))
 383   2                      {
 384   3                              x = x  + 0x90;
 385   3                              y = y + 0x80;
 386   3                      }
 387   2      
 388   2                      if((y >= 32) && (y < 48))
 389   2                      {
 390   3                              x = x + 0x88;
 391   3                              y = (y - 32) + 0x80;
 392   3                      }
 393   2      
 394   2                      if((y >= 48) && (y < 64))
 395   2                      {
 396   3                              x = x + 0x98;
 397   3                              y = (y - 32) + 0x80;
 398   3                      }
 399   2      
 400   2                      w_code(y);
 401   2                      y1++;
 402   2                      w_code(x);     
 403   2                      w_data(0);
 404   2                      i++;
 405   2                      w_data(0);
 406   2                      i++;
 407   2              }
 408   1      
 409   1      }
 410          /************************************************************************************
 411          
 412                                       写整屏点阵数据  
 413                
 414          ************************************************************************************/
 415          
 416          void  write_lcd_full(uchar  * img )
 417          {
 418   1                      uint x2 = 0;
 419   1              idata uchar  i,j,a;
 420   1                      j = 0x80;          
 421   1                      for(a = 0;a < 32;a++)
 422   1                      {
 423   2                              w_code(j);
 424   2                              j++;
 425   2                              w_code(0x80);   
 426   2                              for(i = 0;i < 16;i ++)
 427   2                              { 
C51 COMPILER V8.08   LCD12864                                                              11/20/2008 22:02:48 PAGE 8   

 428   3                                      w_data(img[x2]);
 429   3                                      x2++;
 430   3                              }
 431   2                      }
 432   1      
 433   1                      j = 0x80;  
 434   1                      for(a = 0;a < 32;a++)
 435   1                      {
 436   2                              w_code(j);
 437   2                              j++;
 438   2                              w_code(0x88);
 439   2                              for(i = 0;i < 16;i ++)
 440   2                              {
 441   3                                      w_data(img[x2]);
 442   3                                      x2++;
 443   3                              }
 444   2                      }
 445   1      }
 446          /************************************************************************************
 447          ---------------------------清屏函数  
 448          ---------------------------把所有的点都写0         
 449          ************************************************************************************/
 450          
 451          void  lcd_clr()
 452          {
 453   1              idata uchar  i,j,a;
 454   1              j = 0x80;  
 455   1              for(a = 0;a < 32;a++)
 456   1              {
 457   2                      w_code(j);
 458   2                      j++;
 459   2                      w_code(0x80);
 460   2                      for(i = 0;i < 16;i ++)
 461   2                      { 
 462   3                              w_data(0x00);
 463   3                      }
 464   2              }
 465   1      
 466   1              j = 0x80; 
 467   1              for(a = 0;a < 32;a++)
 468   1              {
 469   2                      w_code(j);
 470   2                      j++;
 471   2                      w_code(0x88);
 472   2                      for(i = 0;i < 16;i ++)
 473   2                      {
 474   3                              w_data(0x00);
 475   3                      }
 476   2              }
 477   1      }
 478          /************************************************************************************
 479          
 480                                       设置绘图模式    
 481                                                                                                                                                           
 482          ************************************************************************************/
 483          void set_huitu(void)
 484          {
 485   1              w_code(0x32);//32 
 486   1              w_code(0x36);//36
 487   1      }
 488          
 489          /************************************************************************************
C51 COMPILER V8.08   LCD12864                                                              11/20/2008 22:02:48 PAGE 9   

 490          
 491                                       设置字符模式    
 492                                                                                                                                                           
 493          ************************************************************************************/
 494          void set_zifu(void)
 495          {
 496   1              w_code(0x30);//30
 497   1      }
 498          
 499          /************************************************************************************
 500          
 501          //向LCM发送一个字符串,长度64字符之内。  
 502          
 503          ************************************************************************************/
 504          void lcm_w_word(uchar x,uchar y,uchar *str)
 505          {
 506   1              x = x+y;
 507   1              w_code(x);
 508   1              while(*str != '\0')
 509   1              {
 510   2                      w_data(*str++);
 511   2              }
 512   1              *str = 0;
 513   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1091    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      17
   IDATA SIZE       =   ----       6
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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