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

📄 1.lst

📁 LCD1602.rar
💻 LST
📖 第 1 页 / 共 2 页
字号:
 286   2                      P3=0x13;
 287   2                      while(!busy);
 288   2                      }
 289   1              if (right==0)
 290   1                      {
 291   2                      P3=0x0b;
 292   2                      while(!busy);
 293   2                      }
 294   1              }
 295          
 296          void cmd_w(char cmd,char right)
 297                  {
 298   1              busy_check(right);
 299   1              if (right==1)
 300   1                      {
 301   2                      P3=0x10;
 302   2                      }
 303   1              if (right==0)
C51 COMPILER V8.04   1                                                                     06/07/2006 12:29:10 PAGE 6   

 304   1                      {
 305   2                      P3=0x08;
 306   2                      P3=0x08;
 307   2                      }
 308   1              P2=cmd;
 309   1              pulse();
 310   1              }
 311          
 312          void data_w(char dat,char right)
 313                  {
 314   1              busy_check(right);
 315   1              if (right==1)
 316   1                      {
 317   2                      P3=0x14;
 318   2                      }
 319   1              if (right==0)
 320   1                      {
 321   2                      P3=0x0c;
 322   2                      }
 323   1              P2=dat;
 324   1              pulse();
 325   1              }
 326          
 327          void lcd_init()
 328                  {
 329   1              unsigned int i;
 330   1              cmd_w(0x3e+1,0);//显示开关
 331   1              cmd_w(0xc0+0,0);//修改显示起始行
 332   1              cmd_w(0xb8+0,0);//修改页地址
 333   1              cmd_w(0x40+0,0);//修改列地址
 334   1              cmd_w(0x3e+1,1);
 335   1              cmd_w(0xc0+0,1);
 336   1              cmd_w(0xb8+0,1);
 337   1              cmd_w(0x40+0,1);
 338   1              for(i=0;i<256;i++)
 339   1                      {
 340   2                      data_w(0x00,0);
 341   2                      }
 342   1      
 343   1              cmd_w(0xb8+4,0);
 344   1              cmd_w(0x40+8,0);
 345   1              for(i=0;i<256;i++)
 346   1                      {
 347   2                      data_w(0x00,0);
 348   2                      }
 349   1      
 350   1              for(i=0;i<256;i++)
 351   1                      {
 352   2                      data_w(0x00,1);
 353   2                      }
 354   1      
 355   1              cmd_w(0xb8+4,1);
 356   1              cmd_w(0x40+8,1);
 357   1              for(i=0;i<256;i++)
 358   1                      {
 359   2                      data_w(0x00,1);
 360   2                      }
 361   1              }
 362          
 363          char chang(char a)
 364                  {
 365   1              char temp,i;
C51 COMPILER V8.04   1                                                                     06/07/2006 12:29:10 PAGE 7   

 366   1              for(i=0;i<8;i++)
 367   1                      {
 368   2                      temp<<=1;
 369   2                      temp|=(a&0x01);
 370   2                      a>>=1;
 371   2                      }
 372   1              return(temp);
 373   1              }
 374          
 375          void hanzi_w(char hang,char lie,char zhi[32])
 376                  {
 377   1              unsigned char i;
 378   1              if(lie<4)
 379   1                      {
 380   2                      cmd_w(0xb8+2*hang,0);
 381   2                      cmd_w(0x40+16*lie,0);
 382   2                      for(i=0;i<32;i+=2)
 383   2                              data_w(chang(zhi[i]),0);
 384   2                      }
 385   1              else
 386   1                      {
 387   2                      cmd_w(0xb8+2*hang,1);
 388   2                      cmd_w(0x40+16*(lie-4),1);
 389   2                      for(i=0;i<32;i+=2)
 390   2                              data_w(chang(zhi[i]),1);
 391   2                      }
 392   1              if(lie<4)
 393   1                      {
 394   2                      cmd_w(0xb8+2*hang+1,0);
 395   2                      cmd_w(0x40+16*lie,0);
 396   2                      for(i=1;i<32;i+=2)
 397   2                              data_w(chang(zhi[i]),0);
 398   2                      }
 399   1              else
 400   1                      {
 401   2                      cmd_w(0xb8+2*hang+1,1);
 402   2                      cmd_w(0x40+16*(lie-4),1);
 403   2                      for(i=1;i<32;i+=2)
 404   2                              data_w(chang(zhi[i]),1);
 405   2                      }
 406   1              }
 407          
 408          void zifu_w(char hang,char lie,char zhi[8])
 409                  {
 410   1              unsigned char i;
 411   1              if(lie<8)
 412   1                      {
 413   2                      cmd_w(0xb8+hang,0);
 414   2                      cmd_w(0x40+8*lie,0);
 415   2                      for(i=0;i<5;i++)
 416   2                              data_w(chang(zhi[i]),0);
 417   2                      }
 418   1              else
 419   1                      {
 420   2                      cmd_w(0xb8+hang,1);
 421   2                      cmd_w(0x40+8*(lie-8),1);
 422   2                      for(i=0;i<5;i++)
 423   2                              data_w(chang(zhi[i]),1);
 424   2                      }
 425   1              }
 426          
 427          void bmp_w(char a[])
