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

📄 lcd.lst

📁 本人开发的测量水的浊度的仪器
💻 LST
📖 第 1 页 / 共 4 页
字号:
 470          
 471                  if(idx == 0xff)
 472                          return;
 473          
 474                  setcursordirection(CURSORDOWN);
 475                  setcursoraddr(addr);
 476                  writecmd(0x42);
 477                  for(j=0;j<8;j++)
 478                  {
 479                          writedat(font8[idx].fontdat[j]);
 480                  }
 481          }
 482          */
 483          void printchar16(unsigned short addr,unsigned short ch)
 484          {
 485   1              unsigned char i,j,idx,c1,c2;
 486   1              unsigned char lo,hi;
 487   1      
 488   1              idx = 0xff;
 489   1              lo = ch&0xff;
 490   1              hi = ch>>8;
 491   1              for(i=0;i<sizeof(font16)/sizeof(Font16);i++)
 492   1              {
 493   2                      c1 = font16[i].fontcode[0];
 494   2                      c2 = font16[i].fontcode[1];
 495   2                      if(c2 == lo && c1 == hi)
 496   2                      {
 497   3                              idx = i;
 498   3                              break;
 499   3                      }
 500   2              }
 501   1      
 502   1              if(idx == 0xff)
C51 COMPILER V7.06   LCD                                                                   04/09/2005 13:15:56 PAGE 13  

 503   1                      return;
 504   1      
 505   1              setcursordirection(CURSORDOWN);
 506   1              for(i=0;i<2;i++)
 507   1              {
 508   2                      setcursoraddr(addr+i);
 509   2                      writecmd(0x42);
 510   2                      for(j=i;j<32;j+=2)
 511   2                      {
 512   3                              writedat(font16[idx].fontdat[j]);
 513   3                      }
 514   2              }
 515   1      }
 516          
 517          void printchar16x(unsigned short addr,unsigned char ch)
 518          {
 519   1              unsigned char i,j,idx;
 520   1      
 521   1              for(i=0;i<sizeof(font16x)/sizeof(Font16X);i++)
 522   1              {
 523   2                      if(ch == font16x[i].fontcode)
 524   2                      {
 525   3                              idx = i;
 526   3                              break;
 527   3                      }
 528   2              }
 529   1      
 530   1              setcursordirection(CURSORDOWN);
 531   1              for(i=0;i<2;i++)
 532   1              {
 533   2                      setcursoraddr(addr+i);
 534   2                      writecmd(0x42);
 535   2                      for(j=i;j<64;j+=2)
 536   2                      {
 537   3                              writedat(font16x[idx].fontdat[j]);
 538   3                      }
 539   2              }
 540   1      }
 541          
 542          void printchar32(unsigned short addr,unsigned short ch)
 543          {
 544   1              unsigned char i,j,idx,c1,c2;
 545   1              unsigned char lo,hi;
 546   1      
 547   1              idx = 0xff;
 548   1              lo = ch&0xff;
 549   1              hi = ch>>8;
 550   1              for(i=0;i<sizeof(font32)/sizeof(Font32);i++)
 551   1              {
 552   2                      c1 = font32[i].fontcode[0];
 553   2                      c2 = font32[i].fontcode[1];
 554   2                      if(c2 == lo && c1 == hi)
 555   2                      {
 556   3                              idx = i;
 557   3                              break;
 558   3                      }
 559   2              }
 560   1      
 561   1              if(idx == 0xff)
 562   1                      return;
 563   1      
 564   1              setcursordirection(CURSORDOWN);
C51 COMPILER V7.06   LCD                                                                   04/09/2005 13:15:56 PAGE 14  

 565   1              for(i=0;i<4;i++)
 566   1              {
 567   2                      setcursoraddr(addr+i);
 568   2                      writecmd(0x42);
 569   2                      for(j=i;j<128;j+=4)
 570   2                      {
 571   3                              writedat(font32[idx].fontdat[j]);
 572   3                      }
 573   2              }
 574   1      }
 575          /*
 576          void printstring8(unsigned char area,unsigned char x,unsigned char y,unsigned char *pstr)
 577          {
 578                  unsigned char c;
 579                  unsigned short addr;
 580          
 581                  if(pstr == 0 || area > 3)
 582                          return;
 583          
 584                  addr = x+y*320+area*0x4000;
 585          
 586                  while(c = *pstr++)
 587                  {
 588                          printchar8(addr++,c);
 589                  }
 590          }
 591          */
 592          void printstring16(unsigned char area,unsigned char x,unsigned char y,unsigned char *pstr)
 593          {
 594   1              unsigned char c;
 595   1              unsigned short tmp;
 596   1              unsigned short addr;
 597   1      
 598   1              if(pstr == 0 || area > 3)
 599   1                      return;
 600   1      
 601   1              addr = x+y*320+area*0x4000;
 602   1      
 603   1              while(c = *pstr++)
 604   1              {
 605   2                      tmp = c<<8;
 606   2                      if(c&0x80)
 607   2                      {
 608   3                              tmp |= *pstr++;
 609   3                      }
 610   2                      printchar16(addr,tmp);
 611   2                      addr += 2;
 612   2              }
 613   1      }
 614          
 615          void printstring16x(unsigned char area,unsigned char x,unsigned char y,unsigned char *pstr)
 616          {
 617   1              unsigned char c;
 618   1              unsigned short addr;
 619   1      
 620   1              if(pstr == 0 || area > 3)
 621   1                      return;
 622   1      
 623   1              addr = x+y*320+area*0x4000;
 624   1      
 625   1              while(c = *pstr++)
 626   1              {
C51 COMPILER V7.06   LCD                                                                   04/09/2005 13:15:56 PAGE 15  

 627   2                      printchar16x(addr,c);
 628   2                      addr += 3;
 629   2              }
 630   1      }
 631          
 632          void printstring32(unsigned char area,unsigned char x,unsigned char y,unsigned char *pstr)
 633          {
 634   1              unsigned char c;
 635   1              unsigned short tmp;
 636   1              unsigned short addr;
 637   1      
 638   1              if(pstr == 0 || area > 3)
 639   1                      return;
 640   1      
 641   1              addr = x+y*320+area*0x4000;
 642   1      
 643   1              while(c = *pstr++)
 644   1              {
 645   2                      tmp = c<<8;
 646   2                      if(c&0x80)
 647   2                      {
 648   3                              tmp |= *pstr++;
 649   3                      }
 650   2                      printchar32(addr,tmp);
 651   2                      addr += 4;
 652   2              }
 653   1      }
 654          /*
 655          static uchar cursorx,cursory;
 656          void clearcursor()
 657          {
 658                  unsigned short addr,i;
 659                  setcursordirection(CURSORDOWN);
 660                  addr = 0x4000+cursorx+cursory*320;
 661                  setcursoraddr(addr);
 662                  writecmd(0x42);
 663                  for(i=0;i<8;i++)
 664                          writedat(0x00);
 665                  setcursoraddr(addr+1);
 666                  writecmd(0x42);
 667                  for(i=0;i<8;i++)
 668                          writedat(0x00);
 669          }
 670          
 671          void setcursorpos(uchar x,uchar y)
 672          {
 673                  unsigned short addr,i;
 674          
 675                  clearcursor();
 676                  cursorx = x;
 677                  cursory = y;
 678          
 679                  setcursordirection(CURSORDOWN);
 680                  addr = 0x4000+x+y*320;
 681                  setcursoraddr(addr);
 682                  writecmd(0x42);
 683                  for(i=0;i<8;i++)
 684                          writedat(0x1f);
 685                  setcursoraddr(addr+1);
 686                  writecmd(0x42);
 687                  for(i=0;i<8;i++)
 688                          writedat(0xf8);
C51 COMPILER V7.06   LCD                                                                   04/09/2005 13:15:56 PAGE 16  

 689          }
 690          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1273    ----
   CONSTANT SIZE    =   6782    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      36
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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