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

📄 show.lst

📁 采用LPC935控制的一个项目
💻 LST
📖 第 1 页 / 共 4 页
字号:
 522   4                      k = k>>tt;    
 523   4                      ff = k;
 524   4                      k = gg<<(8-tt);
 525   4                      ff = ff|k;
 526   4                      LcdWriteCmd(0x4d);
 527   4                                      LcdWriteCmd(0x43);
 528   4                      LcdRead();
 529   4                      LcdRead();
 530   4                      LcdWriteCmd(0x4C);
 531   4                      LcdWriteCmd(0x42);
 532   4                      LcdWriteData(ee);
 533   4                      LcdWriteData(ff);
 534   4                      LcdWriteCmd(0x4d);
 535   4                                      LcdWriteCmd(0x43);
 536   4                      LcdRead();
 537   4                      LcdRead();
 538   4                      LcdWriteCmd(0x4c);
 539   4                                      LcdWriteCmd(0x43);
 540   4                      LcdRead();
 541   4                  }
 542   3              }
 543   2              l=(ap+bx+(by<<8));
 544   2              bx=(BYTE)(l&0x00ff);
 545   2              by=(BYTE)((l&0xff00)>>8);
 546   2          }
 547   1      }
 548          
 549          /*********************************************************************************************************
 550          * 函数名称: LcdDrawDot  
 551          *
C51 COMPILER V7.10   SHOW                                                                  06/18/2007 11:05:54 PAGE 10  

 552          * 功能描述: 在位置(bx,by)处画点或消点
 553          *
 554          * 入口参数: bx, 行坐标,取值范围为0~239
 555          *                       by, 列坐标,取值范围为0~159
 556          *                       Attr, 图形显示的属性,"1"-画点; "0"-消点
 557          *
 558          * 出口参数: 无
 559          *
 560          * 全局变量: 无
 561          *
 562          * 调用模块: LcdWriteCmd(),
 563          *           LcdWriteData(),
 564          *                       LcdRead()
 565          *
 566          * 作    者: Aoker
 567          * 创建时间: 2004年12月7日
 568          ********************************************************************************************************/
 569          /*
 570          void LcdDrawDot(BYTE bx, BYTE by, bit Attr)     //描点
 571          {
 572              BYTE tt=0, uu=0;         //ap 修改 P7, 行字符个数
 573              WORD l=0;
 574          
 575              tt = (BYTE)(bx%8);
 576              bx  = bx/8;
 577              l  = by*ap + bx;
 578              bx  = (BYTE)(l&0xff);
 579              by  = (BYTE)((l>>8)&0xff);
 580          
 581              LcdWriteCmd(0x4C);             //"光标右移"
 582              LcdWriteCmd(0x46);             // 光标指针设置
 583              LcdWriteData(bx);               // 光标地址16位
 584              LcdWriteData(by);
 585              LcdWriteCmd(0x43);
 586              uu = LcdRead();
 587              if(Attr)
 588                  uu |= 1<<(7-tt);
 589              else
 590                  uu &= ~(1<<(7-tt));
 591              LcdWriteCmd(0x4D);
 592              LcdWriteCmd(0x43);
 593              LcdRead();
 594              LcdWriteCmd(0x4C);
 595              LcdWriteCmd(0x42);                  // 送数据两个
 596              LcdWriteData(uu);
 597          }
 598           */
 599          /*********************************************************************************************************
 600          * 函数名称: LcdDrawLine  
 601          *
 602          * 功能描述: 在位置(bx1,by1)处和(bx2,by2)处画直线
 603          *                       使用时,必须满足条件: bx1 <= bx2
 604          *
 605          * 入口参数: bx1, 直线起点行坐标,取值范围为0~239
 606          *                       by1, 直线起点列坐标,取值范围为0~159
 607          *                       bx2, 直线终点行坐标,取值范围为0~239
 608          *                       by2, 直线终点列坐标,取值范围为0~159
 609          *                       Attr,图形显示的属性,"1"-画线; "0"-消线
 610          *
 611          * 出口参数: 无
 612          *
 613          * 全局变量: 无
C51 COMPILER V7.10   SHOW                                                                  06/18/2007 11:05:54 PAGE 11  

 614          *
 615          * 调用模块: LcdWriteCmd(),
 616          *           LcdWriteData(),
 617          *                       LcdRead()
 618          *
 619          * 作    者: Aoker
 620          * 创建时间: 2004年12月7日
 621          ********************************************************************************************************/
 622          /*
 623          void LcdDrawLine(BYTE bx1, BYTE by1, BYTE bx2, BYTE by2, bit Attr)      //画线必须x1<=x2
 624          {
 625              BYTE tt=0, uu=0, i, y, t;         //ap 修改 P7, 行字符个数
 626              WORD l=0, x;
 627                  if(bx1>bx2)
 628                          return;
 629          
 630                  if(bx1 == bx2)  //竖线
 631                  {
 632                      tt = (BYTE)(bx1%8);
 633                      x  = bx1/8;
 634                      l  = by1*ap + x;
 635                      x  = (BYTE)(l&0xff);
 636                      y  = (BYTE)((l>>8)&0xff);
 637                          LcdWriteCmd(0x4F);             //"光标下移"
 638                      LcdWriteCmd(0x46);             // 光标指针设置
 639                      LcdWriteData(x);               // 光标地址16位
 640                      LcdWriteData(y);
 641                      LcdWriteCmd(0x43);
 642                      uu = LcdRead();
 643                          LcdWriteCmd(0x4E);             //"光标上移"
 644                          LcdWriteCmd(0x43);
 645                          LcdRead();
 646                          for(i=by1; i<=by2; i++)
 647                          {
 648                              if(Attr)
 649                                  uu |= 1<<(7-tt);
 650                              else
 651                                  uu &= ~(1<<(7-tt));
 652                                  LcdWriteCmd(0x4F);             //"光标下移"
 653                              LcdWriteCmd(0x42);                  // 送数据两个
 654                                  LcdWriteData(uu);
 655          
 656                                  LcdWriteCmd(0x43);
 657                                  uu = LcdRead();
 658                                  LcdWriteCmd(0x4E);             //"光标上移"
 659                                  LcdWriteCmd(0x43);
 660                                  LcdRead();
 661                          }
 662                          return;
 663                  }
 664                  else if(by1 == by2)   //横线
 665                  {
 666                          t = bx1/8;
 667                          for(x=bx1; x<(t+1)*8; x++)
 668                          {
 669                                  LcdDrawDot(x, by1, Attr);
 670                          }
 671                      l  = by1*ap + t+1;
 672                      x  = (BYTE)(l&0xff);
 673                      y  = (BYTE)((l>>8)&0xff);
 674          
 675                      LcdWriteCmd(0x4C);                  // 右
C51 COMPILER V7.10   SHOW                                                                  06/18/2007 11:05:54 PAGE 12  

 676                      LcdWriteCmd(0x46);             // 光标指针设置
 677                      LcdWriteData(x);               // 光标地址16位
 678                      LcdWriteData(y);
 679                      LcdWriteCmd(0x42);                  // 送数据两个
 680                          for(i=(t+1); i<(bx2-bx2%8)/8; i++)
 681                          {
 682                                  if(Attr)
 683                                          LcdWriteData(0xFF);
 684                                  else
 685                                          LcdWriteData(0x00);
 686                          }
 687                          for(x=bx2-bx2%8; x<=bx2; x++)
 688                          {
 689                                  LcdDrawDot(x, by1, Attr);
 690                          }
 691                          return;
 692                  }
 693          }
 694          */
 695          
 696          /*********************************************************************************************************
 697          * 函数名称: DispStr  
 698          *
 699          * 功能描述: 在位置(bSx, bSy)处显示一个字符
 700          *
 701          * 入口参数: bSx, 行坐标,取值范围为0~239
 702          *                       bSy, 列坐标,取值范围为0~159
 703          *                       Attr, 图形显示的属性,"1"-反白显示; "0"-正常显示
 704          *                       ptr, 指向图形的字模数据
 705          *
 706          * 出口参数: 无
 707          *
 708          * 全局变量: 无
 709          *
 710          * 调用模块: LcdDraw(),
 711          *
 712          * 作    者: Aoker
 713          * 创建时间: 2004年12月7日
 714          ********************************************************************************************************/
 715          void DispStr(BYTE bSx, BYTE bSy, bit Attr, BYTE *ptr)
 716          {
 717   1              BYTE i=0;
 718   1              do
 719   1              {
 720   2                      LcdDraw(bSx+i*8, bSy, 8, 16, Attr, ASCII[(*ptr++)-0x20]);
 721   2                      i++;
 722   2              }while(*ptr != '\0');
 723   1      }
 724          
 725          /*********************************************************************************************************
 726          * 函数名称: DispNum  
 727          *
 728          * 功能描述: 在位置(bSx, bSy)处显示一个数字
 729          *
 730          * 入口参数: bSx, 行坐标,取值范围为0~239
 731          *                       bSy, 列坐标,取值范围为0~159
 732          *                       Attr, 图形显示的属性,"1"-反白显示; "0"-正常显示
 733          *                       bNumber, 待显示的数字
 734          *
 735          * 出口参数: 无
 736          *
 737          * 全局变量: 无
C51 COMPILER V7.10   SHOW                                                                  06/18/2007 11:05:54 PAGE 13  

 738          *
 739          * 调用模块: LcdDraw(),
 740          *
 741          * 作    者: Aoker
 742          * 创建时间: 2004年12月7日
 743          ********************************************************************************************************/
 744          void DispNum(BYTE bSx, BYTE bSy, bit Attr, BYTE bNumber)
 745          {
 746   1              if( (bNumber<0) || (bNumber>9) ) return;
 747   1              LcdDraw(bSx, bSy, 8, 16, Attr, ASCII[bNumber+0x10]);//0x10为数字0~9在ASCII码中的偏移地址
 748   1      }
 749          
 750          
 751          /*********************************************************************************************************
 752          * 函数名称: ClearXByte  
 753          *
 754          * 功能描述: 删除从位置(bSx, bSy)起的x个字节
 755          *
 756          * 入口参数: bSx, 行坐标,取值范围为0~239
 757          *                       bSy, 列坐标,取值范围为0~159 
 758          *
 759          * 出口参数: 无
 760          *
 761          * 全局变量: 无
 762          *
 763          * 调用模块: DispChar(),
 764          *
 765          * 作    者: Aoker
 766          * 创建时间: 2004年12月7日
 767          ********************************************************************************************************/
 768          void ClearXByte(BYTE bSx, BYTE bSy, BYTE x)
 769          {
 770   1              BYTE i;
 771   1              for(i=0; i<x; i++)
 772   1              {
 773   2                      DispStr(bSx+i*8, bSy, 0, " ");
 774   2              }
 775   1      }
 776          
 777          
 778          /*********************************************************************************************************
 779          * 函数名称: KLine  
 780          *
 781          * 功能描述: 画粗线
 782          *
 783          * 入口参数: bWidth,线的长度 
 784          *
 785          * 出口参数: 无
 786          *

⌨️ 快捷键说明

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