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

📄 12864.lst

📁 本人收集的一些C语言程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 250          };
 251          
 252          /*------------------延时子程序-----------------------------*/
 253          void delay(unsigned int t)
 254          {
 255   1              unsigned int i,j;
 256   1              for(i=0;i<t;i++)
 257   1                      for(j=0;j<10;j++)
 258   1                              ;
 259   1      }
 260          
 261          /*------------------写命令到LCD------------------------------*/
 262          void write_com(unsigned char cmdcode)
 263          {
 264   1              Di=0;RW=0;
 265   1      
 266   1              Lcd_Bus=cmdcode;delay(0);
 267   1              Enable=1;delay(0);
 268   1              Enable=0;
 269   1      }
 270          
 271          /*-------------------写数据到LCD----------------------------*/
 272          void write_data(unsigned char Dispdata)
 273          {
 274   1              Di=1;RW=0;
 275   1      
 276   1              Lcd_Bus=Dispdata;delay(0);
 277   1              Enable=1;delay(0);
 278   1              Enable=0;
 279   1      }
 280          
 281          /*------------------------读LCD数据----------------------------
 282          unsigned char read_data(void)
 283          {
 284                  unsigned char tmpin;
 285          
 286                  Di=1;RW=1;delay(0);
 287          
 288                  Enable=1;delay(0);
 289                  Enable=0;
 290          
 291                  tmpin=Lcd_Bus;
 292          
 293                  return tmpin;
 294          }
 295          
 296          /*------------------------显示边框-------------------------------*/
 297          void frame(void)
 298          {
 299   1              unsigned char i;
 300   1              
 301   1              Mcs=1;Scs=1;
 302   1              write_com(Page_Add+0);
 303   1              write_com(Col_Add+0);
C51 COMPILER V7.50   12864                                                                 04/19/2006 15:39:36 PAGE 6   

 304   1              for(i=0;i<64;i++) 
 305   1                      write_data(0x01);
 306   1      
 307   1              write_com(Page_Add+7);
 308   1              write_com(Col_Add+0);
 309   1      
 310   1              for(i=0;i<64;i++) 
 311   1                      write_data(0x80);
 312   1      
 313   1              for(i=0;i<8;i++)
 314   1              {
 315   2                      Mcs=0;Scs=1;
 316   2                      write_com(Page_Add+i);
 317   2                      write_com(Col_Add+63);
 318   2                      write_data(0xff);
 319   2      
 320   2                      Mcs=1;Scs=0;
 321   2                      write_com(Page_Add+i);
 322   2                      write_com(Col_Add+0);
 323   2                      write_data(0xff);
 324   2              }
 325   1      }
 326          
 327          /*--------------------------清除内存------------------------------*/
 328          void Clr_Scr(void)
 329          {
 330   1              unsigned char j,k;
 331   1              
 332   1              Mcs=1;Scs=1;
 333   1              write_com(Page_Add+0);
 334   1              write_com(Col_Add+0);
 335   1      
 336   1              for(k=0;k<8;k++)
 337   1              {
 338   2                      write_com(Page_Add+k);
 339   2                      for(j=0;j<64;j++)
 340   2                              write_data(0x00);
 341   2              }
 342   1      }
 343          
 344          /*--------------------------指定位置显示汉字16*16-----------------------*/
 345          void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
 346          {
 347   1              unsigned char j=0,i=0;
 348   1              for(j=0;j<2;j++)
 349   1              {
 350   2                      write_com(Page_Add+pag+j);
 351   2                      write_com(Col_Add+col);
 352   2                      for(i=0;i<16;i++) 
 353   2                              write_data(hzk[16*j+i]);
 354   2              }
 355   1      
 356   1              delay(2000);//延时,显示时有跳动感
 357   1      }
 358          
 359          /*----------------------指定位置显示字母或数字8*16-----------------------*/
 360          void e_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
 361          {
 362   1              unsigned char j=0,i=0;
 363   1              for(j=0;j<2;j++)
 364   1              {
 365   2                      write_com(Page_Add+pag+j);
C51 COMPILER V7.50   12864                                                                 04/19/2006 15:39:36 PAGE 7   

 366   2                      write_com(Col_Add+col);
 367   2                      for(i=0;i<8;i++) 
 368   2                              write_data(hzk[8*j+i]);
 369   2              }
 370   1      
 371   1              delay(2000);//延时,显示时有跳动感
 372   1      }
 373          
 374          /*------------------显示128*64图片-------------------------------------*/
 375          void Disp_Img(unsigned char code *img)
 376          {
 377   1              unsigned char j,k;
 378   1      
 379   1              for(k=0;k<8;k++)
 380   1              {
 381   2                      Mcs=1;Scs=0;delay(10);
 382   2                      write_com(Page_Add+k);
 383   2                      write_com(Col_Add+0);
 384   2                      for(j=0;j<64;j++) write_data(img[k*128+j]);
 385   2      
 386   2                      Mcs=0;Scs=1; delay(10);
 387   2                      write_com(Page_Add+k);
 388   2                      write_com(Col_Add+0);
 389   2                      for(j=64;j<128;j++) write_data(img[k*128+j]);
 390   2              }
 391   1      }
 392          
 393          /*------------------显示64*64图片---------------------------------------
 394          void Disp_Img2(unsigned char code *img)
 395          {
 396                  unsigned char j,k;
 397                  for(k=0;k<8;k++)
 398                  {
 399                          Mcs=1;Scs=0;delay(10);
 400                          write_com(Page_Add+k);
 401                          write_com(Col_Add+0);
 402                          for(j=0;j<64;j++) write_data(img[k*64+j]);
 403                  }
 404          }
 405          
 406          /*-------------------------------初始化LCD屏---------------------------*/
 407          void init_lcd(void)
 408          {
 409   1              Lcd_Rst=0;delay(100);
 410   1              Lcd_Rst=1;delay(100);
 411   1      
 412   1              Mcs=1;Scs=1;delay(100);
 413   1      
 414   1              write_com(Disp_Off);
 415   1              write_com(Page_Add+0);
 416   1              write_com(Start_Line+0);
 417   1              write_com(Col_Add+0);
 418   1              write_com(Disp_On);
 419   1      }
 420          
 421          /*------------------------------信息显示-------------------------------*/
 422          void Msg(void)
 423          {
 424   1              Clr_Scr();   //清除内存
 425   1              frame();   //边框
 426   1      
 427   1              Mcs=1;Scs=0;//显示欢迎光临
C51 COMPILER V7.50   12864                                                                 04/19/2006 15:39:36 PAGE 8   

 428   1              hz_disp16(1,32,huan);
 429   1              hz_disp16(1,48,ying);
 430   1      
 431   1              Mcs=0;Scs=1;
 432   1              hz_disp16(1,0,guang);
 433   1              hz_disp16(1,16,lin);
 434   1                   
 435   1              Mcs=1;Scs=0;//湘灵电子工作室
 436   1              hz_disp16(3,0,xiang);
 437   1              hz_disp16(3,16,ling);
 438   1              hz_disp16(3,32,dian);
 439   1              hz_disp16(3,48,zi); 
 440   1      
 441   1              Mcs=0;Scs=1;
 442   1              hz_disp16(3,0,gong);
 443   1              hz_disp16(3,16,zuo);
 444   1              hz_disp16(3,32,shi);
 445   1      
 446   1              Mcs=1;Scs=0;//显示www.mculover.net
 447   1              e_disp16(5,0,w);
 448   1              e_disp16(5,8,w);
 449   1              e_disp16(5,16,w);
 450   1              e_disp16(5,24,di);
 451   1              e_disp16(5,32,m);
 452   1              e_disp16(5,40,c);
 453   1              e_disp16(5,48,u);
 454   1              e_disp16(5,56,l);
 455   1      
 456   1              Mcs=0;Scs=1;
 457   1              e_disp16(5,0,o);
 458   1              e_disp16(5,8,v);
 459   1              e_disp16(5,16,e);
 460   1              e_disp16(5,24,r);
 461   1              e_disp16(5,32,di);
 462   1              e_disp16(5,40,n);
 463   1              e_disp16(5,48,e);
 464   1              e_disp16(5,56,t);
 465   1      }
 466          
 467          /*------------------------------------------------------------------*/
 468          void LED_on(void)
 469          {
 470   1              led = on;
 471   1      }
 472          
 473          /*------------------------------------------------------------------*/
 474          void LED_off(void)
 475          {
 476   1              led = off;
 477   1      }
 478          
 479          /*---------------------------主程序---------------------------------*/
 480          void main(void)
 481          {
 482   1              LED_on();//D点亮背光灯!
 483   1              while(1)
 484   1              {
 485   2                      init_lcd();
 486   2                      Disp_Img(logo);
 487   2                      delay(10000);
 488   2                      Clr_Scr();   //清除内存
 489   2                      Msg();
C51 COMPILER V7.50   12864                                                                 04/19/2006 15:39:36 PAGE 9   

 490   2                      delay(10000);
 491   2              }
 492   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    827    ----
   CONSTANT SIZE    =   1600    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      14
   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 + -