C51 COMPILER V8.04   1                                                                     06/07/2006 12:29:10 PAGE 8   

 428                  {
 429   1              unsigned int i;
 430   1              cmd_w(0xb8+0,0);//修改页地址
 431   1              cmd_w(0x40+0,0);//修改列地址
 432   1              for(i=0;i<64;i++)
 433   1                      {
 434   2                      data_w(chang(a[i]),0);
 435   2                      }
 436   1              cmd_w(0xb8+0,1);
 437   1              cmd_w(0x40+0,1);
 438   1              for(i=64;i<128;i++)
 439   1                      {
 440   2                      data_w(chang(a[i]),1);
 441   2                      }
 442   1              cmd_w(0xb8+1,0);
 443   1              cmd_w(0x40+0,0);
 444   1              for(i=128;i<192;i++)
 445   1                      {
 446   2                      data_w(chang(a[i]),0);
 447   2                      }
 448   1              cmd_w(0xb8+1,1);
 449   1              cmd_w(0x40+0,1);
 450   1              for(i=192;i<256;i++)
 451   1                      {
 452   2                      data_w(chang(a[i]),1);
 453   2                      }
 454   1              cmd_w(0xb8+2,0);
 455   1              cmd_w(0x40+0,0);
 456   1              for(i=256;i<320;i++)
 457   1                      {
 458   2                      data_w(chang(a[i]),0);
 459   2                      }
 460   1              cmd_w(0xb8+2,1);
 461   1              cmd_w(0x40+0,1);
 462   1              for(i=320;i<384;i++)
 463   1                      {
 464   2                      data_w(chang(a[i]),1);
 465   2                      }
 466   1              cmd_w(0xb8+3,0);//修改页地址
 467   1              cmd_w(0x40+0,0);//修改列地址
 468   1              for(i=384;i<448;i++)
 469   1                      {
 470   2                      data_w(chang(a[i]),0);
 471   2                      }
 472   1              cmd_w(0xb8+3,1);
 473   1              cmd_w(0x40+0,1);
 474   1              for(i=448;i<512;i++)
 475   1                      {
 476   2                      data_w(chang(a[i]),1);
 477   2                      }
 478   1              cmd_w(0xb8+4,0);
 479   1              cmd_w(0x40+0,0);
 480   1              for(i=512;i<576;i++)
 481   1                      {
 482   2                      data_w(chang(a[i]),0);
 483   2                      }
 484   1              cmd_w(0xb8+4,1);
 485   1              cmd_w(0x40+0,1);
 486   1              for(i=576;i<640;i++)
 487   1                      {
 488   2                      data_w(chang(a[i]),1);
 489   2                      }
C51 COMPILER V8.04   1                                                                     06/07/2006 12:29:10 PAGE 9   

 490   1              cmd_w(0xb8+5,0);
 491   1              cmd_w(0x40+0,0);
 492   1              for(i=640;i<704;i++)
 493   1                      {
 494   2                      data_w(chang(a[i]),0);
 495   2                      }
 496   1              cmd_w(0xb8+5,1);
 497   1              cmd_w(0x40+0,1);
 498   1              for(i=704;i<768;i++)
 499   1                      {
 500   2                      data_w(chang(a[i]),1);
 501   2                      }
 502   1              cmd_w(0xb8+6,0);
 503   1              cmd_w(0x40+0,0);
 504   1              for(i=768;i<832;i++)
 505   1                      {
 506   2                      data_w(chang(a[i]),0);
 507   2                      }
 508   1              cmd_w(0xb8+6,1);
 509   1              cmd_w(0x40+0,1);
 510   1              for(i=832;i<896;i++)
 511   1                      {
 512   2                      data_w(chang(a[i]),1);
 513   2                      }
 514   1              cmd_w(0xb8+7,0);
 515   1              cmd_w(0x40+0,0);
 516   1              for(i=896;i<960;i++)
 517   1                      {
 518   2                      data_w(chang(a[i]),0);
 519   2                      }
 520   1              cmd_w(0xb8+7,1);
 521   1              cmd_w(0x40+0,1);
 522   1              for(i=960;i<1024;i++)
 523   1                      {
 524   2                      data_w(chang(a[i]),1);
 525   2                      }
 526   1              }
 527          
 528          void delay(unsigned char a)
 529                  {
 530   1              unsigned char i,j;
 531   1              for(i=0;i<a;i++)
 532   1                      for(j=0;j<200;j++)
 533   1                              ;
 534   1              }
 535          
 536          void main()
 537                  {
 538   1              lcd_init();
 539   1              bmp_w(nBitmapDot);
 540   1              while(1)
 541   1                      {
 542   2                      delay(200);
 543   2                      delay(200);
 544   2                      delay(200);
 545   2                      delay(200);
 546   2                      delay(200);
 547   2                      delay(200);
 548   2                      delay(200);
 549   2                      delay(200);
 550   2                      bmp_w(nBitmapDot1);
 551   2                      delay(200);
C51 COMPILER V8.04   1                                                                     06/07/2006 12:29:10 PAGE 10  

 552   2                      delay(200);
 553   2                      delay(200);
 554   2                      delay(200);
 555   2                      delay(200);
 556   2                      delay(200);
 557   2                      delay(200);
 558   2                      delay(200);
 559   2                      bmp_w(nBitmapDot);
 560   2                      }
 561   1              }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1384    ----
   CONSTANT SIZE    =   2048    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      15
   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 + -