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

📄 sed1520.lst

📁 单片机51系列的122*32的某液晶驱动程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 416   1                                                                              //设置页
 417   1              temp=(y>>3);
 418   1              LCDWriteCom1(0xb8|(temp&3));
 419   1              LCDWriteCom2(0xb8|(temp&3));
 420   1      
 421   1              if(x<MAXCOL)
 422   1              {       
 423   2                      
 424   2                      LCDWriteCom1(x);                                                //设置行
 425   2                      LCDWriteCom1(0xe0);                     //打开改写模式
 426   2                      dat=LCDReadDat1();                                      //读数据
 427   2      //              if(COLOR==0)dat=dat&(!(1<<(y%8)));      //计算要写数据
C51 COMPILER V7.07   SED1520                                                               04/09/2004 23:25:03 PAGE 8   

 428   2                              dat=dat|(1<<(y%8));
 429   2                      LCDWriteDat1(dat);                                      //写数据
 430   2                      LCDWriteCom1(0xee);                     //关闭改写模式
 431   2      
 432   2              }
 433   1              else
 434   1        if(x>MAXCOL)
 435   1              {       LCDWriteCom2(x-MAXCOL);                         //设置行
 436   2                      LCDWriteCom2(0xe0);                             //打开改写模式
 437   2                      dat=LCDReadDat2();                                      //读数据
 438   2              //      if(COLOR==0)            dat=dat&(!(1<<(y%8)));//计算要写数据
 439   2                                      dat=dat|(1<<(y%8));     
 440   2                      LCDWriteDat2(dat);                      //写数据
 441   2                      LCDWriteCom2(0xee);                             //关闭改写模式
 442   2              }
 443   1      }
 444          
 445          void LCDDrawLine(unsigned char col,unsigned char y )   
 446          {
 447   1              char i,y0,ym,page0,page1,temp,dat=0;
 448   1              
 449   1          y0=y>>3;
 450   1              page1=y>>3;
 451   1              ym=y%8;
 452   1         if(col<=MAXCOL)
 453   1         {
 454   2           if(y0!=0)
 455   2                {    
 456   3                          page0=4-y0;
 457   3                              
 458   3                              for(i=page0;i<=3;i++)
 459   3                          {
 460   4                                  LCDWriteCom1(col);
 461   4                                      LCDWriteCom1(0xb8|(i&3));       //设定显示页
 462   4                                  LCDWriteDat1(0xff);
 463   4                              }
 464   3                              page1=3-page1;
 465   3                              LCDWriteCom1(col);
 466   3                              LCDWriteCom1(0xb8|(page1&3));   //设定显示页
 467   3                      ym=8-ym;
 468   3                     for(i=ym;i<=7;i++)
 469   3                     { dat=dat+Square(i);}
 470   3                       LCDWriteDat1(dat);
 471   3                }
 472   2                if(y0==0) 
 473   2                {
 474   3                      page1=3-page1;
 475   3                      LCDWriteCom1(col);
 476   3                              LCDWriteCom1(0xb8|(page1&3));   //设定显示页
 477   3                      ym=8-ym;
 478   3                     for(i=ym;i<=7;i++)
 479   3                     { dat=dat+Square(i);}
 480   3                       LCDWriteDat1(dat);
 481   3                }
 482   2                if(y0<=2)
 483   2                {temp=2-y0;
 484   3                    for(i=0;i<=temp;i++)
 485   3                        {
 486   4                              LCDWriteCom1(col);
 487   4                                      LCDWriteCom1(0xb8|(i&3));       //设定显示页
 488   4                                  LCDWriteDat1(0x00);
 489   4                         }
C51 COMPILER V7.07   SED1520                                                               04/09/2004 23:25:03 PAGE 9   

 490   3                }           
 491   2          }
 492   1              else
 493   1              {
 494   2            if(y0!=0)
 495   2                {
 496   3                          page0=4-y0;
 497   3                              for(i=page0;i<=3;i++)
 498   3                          {
 499   4                                  LCDWriteCom2(col-MAXCOL);
 500   4                                      LCDWriteCom2(0xb8|(i&3));       //设定显示页
 501   4                                  LCDWriteDat2(0xff);
 502   4                              }
 503   3                              page1=3-page1;
 504   3                              LCDWriteCom2(col-MAXCOL);
 505   3                              LCDWriteCom2(0xb8|(page1&3));   //设定显示页
 506   3                      ym=8-ym;
 507   3                     for(i=ym;i<=7;i++)
 508   3                     { dat=dat+Square(i);}
 509   3                       LCDWriteDat2(dat);
 510   3                }
 511   2                if(y0==0)
 512   2                {
 513   3                     page1=3-page1;
 514   3                      LCDWriteCom2(col-MAXCOL);
 515   3                              LCDWriteCom2(0xb8|(page1&3));   //设定显示页
 516   3                      ym=8-ym;
 517   3                     for(i=ym;i<=7;i++)
 518   3                     { dat=dat+Square(i);}
 519   3                       LCDWriteDat2(dat);
 520   3                }
 521   2                if(y0<=2)
 522   2                {temp=2-y0;
 523   3                    for(i=0;i<=temp;i++)
 524   3                        {
 525   4                              LCDWriteCom2(col-MAXCOL);
 526   4                                      LCDWriteCom2(0xb8|(i&3));       //设定显示页
 527   4                                  LCDWriteDat2(0x00);
 528   4                         }
 529   3                }           
 530   2          
 531   2              }
 532   1             
 533   1      }
 534          
 535          
 536          void LCDDrawDatM2(char col, char i, char *pdat)
 537          {
 538   1              char j;
 539   1              unsigned char length;
 540   1      
 541   1              length = 8;
 542   1              if ((col+length) < MAXCOL)
 543   1              {
 544   2                       LCDWriteCom1(col);
 545   2                      LCDWriteCom1(0xb8|(i&3));       //设定显示页
 546   2                      for(j=col; j<col+length; j++)
 547   2                              LCDWriteDat1(*(pdat+(j-col)));
 548   2                      return;
 549   2              }
 550   1              if (((col+length) >= MAXCOL)&&(col<MAXCOL))
 551   1              {
C51 COMPILER V7.07   SED1520                                                               04/09/2004 23:25:03 PAGE 10  

 552   2                      LCDWriteCom1(col);
 553   2                      LCDWriteCom1(0xb8|(i&3));       //设定显示页
 554   2                      for(j=col; j<MAXCOL; j++)
 555   2                              LCDWriteDat1(*(pdat+(j-col)));
 556   2                      
 557   2                      LCDWriteCom2(0);
 558   2                      LCDWriteCom2(0xb8|(i&3));       //设定显示页
 559   2                      for(j=0; j<MAXCOL; j++)
 560   2                      {
 561   3                              LCDWriteDat2(*(pdat+(MAXCOL-col+j)));
 562   3                              if ((MAXCOL-col+j) >= length)
 563   3                                      break;
 564   3                      }
 565   2                      return;
 566   2              }
 567   1              else
 568   1              {
 569   2                      LCDWriteCom2(col-MAXCOL);
 570   2                      LCDWriteCom2(0xb8|(i&3));       //设定显示页
 571   2                      for(j=col-MAXCOL; j<MAXCOL; j++)
 572   2                      {
 573   3                              LCDWriteDat2(*(pdat+(j-col+MAXCOL)));
 574   3                              if ((j-col+MAXCOL) >= length)
 575   3                                      break;
 576   3                      }
 577   2              }
 578   1      }
 579          
 580          void LCDDrawDatM2_Opposition(char col, char i, char *pdat)
 581          {
 582   1              char j;
 583   1              unsigned char length;
 584   1      
 585   1              length = 8;
 586   1              if ((col+length) < MAXCOL)
 587   1              {
 588   2                       LCDWriteCom1(col);
 589   2                      LCDWriteCom1(0xb8|(i&3));       //设定显示页
 590   2                      for(j=col; j<col+length; j++)
 591   2                              LCDWriteDat1( 0xff-(*(pdat+(j-col))) );
 592   2                      return;
 593   2              }
 594   1              if (((col+length) >= MAXCOL)&&(col<MAXCOL))
 595   1              {
 596   2                      LCDWriteCom1(col);
 597   2                      LCDWriteCom1(0xb8|(i&3));       //设定显示页
 598   2                      for(j=col; j<MAXCOL; j++)
 599   2                              LCDWriteDat1(0xff-(*(pdat+(j-col))) );
 600   2                      
 601   2                      LCDWriteCom2(0);
 602   2                      LCDWriteCom2(0xb8|(i&3));       //设定显示页
 603   2                      for(j=0; j<MAXCOL; j++)
 604   2                      {
 605   3                              LCDWriteDat2(0xff-(*(pdat+(MAXCOL-col+j))) );
 606   3                              if ((MAXCOL-col+j) >= length)
 607   3                                      break;
 608   3                      }
 609   2                      return;
 610   2              }
 611   1              else
 612   1              {
 613   2                      LCDWriteCom2(col-MAXCOL);
C51 COMPILER V7.07   SED1520                                                               04/09/2004 23:25:03 PAGE 11  

 614   2                      LCDWriteCom2(0xb8|(i&3));       //设定显示页
 615   2                      for(j=col-MAXCOL; j<MAXCOL; j++)
 616   2                      {
 617   3                              LCDWriteDat2(0xff-(*(pdat+(j-col+MAXCOL))) );
 618   3                              if ((j-col+MAXCOL) >= length)
 619   3                                      break;
 620   3                      }
 621   2              }
 622   1      }
 623          
 624          void LcdTextOut_Opposition(char col, char page, char *string)
 625          {

⌨️ 快捷键说明

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