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

📄 12864bk.lst

📁 51单片机实验例程
💻 LST
📖 第 1 页 / 共 3 页
字号:
 352          {                          
 353   1         uchar  pos;
 354   1         if (X==1)
 355   1           {X=0x80;}
 356   1         else if (X==2)
 357   1           {X=0x90;}
 358   1         else if (X==3)
 359   1           {X=0x88;}
 360   1         else if (X==4)
 361   1           {X=0x98;}
 362   1         pos = X+Y ; 
 363   1       
 364   1         lcd_wcmd(pos);     //显示地址
 365   1      }
C51 COMPILER V7.10   12864BK                                                               08/02/2009 18:45:50 PAGE 7   

 366          /*********************************************************
 367          *                                                        *
 368          * 闪烁函数                                               *
 369          *                                                        *
 370          *********************************************************/
 371          void lcdflag() 
 372          {
 373   1         lcd_wcmd(0x08);   
 374   1         delay(400);
 375   1         lcd_wcmd(0x0c);   
 376   1         delay(400);
 377   1         lcd_wcmd(0x08);   
 378   1         delay(400);
 379   1         lcd_wcmd(0x0c);   
 380   1         delay(400);
 381   1         lcd_wcmd(0x08);   
 382   1         delay(200); 
 383   1         lcd_wcmd(0x0c);   
 384   1         delay(5);
 385   1         lcd_wcmd(0x01);   
 386   1         delay(5);
 387   1      }
 388          /*********************************************************
 389          *                                                        *
 390          * 图形显示                                               *
 391          *                                                        *
 392          *********************************************************/
 393          void photodisplay(uchar *bmp)   
 394          { 
 395   1        uchar i,j;
 396   1      
 397   1        lcd_wcmd(0x34);        //写数据时,关闭图形显示
 398   1      
 399   1        for(i=0;i<32;i++)
 400   1        {
 401   2          lcd_wcmd(0x80+i);    //先写入水平坐标值
 402   2          lcd_wcmd(0x80);      //写入垂直坐标值
 403   2          for(j=0;j<16;j++)   //再写入两个8位元的数据    
 404   2          lcd_wdat(*bmp++);     
 405   2          delay1(1);
 406   2        }
 407   1      
 408   1        for(i=0;i<32;i++)
 409   1        { 
 410   2          lcd_wcmd(0x80+i);
 411   2          lcd_wcmd(0x88);
 412   2          for(j=0;j<16;j++)         
 413   2              lcd_wdat(*bmp++);    
 414   2              delay1(1);
 415   2        }
 416   1        lcd_wcmd(0x36);       //写完数据,开图形显示 
 417   1      }
 418          /*********************************************************
 419          *                                                        *
 420          * 清屏函数                                               *
 421          *                                                        *
 422          *********************************************************/
 423          void  clr_screen()
 424          {
 425   1         lcd_wcmd(0x34);      //扩充指令操作
 426   1         delay(5);    
 427   1         lcd_wcmd(0x30);      //基本指令操作
C51 COMPILER V7.10   12864BK                                                               08/02/2009 18:45:50 PAGE 8   

 428   1         delay(5); 
 429   1         lcd_wcmd(0x01);      //清屏 
 430   1         delay(5);     
 431   1      }
 432          /**********************************************************
 433          ; 显示字符表代码
 434          **********************************************************/
 435          void  bytecode()
 436          {
 437   1         uchar  s;
 438   1         clr_screen();          //清屏    
 439   1         lcd_wcmd(0x80);        //设置显示位置为第一行  
 440   1         for(s=0;s<16;s++)
 441   1         {
 442   2           lcd_wdat(0x30+s); 
 443   2         }
 444   1         lcd_wcmd(0x90);        //设置显示位置为第二行 
 445   1         for(s=0;s<16;s++)
 446   1         {
 447   2           lcd_wdat(0x40+s); 
 448   2         }
 449   1         lcd_wcmd(0x88);        //设置显示位置为第三行  
 450   1         for(s=0;s<16;s++)
 451   1         {
 452   2           lcd_wdat(0x50+s); 
 453   2         }
 454   1         lcd_wcmd(0x98);       //设置显示位置为第四行   
 455   1         for(s=0;s<16;s++)
 456   1         {
 457   2           lcd_wdat(0x60+s); 
 458   2         }
 459   1      }
 460          /*********************************************************
 461          *                                                        *
 462          * 主函数                                                 *
 463          *                                                        *
 464          *********************************************************/
 465          void main()
 466          {
 467   1         uchar i;
 468   1         delay(100);                 //上电,等待稳定
 469   1         lcd_init();                 //初始化LCD
 470   1         while(1)
 471   1         {
 472   2           lcd_pos(1,0);             //设置显示位置为第一行
 473   2           for(i=0;i<16;i++)
 474   2           {
 475   3             lcd_wdat(DIS1[i]);
 476   3             delay(30);
 477   3           }
 478   2      
 479   2           lcd_pos(2,0);             //设置显示位置为第二行
 480   2           for(i=0;i<16;i++)
 481   2           {
 482   3             lcd_wdat(DIS2[i]);
 483   3             delay(30);
 484   3           }
 485   2           lcd_pos(3,0);             //设置显示位置为第三行
 486   2           for(i=0;i<16;i++)
 487   2           {
 488   3             lcd_wdat(DIS3[i]);
 489   3             delay(30);
C51 COMPILER V7.10   12864BK                                                               08/02/2009 18:45:50 PAGE 9   

 490   3           }
 491   2           lcd_pos(4,0);             //设置显示位置为第四行
 492   2           for(i=0;i<16;i++)
 493   2           {
 494   3             lcd_wdat(DIS4[i]);
 495   3             delay(30);
 496   3           }
 497   2           delay(1000);
 498   2           lcdflag();
 499   2           clr_screen();             //清屏        
 500   2           photodisplay(Photo1);     //显示图片1
 501   2           delay(2000);    
 502   2           clr_screen();             //清屏
 503   2           photodisplay(Photo2);     //显示图片2
 504   2           delay(2000);
 505   2           bytecode();               //显示字符表代码
 506   2           delay(2000);
 507   2           clr_screen();  
 508   2         }
 509   1      }
 510          /*********************************************************/
 511          
 512          
 513          
 514          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    715    ----
   CONSTANT SIZE    =   2116    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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