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

📄 lcdx1.lst

📁 此程序主要测试50HZ~3KHZ音频范围幅频特性测试程序.程序包含主控程序和显示程序.
💻 LST
📖 第 1 页 / 共 4 页
字号:
 314          
 315          0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
 316          0x00,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x7F,0x7F,0x7F,0x7F,0x7F,
 317          
C51 COMPILER V7.06   LCDX1                                                                 02/28/2007 15:18:19 PAGE 10  

 318          0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
 319          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,
 320          
 321          0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,
 322          0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
 323          
 324          /*--  文字:  世  --*/
 325          /*--  宋体11;  此字体下对应的点阵为:宽x高=16x14   --*/
 326          /*--  高度不是8的倍数,现调整为:宽度x高度=16x16  --*/
 327          0x10,0x10,0xFE,0xFE,0x10,0x10,0xFF,0xFF,0x10,0x10,0xFF,0xFF,0x10,0x10,0x00,0x00,
 328          0x00,0x00,0x1F,0x1F,0x10,0x10,0x13,0x13,0x11,0x11,0x13,0x13,0x10,0x10,0x00,0x00,
 329          
 330          /*--  文字:  通  --*/
 331          /*--  宋体11;  此字体下对应的点阵为:宽x高=16x14   --*/
 332          /*--  高度不是8的倍数,现调整为:宽度x高度=16x16  --*/
 333          0x21,0xE3,0xE6,0x06,0xF9,0xF9,0xAB,0xFF,0xFD,0xAF,0xFB,0xF9,0x00,0x00,0x00,0x00,
 334          0x18,0x1F,0x0F,0x18,0x17,0x17,0x10,0x17,0x17,0x14,0x17,0x17,0x10,0x10,0x00,0x00,
 335          
 336          /*--  文字:  科  --*/
 337          /*--  宋体11;  此字体下对应的点阵为:宽x高=16x14   --*/
 338          /*--  高度不是8的倍数,现调整为:宽度x高度=16x16  --*/
 339          0x12,0x92,0xD2,0xFF,0xFF,0xD1,0x91,0x92,0xB6,0xA4,0xFF,0xFF,0x40,0x40,0x00,0x00,
 340          0x02,0x03,0x01,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x00,0x00,0x00,0x00,
 341          
 342          /*--  文字:  技  --*/
 343          /*--  宋体11;  此字体下对应的点阵为:宽x高=16x14   --*/
 344          /*--  高度不是8的倍数,现调整为:宽度x高度=16x16  --*/
 345          0x08,0x88,0xFF,0xFF,0x48,0x2C,0xE4,0xE4,0x3F,0x3F,0xA4,0xE4,0x64,0x04,0x00,0x00,
 346          0x09,0x19,0x1F,0x0F,0x10,0x10,0x18,0x0D,0x07,0x07,0x0D,0x18,0x10,0x10,0x00,0x00,
 347          };
 348          
 349          uchar code tttt[]=
 350          {
 351          /*--  Courier12;  此字体下对应的点阵为:宽x高=11x16   --*/
 352          0x00,0x00,0x88,0xE8,0x78,0x78,0xE0,0x80,0x00,0x00,0x00,0x10,0x1C,0x1F,0x13,0x02,
 353          0x02,0x13,0x1F,0x1C,0x10,0x00,
 354          
 355          /*--  文字:  B  --*/
 356          /*--  Courier12;  此字体下对应的点阵为:宽x高=11x16   --*/
 357          0x00,0x08,0xF8,0xF8,0x88,0x88,0x88,0xF8,0x70,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
 358          0x10,0x10,0x1F,0x0F,0x00,0x00,
 359          
 360          /*--  文字:  C  --*/
 361          /*--  Courier12;  此字体下对应的点阵为:宽x高=11x16   --*/
 362          0x00,0xE0,0xF0,0x18,0x08,0x08,0x18,0x78,0x78,0x00,0x00,0x00,0x07,0x0F,0x18,0x10,
 363          0x10,0x10,0x18,0x08,0x00,0x00,
 364          
 365          /*--  文字:  D  --*/
 366          /*--  Courier12;  此字体下对应的点阵为:宽x高=11x16   --*/
 367          0x00,0x08,0xF8,0xF8,0x08,0x08,0x18,0xF0,0xE0,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
 368          0x10,0x18,0x0F,0x07,0x00,0x00,
 369          
 370          /*--  文字:  E  --*/
 371          /*--  Courier12;  此字体下对应的点阵为:宽x高=11x16   --*/
 372          0x00,0x08,0xF8,0xF8,0x88,0xC8,0xC8,0x18,0x18,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
 373          0x11,0x11,0x18,0x18,0x00,0x00,
 374          
 375          /*--  文字:  F  --*/
 376          /*--  Courier12;  此字体下对应的点阵为:宽x高=11x16   --*/
 377          0x00,0x08,0xF8,0xF8,0x88,0xC8,0xC8,0x18,0x18,0x00,0x00,0x00,0x10,0x1F,0x1F,0x10,
 378          0x11,0x01,0x00,0x00,0x00,0x00,
 379          };
