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

📄 lcddrive12864.lst

📁 Keil单片机软件开发平台下的一个51系列单片机工程
💻 LST
📖 第 1 页 / 共 4 页
字号:
 535   2          }
 536   1      }
 537          /*********************************************************************************************************
 538          ** 函数名称: Display16X8Item
 539          ** 功能描述: 在指定的行列绘一16X8点阵数组
 540          ** 输 入:   DotNot的bit0~3:在液晶上的反显起始列0~15,bit4~7:反显个数
 541          ** 输 出:   
 542          ** 全局变量:
 543          ** 调用模块:
 544          **
 545          ** 作 者: 刘宝贵
 546          ** 日 期: 2005年12月16日
 547          **-------------------------------------------------------------------------------------------------------
 548          ** 修改人:
 549          ** 日 期:
 550          **-------------------------------------------------------------------------------------------------------
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 10  

 551          *********************************************************************************************************/
 552          void Display16X8ItemWord(uint8 dlcdrow,uint8 item,uint8 DotNot)
 553          {
 554   1          uint8 i,j;
 555   1          lcdinit();//                                  //left and right show open//
 556   1          j = (DotNot>>4) & 0x0F;
 557   1          DotNot = DotNot & 0x0F;
 558   1          for(i=0;i<16;i++)
 559   1          {
 560   2              if(mb[item][i]=='`')
 561   2              {
 562   3                  continue;
 563   3              }
 564   2              if(i>DotNot && j>0)
 565   2              {
 566   3                  Display16X8(dlcdrow,i*8, mb[item][i],1);
 567   3                  j--;
 568   3              }
 569   2              else
 570   2              {
 571   3                  Display16X8(dlcdrow,i*8, mb[item][i],0);
 572   3              }
 573   2          }
 574   1      }
 575          /*********************************************************************************************************
 576          ** 函数名称: void Display16X8ItemData(uint8 lcdrow,uint8 lcdline,uint8 item,uint8 DotNot,uint8 style);
 577          ** 功能描述: DotNot bit0~7为1则对应位反显
 578          ** 输 入:   style:bit7为0显示前导0;bit0~3:显示数据的个数,bit4~6:小数点后起位位置。
 579          ** 输 出:   
 580          ** 全局变量:
 581          ** 调用模块:
 582          **
 583          ** 作 者: 刘宝贵
 584          ** 日 期: 2005年1月26日
 585          **-------------------------------------------------------------------------------------------------------
 586          ** 修改人:
 587          ** 日 期:
 588          **-------------------------------------------------------------------------------------------------------
 589          *********************************************************************************************************/
 590          void Display16X8ItemData(uint8 lcdrow,uint8 lcdline,uint16 temp16,uint8 DotNot,uint8 style)
 591          {
 592   1          uint8 number;
 593   1          bit dispzero;
 594   1          number = style &0x0F;                           //取出显示数据的个数
 595   1          dispzero = (bit)(style & 0x80);                 //取出是否显示前导0位。
 596   1          style = (style >>4)&0x07;                       //取出小数点后起位位置
 597   1          lcdinit();                                      //left and right show open
 598   1          switch(style)
 599   1          {
 600   2              case 0://无小数点
 601   2              {
 602   3                  Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
 603   3                  lcdline-=8;
 604   3                  DotNot = DotNot>>1;
 605   3                  if(number>1)
 606   3                  {
 607   4                      if(dispzero)//显示前导0
 608   4                      {
 609   5                          Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
 610   5                      }
 611   4                      else//不显示前导0
 612   4                      {
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 11  

 613   5                          Display16X8(lcdrow, lcdline,(temp16>=10) ? (temp16/10)%10+0x30 : ' ',(bit)(DotNot&1) )
             -;
 614   5                      }
 615   4                      DotNot = DotNot>>1;
 616   4                      lcdline-=8;
 617   4                      if(number>2)
 618   4                      {
 619   5                          if(dispzero)//显示前导0
 620   5                          {
 621   6                              Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
 622   6                          }
 623   5                          else//不显示前导0
 624   5                          {
 625   6                              Display16X8(lcdrow, lcdline,(temp16>=100) ? (temp16/100)%10+0x30 : ' ',(bit)(DotNo
             -t&1) );
 626   6                          }
 627   5                          DotNot = DotNot>>1;
 628   5                          lcdline-=8;
 629   5                          if(number>3)
 630   5                          {
 631   6                              if(dispzero)//显示前导0
 632   6                              {
 633   7                                  Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
 634   7                              }
 635   6                              else//不显示前导0
 636   6                              {
 637   7                                  Display16X8(lcdrow, lcdline,(temp16>=1000) ? (temp16/1000)%10+0x30 : ' ',(bit)
             -(DotNot&1) );
 638   7                              }
 639   6                              DotNot = DotNot>>1;
 640   6                              lcdline-=8;
 641   6                              if(number>4)
 642   6                              {
 643   7                                  if(dispzero)//显示前导0
 644   7                                  {
 645   8                                      Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
 646   8                                  }
 647   7                                  else//不显示前导0
 648   7                                  {
 649   8                                      Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' '
             -,(bit)(DotNot&1) );
 650   8                                  }
 651   7                              }
 652   6                          }
 653   5                      }
 654   4                  }
 655   3              }break;
 656   2              case 1://小数点后1位
 657   2              {
 658   3                  Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
 659   3                  lcdline-=8;
 660   3                  DotNot = DotNot>>1;
 661   3                  Display16X8(lcdrow, lcdline,'.',(bit)(DotNot&1));
 662   3                  DotNot = DotNot>>1;
 663   3                  lcdline-=8;
 664   3                  Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
 665   3                  DotNot = DotNot>>1;
 666   3                  lcdline-=8;
 667   3                  if(number>2)
 668   3                  {
 669   4                      if(dispzero)//显示前导0
 670   4                      {
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 12  

 671   5                          Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
 672   5                      }
 673   4                      else//不显示前导0
 674   4                      {
 675   5                          Display16X8(lcdrow, lcdline,(temp16>=100) ? (temp16/100)%10+0x30 : ' ',(bit)(DotNot&1)
             - );
 676   5                      }
 677   4                      DotNot = DotNot>>1;
 678   4                      lcdline-=8;
 679   4                      if(number>3)
 680   4                      {
 681   5                          if(dispzero)//显示前导0
 682   5                          {
 683   6                              Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
 684   6                          }
 685   5                          else//不显示前导0
 686   5                          {
 687   6                              Display16X8(lcdrow, lcdline,(temp16>=1000) ? (temp16/1000)%10+0x30 : ' ',(bit)(Dot
             -Not&1) );
 688   6                          }
 689   5                          DotNot = DotNot>>1;
 690   5                          lcdline-=8;
 691   5                          if(number>4)
 692   5                          {
 693   6                              if(dispzero)//显示前导0
 694   6                              {
 695   7                                  Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
 696   7                              }
 697   6                              else//不显示前导0
 698   6                              {
 699   7                                  Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' ',(bi
             -t)(DotNot&1) );
 700   7                              }
 701   6                          }
 702   5                      }
 703   4                  }
 704   3              }break;
 705   2              case 2://小数点后2位
 706   2              {
 707   3                  Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
 708   3                  lcdline-=8;
 709   3                  DotNot = DotNot>>1;
 710   3      
 711   3                  Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
 712   3                  DotNot = DotNot>>1;
 713   3                  lcdline-=8;
 714   3      
 715   3                  Display16X8(lcdrow, lcdline,'.',(bit)(DotNot&1));
 716   3                  DotNot = DotNot>>1;
 717   3                  lcdline-=8;
 718   3      
 719   3                  Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
 720   3                  DotNot = DotNot>>1;
 721   3                  lcdline-=8;
 722   3                  if(number>3)
 723   3                  {
 724   4                      if(dispzero)//显示前导0
 725   4                      {
 726   5                          Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
 727   5                      }
 728   4                      else//不显示前导0
 729   4                      {
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 13  

 730   5                          Display16X8(lcdrow, lcdline,(temp16>=1000) ? (temp16/1000)%10+0x30 : ' ',(bit)(DotNot&
             -1) );
 731   5                      }
 732   4                      DotNot = DotNot>>1;
 733   4                      lcdline-=8;
 734   4                      if(number>4)
 735   4                      {
 736   5                          if(dispzero)//显示前导0
 737   5                          {
 738   6                              Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
 739   6                          }
 740   5                          else//不显示前导0
 741   5                          {
 742   6                              Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' ',(bit)(D
             -otNot&1) );
 743   6                          }
 744   5                      }
 745   4                  }
 746   3              }break;
 747   2              case 3://小数点后3位
 748   2              {
 749   3                  Display16X8(lcdrow,lcdline,temp16%10+0x30,(bit)(DotNot&1));
 750   3                  lcdline-=8;
 751   3                  DotNot = DotNot>>1;
 752   3      
 753   3                  Display16X8(lcdrow, lcdline,(temp16/10)%10+0x30,(bit)(DotNot&1));
 754   3                  DotNot = DotNot>>1;
 755   3                  lcdline-=8;
 756   3      
 757   3                  Display16X8(lcdrow, lcdline,(temp16/100)%10+0x30,(bit)(DotNot&1));
 758   3                  DotNot = DotNot>>1;
 759   3                  lcdline-=8;
 760   3      
 761   3                  Display16X8(lcdrow, lcdline,'.',(bit)(DotNot&1));
 762   3                  DotNot = DotNot>>1;
 763   3                  lcdline-=8;
 764   3      
 765   3                  Display16X8(lcdrow, lcdline,(temp16/1000)%10+0x30,(bit)(DotNot&1));
 766   3                  DotNot = DotNot>>1;
 767   3                  lcdline-=8;
 768   3      
 769   3                  if(number>4)
 770   3                  {
 771   4                      if(dispzero)//显示前导0
 772   4                      {
 773   5                          Display16X8(lcdrow, lcdline,(temp16/10000)%10+0x30,(bit)(DotNot&1));
 774   5                      }
 775   4                      else//不显示前导0
 776   4                      {
 777   5                          Display16X8(lcdrow, lcdline,(temp16>=10000) ? (temp16/10000)%10+0x30 : ' ',(bit)(DotNo
             -t&1) );
 778   5                      }
 779   4                  }
 780   3              }break;
 781   2          }
 782   1      }
 783          /*********************************************************************************************************
 784          ** 函数名称: void Display8X8ItemData(uint8 lcdrow,uint8 lcdline,uint8 item,uint8 DotNot,uint8 style);
 785          ** 功能描述: DotNot bit0~7为1则对应位反显
 786          ** 输 入:   style:显示数据的个数.
 787          ** 输 出:   
 788          ** 全局变量:
C51 COMPILER V7.06   LCDDRIVE12864                                                         01/22/2007 09:50:02 PAGE 14  

 789          ** 调用模块:
 790          **
 791          ** 作 者: 刘宝贵
 792          ** 日 期: 2006年4月7日
 793          **-------------------------------------------------------------------------------------------------------
 794          ** 修改人:

⌨️ 快捷键说明

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