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

📄 12864-++-

📁 12864 Data 12864 to display characters pictures.
💻
📖 第 1 页 / 共 2 页
字号:
 276          * 函数名称    :img_disp
 277          * 功能描述    : 显示图形
 278          * 参数        :  参数名称: 输入/输出? 类型  描述
 279          * 
 280          * 返回值      :
 281          * 作者        :
 282          * 创建日期    :2006-12-19
 283          * 全局变量    :
 284          * 全局静态变量:
 285          * 局部静态变量:
 286          *----------------------------------------修改历史------------------------------------------
 287          * 当前版本    :     修改人:                  修改日期:
 288          * 修改说明    :
 289          ******************************************************************************************/
 290          void img_disp(uchar code *img)
 291          {
 292   1         uchar i,j;
 293   1         for(j=0;j<32;j++)
 294   1         {
 295   2           for(i=0;i<8;i++)
 296   2           {
 297   3             wr_lcd(comm,0x34);
 298   3             wr_lcd(comm,y+j);
 299   3             wr_lcd(comm,x1+i);
 300   3             wr_lcd(comm,0x30);
 301   3             wr_lcd(dat,img[j*16+i*2]);
 302   3             wr_lcd(dat,img[j*16+i*2+1]);
 303   3           }
C51 COMPILER V9.00   12864LCDTEST                                                          09/27/2012 19:21:10 PAGE 6   

 304   2         }
 305   1         for(j=32;j<64;j++)
 306   1         {
 307   2           for(i=0;i<8;i++)
 308   2           {
 309   3             wr_lcd(comm,0x34);
 310   3             wr_lcd(comm,y+j-32);
 311   3             wr_lcd(comm,x2+i);
 312   3             wr_lcd(comm,0x30);
 313   3             wr_lcd(dat,img[j*16+i*2]);
 314   3             wr_lcd(dat,img[j*16+i*2+1]);
 315   3           }
 316   2         }
 317   1         wr_lcd (comm,0x36);
 318   1      }
 319          
 320          /******************************************************************************************
 321          * 函数名称    :img_disp1
 322          * 功能描述    : 下半屏显示图形
 323          * 参数        :  参数名称: 输入/输出? 类型  描述
 324          * 
 325          * 返回值      :
 326          * 作者        :
 327          * 创建日期    :2006-12-19
 328          * 全局变量    :
 329          * 全局静态变量:
 330          * 局部静态变量:
 331          *----------------------------------------修改历史------------------------------------------
 332          * 当前版本    :     修改人:                  修改日期:
 333          * 修改说明    :
 334          ******************************************************************************************/
 335          void img_disp1(uchar code *img)
 336          {
 337   1         uchar i,j;
 338   1         for(j=0;j<32;j++)
 339   1         {
 340   2           for(i=0;i<8;i++)
 341   2           {
 342   3             wr_lcd(comm,0x34);
 343   3             wr_lcd(comm,y+j);
 344   3             wr_lcd(comm,x2+i);
 345   3             wr_lcd(comm,0x30);
 346   3             wr_lcd(dat,img[j*16+i*2]);
 347   3             wr_lcd(dat,img[j*16+i*2+1]);
 348   3           }
 349   2         }
 350   1         wr_lcd(comm,0x36);
 351   1      }
 352          
 353          /******************************************************************************************
 354          * 函数名称    :lat_disp
 355          * 功能描述    : 显示点阵
 356          * 参数        :  参数名称: 输入/输出? 类型  描述
 357          * 
 358          * 返回值      :
 359          * 作者        :
 360          * 创建日期    :2006-12-19
 361          * 全局变量    :
 362          * 全局静态变量:
 363          * 局部静态变量:
 364          *----------------------------------------修改历史------------------------------------------
 365          * 当前版本    :     修改人:                  修改日期:
C51 COMPILER V9.00   12864LCDTEST                                                          09/27/2012 19:21:10 PAGE 7   

 366          * 修改说明    :
 367          ******************************************************************************************/
 368          /*--------------显示点阵----------------*/
 369          //经过调试发现显示点阵是非常有意思的,最主要的在于data1,data2上的两组数据的取值,
 370          //不同的取值对应着不同的点阵效果。
 371          
 372          void lat_disp(uchar data1,uchar data2)
 373          {
 374   1         uchar i,j,k,x;
 375   1         x=x1;
 376   1         for(k=0;k<2;k++)
 377   1         {
 378   2           for(j=0;j<16;j++)
 379   2           {
 380   3             for(i=0;i<8;i++)
 381   3             {
 382   4               wr_lcd(comm,0x34);
 383   4                wr_lcd(comm,y+j*2);
 384   4               wr_lcd(comm,x+i);
 385   4               wr_lcd(comm,0x30);
 386   4               wr_lcd(dat,data1);
 387   4               wr_lcd(dat,data1);
 388   4             }
 389   3             for(i=0;i<8;i++)
 390   3             {
 391   4               wr_lcd(comm,0x34);
 392   4               wr_lcd(comm,y+j*2+1);
 393   4               wr_lcd(comm,x+i);
 394   4               wr_lcd(comm,0x30);
 395   4               wr_lcd(dat,data2);
 396   4               wr_lcd(dat,data2);
 397   4             }
 398   3           }
 399   2           x=x2;
 400   2         }
 401   1         wr_lcd(comm,0x36);
 402   1      }
 403          
 404          /******************************************************************************************
 405          * 函数名称    :con_disp
 406          * 功能描述    : 当data1=0xff,data2=0xff时,在x0,y0处反白显示16xl*yl
 407          * 参数        :  参数名称: 输入/输出? 类型  描述
 408          * 
 409          * 返回值      :
 410          * 作者        :
 411          * 创建日期    :2006-12-19
 412          * 全局变量    :
 413          * 全局静态变量:
 414          * 局部静态变量:
 415          *----------------------------------------修改历史------------------------------------------
 416          * 当前版本    :     修改人:                  修改日期:
 417          * 修改说明    :
 418          ******************************************************************************************/
 419          void con_disp(uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl)
 420          {
 421   1         uchar i,j;
 422   1         for(j=0;j<yl;j++)
 423   1         {
 424   2           for(i=0;i<xl;i++)
 425   2           {
 426   3             wr_lcd(comm,0x34);
 427   3             wr_lcd(comm,y0+j);
C51 COMPILER V9.00   12864LCDTEST                                                          09/27/2012 19:21:10 PAGE 8   

 428   3             wr_lcd(comm,x0+i);
 429   3             wr_lcd(comm,0x30);
 430   3             wr_lcd(dat,data1);
 431   3             wr_lcd(dat,data2);
 432   3           }
 433   2         }
 434   1         wr_lcd(comm,0x36);
 435   1      }
 436          
 437          /******************************************************************************************
 438          * 函数名称    :clrram
 439          * 功能描述    : 清DDRAM
 440          * 参数        :  参数名称: 输入/输出? 类型  描述
 441          * 
 442          * 返回值      :
 443          * 作者        :
 444          * 创建日期    :2006-12-19
 445          * 全局变量    :
 446          * 全局静态变量:
 447          * 局部静态变量:
 448          *----------------------------------------修改历史------------------------------------------
 449          * 当前版本    :     修改人:                  修改日期:
 450          * 修改说明    :
 451          ******************************************************************************************/
 452          void clrram(void)
 453          {
 454   1         wr_lcd(comm,0x30);
 455   1         wr_lcd(comm,0x01);
 456   1      }
 457          
 458          /******************************************************************************************
 459          * 函数名称    :wr_lcd
 460          * 功能描述    : 
 461          * 参数        :  参数名称: 输入/输出? 类型  描述
 462          * 
 463          * 返回值      :
 464          * 作者        :
 465          * 创建日期    :2006-12-19
 466          * 全局变量    :
 467          * 全局静态变量:
 468          * 局部静态变量:
 469          *----------------------------------------修改历史------------------------------------------
 470          * 当前版本    :     修改人:                  修改日期:
 471          * 修改说明    :
 472          ******************************************************************************************/
 473          void wr_lcd(uchar dat_comm,uchar content)
 474          {
 475   1         chk_busy ();
 476   1         if(dat_comm)
 477   1          {
 478   2           RS = 1;   //data
 479   2           RW = 0;   //write
 480   2          }
 481   1         else 
 482   1          {
 483   2           RS = 0;   //command
 484   2           RW = 0;   //write
 485   2          }
 486   1         P0=content;   //output data or comm
 487   1         E = 1;
 488   1         ;
 489   1         E = 0;
C51 COMPILER V9.00   12864LCDTEST                                                          09/27/2012 19:21:10 PAGE 9   

 490   1      }
 491          /******************************************************************************************
 492          * 函数名称    :chk_busy
 493          ******************************************************************************************/
 494          void chk_busy(void)
 495          {
 496   1         P0 = 0xff;
 497   1         RS = 0;
 498   1         RW = 1;
 499   1         E = 1;
 500   1         while(busy==1);
 501   1         E = 0;
 502   1      }
 503          
 504          void delay(uint us)   //delay time
 505          {
 506   1         while(us--);
 507   1      }
 508          
 509          void delay1(uint ms)
 510          {
 511   1         uint i,j;
 512   1         for(i=0;i<ms;i++)
 513   1         for(j=0;j<15;j++)
 514   1         delay(1);
 515   1      }
 516          
 517          
 518          void main()
 519          {
 520   1         init_lcd();
 521   1         while(1)
 522   1         {
 523   2           lat_disp(0x00,0x00);
 524   2           chn_disp(tab1);
 525   2           con_disp(0xff,0xff,0x8c,0x80,2,16);
 526   2           delay1(8000);
 527   2           clrram();
 528   2           lat_disp(0xcc,0xcc);
 529   2           delay1(8000);
 530   2           lat_disp(0x00,0x00);
 531   2           chn_disp1(tab31);
 532   2           img_disp1(tab32);
 533   2           delay1 (8000);
 534   2           clrram();
 535   2           lat_disp (0xff,0x00);
 536   2           delay1(8000);
 537   2           img_disp(tab5);
 538   2           delay1(8000);
 539   2         }
 540   1      }
 541          
 542          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1037    ----
   CONSTANT SIZE    =   1633    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      34
   IDATA SIZE       =   ----    ----
C51 COMPILER V9.00   12864LCDTEST                                                          09/27/2012 19:21:10 PAGE 10  

   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 + -