C51 COMPILER V7.06   LCDX1                                                                 02/28/2007 15:18:19 PAGE 11  

 380          
 381          /*内存RYCOM公司的商标图象*/
 382          uchar code rycon_marker[]=
 383          {
 384          /*--  RYCON公司的商标图像:D:\hz\徽标rycon.bmp  --*/
 385          /*--  宽度x高度=32x32  --*/
 386          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
 387          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,
 388          
 389          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
 390          0x03,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,
 391          
 392          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
 393          0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
 394          
 395          0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
 396          0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
 397          };
 398          
 399          /*内存RYCOM公司名称点阵信息*/
 400          uchar code rycon_name[]=
 401          {
 402          /*--  文字:  R  --*/
 403          /*--  Courier New12;  此字体下对应的点阵为:宽x高=10x16   --*/
 404          0x00,0xF8,0xF8,0x08,0x08,0x08,0x08,0xF8,0xF0,0x00,0x00,0x1F,0x1F,0x01,0x01,0x01,
 405          0x01,0x0F,0x1E,0x10,
 406          
 407          /*--  文字:  Y  --*/
 408          /*--  Courier New12;  此字体下对应的点阵为:宽x高=10x16   --*/
 409          0x18,0x38,0x60,0xC0,0x80,0x80,0xC0,0x60,0x38,0x18,0x00,0x00,0x00,0x00,0x1F,0x1F,
 410          0x00,0x00,0x00,0x00,
 411          
 412          /*--  文字:  C  --*/
 413          /*--  Courier New12;  此字体下对应的点阵为:宽x高=10x16   --*/
 414          0x00,0xE0,0xF0,0x18,0x08,0x08,0x18,0x30,0x00,0x00,0x00,0x07,0x0F,0x18,0x10,0x10,
 415          0x18,0x0C,0x00,0x00,
 416          
 417          /*--  文字:  O  --*/
 418          /*--  Courier New12;  此字体下对应的点阵为:宽x高=10x16   --*/
 419          0x00,0xE0,0xF0,0x18,0x08,0x08,0x18,0xF0,0xE0,0x00,0x00,0x07,0x0F,0x18,0x10,0x10,
 420          0x18,0x0F,0x07,0x00,
 421          
 422          /*--  文字:  M  --*/
 423          /*--  Courier New12;  此字体下对应的点阵为:宽x高=10x16   --*/
 424          0x00,0xF8,0xF8,0xE0,0x80,0x00,0x00,0x80,0xE0,0xF8,0x00,0x1F,0x1F,0x01,0x07,0x1E,
 425          0x1E,0x07,0x01,0x1F,
 426          };
 427          
 428          /*延时子程序,参数C决定延时的长短*/
 429          void delay(uchar c)
 430          {
 431   1              uchar a,b;
 432   1              b=c;a=c;
 433   1              do
 434   1              {
 435   2                      a--;
 436   2                      b=c;
 437   2                      do{b--;}
 438   2                      while(b!=0);
 439   2              }
 440   1              while(a!=0);
 441   1      }
