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

📄 51

📁 51单片机大量源码
💻
📖 第 1 页 / 共 2 页
字号:
 284   1         wr_lcd(comm,0x90);
 285   1         j=1;
 286   1         for(i=0;i<16;i++)
 287   1         wr_lcd(dat,chn[j*16+i]);
 288   1      }
 289          
 290          /******************************************************************************************
 291          * 函数名称    :img_disp
 292          * 功能描述    : 显示图形
 293          * 参数        :  参数名称: 输入/输出? 类型  描述
 294          * 
 295          * 返回值      :
 296          * 作者        :
 297          * 创建日期    :2006-12-19
 298          * 全局变量    :
 299          * 全局静态变量:
 300          * 局部静态变量:
 301          *----------------------------------------修改历史------------------------------------------
 302          * 当前版本    :     修改人:                  修改日期:
 303          * 修改说明    :
C51 COMPILER V8.02   12864LCDTEST                                                          07/11/2009 14:25:14 PAGE 6   

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

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

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

 490   1         chk_busy ();
 491   1         if(dat_comm)
 492   1          {
 493   2           RS = 1;   //data
 494   2           RW = 0;   //write
 495   2          }
 496   1         else 
 497   1          {
 498   2           RS = 0;   //command
 499   2           RW = 0;   //write
 500   2          }
 501   1         P0=content;   //output data or comm
 502   1         E = 1;
 503   1         ;
 504   1         E = 0;
 505   1      }
 506          /******************************************************************************************
 507          * 函数名称    :chk_busy
 508          ******************************************************************************************/
 509          void chk_busy(void)
 510          {
 511   1         P0 = 0xff;
 512   1         RS = 0;
 513   1         RW = 1;
 514   1         E = 1;
 515   1         while(busy==1);
 516   1         E = 0;
 517   1      }
 518          
 519          void delay(uint us)   //delay time
 520          {
 521   1         while(us--);
 522   1      }
 523          
 524          void delay1(uint ms)
 525          {
 526   1         uint i,j;
 527   1         for(i=0;i<ms;i++)
 528   1         for(j=0;j<15;j++)
 529   1         delay(1);
 530   1      }
 531          
 532          
 533          void main()
 534          {
 535   1         init_lcd();
 536   1         while(1)
 537   1         {
 538   2           lat_disp(0x00,0x00);
 539   2           chn_disp(tab1);
 540   2           con_disp(0xff,0xff,0x8c,0x80,2,16);
 541   2           delay1(8000);
 542   2           clrram();
 543   2           lat_disp(0xcc,0xcc);
 544   2           delay1(8000);
 545   2           lat_disp(0x00,0x00);
 546   2           chn_disp1(tab31);
 547   2           img_disp1(tab32);
 548   2           delay1 (8000);
 549   2           clrram();
 550   2           lat_disp (0xff,0x00);
 551   2           delay1(8000);
C51 COMPILER V8.02   12864LCDTEST                                                          07/11/2009 14:25:14 PAGE 10  

 552   2           img_disp(tab5);
 553   2           delay1(8000);
 554   2         }
 555   1      }
 556          
 557          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1037    ----
   CONSTANT SIZE    =   1633    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      34
   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 + -