C51 COMPILER V7.06   LCDX1                                                                 02/28/2007 15:18:19 PAGE 12  

 442          
 443          /*将VRAM清0*/
 444          void clr_lcd()
 445          {
 446   1              uchar i,j;
 447   1              for(j=0;j<8;j++)
 448   1              {
 449   2                      iwlr(0xb8|j); /*指令同时写入左右半屏*/
 450   2                      iwlr(0x40);   /*指令同时写入左右半屏*/
 451   2                      for(i=0;i<64;i++)               
 452   2                      {dwlr(0);}   /*显示数据同时写入左右半屏*/
 453   2              }
 454   1      }
 455          
 456          /*在p点处显示或清除一点,参数s为1时显示一点,否则清除一点*/
 457          void disp_one_dot(point p,bit s)
 458          {
 459   1              uchar a;
 460   1              if(p.x<128&&p.y<64)
 461   1              {
 462   2                      if(p.x<=63) 
 463   2                      {
 464   3                              iwl(0xb8|(p.y/8));
 465   3                              iwl(0x40|p.x);
 466   3                              a=drl();
 467   3                              a=drl();
 468   3                              iwl(0x40|p.x);
 469   3                              if(s) {dwl(SETBIT(a,p.y%8,1));}
 470   3                              else{dwl(SETBIT(a,p.y%8,0));}
 471   3                      }
 472   2                      else
 473   2                      {
 474   3                              iwr(0xb8|(p.y/8));
 475   3                              iwr(0x40|p.x);
 476   3                              a=drr();
 477   3                              a=drr();
 478   3                              iwr(0x40|(p.x-64));
 479   3                              if(s) {dwr(SETBIT(a,p.y%8,1));}
 480   3                              else{dwr(SETBIT(a,p.y%8,0));}
 481   3                      }
 482   2              }
 483   1      }
 484          
 485          /*绘直线程序,其中psta,pend分别为直线的两端点,s=1显示直线,s=0清除直线*/
 486          draw_line(point psta,point pend,bit s)
 487          {
 488   1              uchar d_x,d_y;
 489   1              signed char err;
 490   1              err=0;
 491   1              if(psta.y>pend.y)
 492   1              {
 493   2                      d_x=psta.x;    d_y=psta.y;
 494   2                      psta.x=pend.x; psta.y=pend.y;
 495   2                      pend.x=d_x;    pend.y=d_y;
 496   2              }
 497   1              d_y=pend.y-psta.y;
 498   1              disp_one_dot(psta,s);
 499   1              if(pend.x>=psta.x)   //直线向右偏
 500   1              {
 501   2                      d_x=pend.x-psta.x;
 502   2                      if(d_x>=d_y)
 503   2                      {
C51 COMPILER V7.06   LCDX1                                                                 02/28/2007 15:18:19 PAGE 13  

 504   3                              if(d_y==0) psta.y--;
 505   3                              for(psta.x++;psta.x<=pend.x;psta.x++)
 506   3                              {
 507   4                                      if(err>=0)
 508   4                                      {
 509   5                                              psta.y++;
 510   5                                              err=err+d_y-d_x;
 511   5                                      }
 512   4                                      else
 513   4                                      {
 514   5                                              err=err+d_y;
 515   5                                      }
 516   4                                      disp_one_dot(psta,s);
 517   4                              }
 518   3                      }
 519   2                      else
 520   2                      {
 521   3                              for(psta.y++;psta.y<=pend.y;psta.y++)
 522   3                              {
 523   4                                      if(err>=0)
 524   4                                      {
 525   5                                              err=err-d_x;
 526   5                                      }
 527   4                                      else
 528   4                                      {
 529   5                                              psta.x++;
 530   5                                              err=err+d_y-d_x;
 531   5                                      }
 532   4                              disp_one_dot(psta,s);
 533   4                              }
 534   3                      }
 535   2              }
 536   1              else             //直线向左偏
 537   1              {
 538   2                      d_x=psta.x-pend.x;
 539   2                      if(d_x>=d_y)
 540   2                      {
 541   3                              if(d_y==0) psta.y--;
 542   3                              for(psta.x--;psta.x!=pend.x-1;psta.x--)
 543   3                              {
 544   4                                      if(err<0)
 545   4                                      {                               
 546   5                                              err=err+d_y;
 547   5                                      }
 548   4                                      else
 549   4                                      {
 550   5                                              psta.y++;
 551   5                                              err=err+d_y-d_x;
 552   5                                      }
 553   4                                      disp_one_dot(psta,s);
 554   4                              }
 555   3                      }
 556   2                      else
 557   2                      {
 558   3                              for(psta.y++;psta.y<=pend.y;psta.y++)
 559   3                              {
 560   4                                      if(err>=0)
 561   4                                      {
 562   5                                              err=err-d_x;
 563   5                                      }
 564   4                                      else
 565   4                                      {
C51 COMPILER V7.06   LCDX1                                                                 02/28/2007 15:18:19 PAGE 14  

 566   5                                              psta.x--;
 567   5                                      }
 568   4                                      disp_one_dot(psta,s);
 569   4                              }
 570   3                      }
 571   2              }
 572   1      }
 573          
 574          /*绘制一般矩形,其中firp与othp分别为矩形的对角两点坐标,
 575          s=1显示矩形,s=0时清除矩形*/
 576          void draw_rec(point firp,point othp,bit s)
 577          {
 578   1              point a; //定义结构体变量a
 579   1              a.x=firp.x;
 580   1              a.y=othp.y;
 581   1              draw_line(firp,a,s);
 582   1              draw_line(othp,a,s);
 583   1              a.x=othp.x;
 584   1              a.y=firp.y;
 585   1              draw_line(firp,a,s);
 586   1              draw_line(othp,a,s);
 587   1      }
 588          
 589          /*p1,p2点指定的矩形区域置1(s=0xff),清除(s=0),其它则取反*/

⌨️ 快捷键说明

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