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

📄 spy_lcd.lst

📁 此程序主要测试50HZ~3KHZ音频范围幅频特性测试程序.程序包含主控程序和显示程序.
💻 LST
📖 第 1 页 / 共 5 页
字号:
 232          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 233          0x00,0xFC,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 234          
 235          /*--  文字:  M  --*/
 236          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 237          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 238          0xFE,0x0C,0xF0,0x0C,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 239          /*--  文字:  N  --*/
 240          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 241          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 242          0x00,0xFC,0x0C,0x30,0xC0,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,
 243          
 244          /*--  文字:  O  --*/
 245          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 246          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 247          0x00,0x78,0x84,0x84,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,
 248          
 249          /*--  文字:  P  --*/
 250          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 251          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 252          0x00,0xFC,0x24,0x24,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 253          
C51 COMPILER V7.06   SPY_LCD                                                               04/22/2007 11:06:48 PAGE 9   

 254          /*--  文字:  Q  --*/
 255          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 256          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 257          0x00,0x78,0x84,0xA4,0x44,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,
 258          
 259          /*--  文字:  R  --*/
 260          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 261          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 262          0x00,0xFC,0x24,0x24,0x24,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,
 263          
 264          /*--  文字:  S  --*/
 265          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 266          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 267          0x00,0x48,0x94,0xA4,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 268          
 269          /*--  文字:  T  --*/
 270          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 271          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 272          0x04,0x04,0xFC,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 273          
 274          /*--  文字:  U  --*/
 275          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 276          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 277          0x00,0x7C,0x80,0x80,0x80,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
 278          
 279          /*--  文字:  V  --*/
 280          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 281          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 282          0x00,0x0C,0x30,0xC0,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
 283          
 284          /*--  文字:  W  --*/
 285          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 286          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 287          0x00,0x0C,0x30,0xC0,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
 288          
 289          /*--  文字:  X  --*/
 290          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 291          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 292          0x00,0x84,0x48,0x30,0x48,0x84,0x00,0x00,0x00,0x00,0x00,0x00,
 293          
 294          /*--  文字:  Y  --*/
 295          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 296          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 297          0x00,0x04,0x08,0xF0,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
 298          
 299          /*--  文字:  Z  --*/
 300          /*--  Small Fonts6;  此字体下对应的点阵为:宽x高=6x10   --*/
 301          /*--  高度不是8的倍数,现调整为:宽度x高度=6x16  --*/
 302          0x00,0xC4,0xA4,0x94,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 303          };
 304          
 305          
 306          /*延时子程序,参数C决定延时的长短*/
 307          /*
 308          void delay(uchar c)
 309          {
 310                  uchar a,b;
 311                  b=c;a=c;
 312                  do
 313                  {
 314                          a--;
 315                          b=c;
C51 COMPILER V7.06   SPY_LCD                                                               04/22/2007 11:06:48 PAGE 10  

 316                          do{b--;}
 317                          while(b!=0);
 318                  }
 319                  while(a!=0);
 320          }
 321          */
 322          /*将VRAM清0*/
 323          void clr_lcd()
 324          {
 325   1              uchar i,j;
 326   1              for(j=0;j<8;j++)
 327   1              {
 328   2                      iwlr(0xb8|j); /*指令同时写入左右半屏*/
 329   2                      iwlr(0x40);   /*指令同时写入左右半屏*/
 330   2                      for(i=0;i<64;i++)
 331   2                      {dwlr(0);}   /*显示数据同时写入左右半屏*/
 332   2              }
 333   1      }
 334          
 335          /*在p点处显示或清除一点,参数s为1时显示一点,否则清除一点*/
 336          void disp_one_dot(point p,bit s)
 337          {
 338   1              uchar a;
 339   1              if(p.x<128&&p.y<64)
 340   1              {
 341   2                      if(p.x<=63)
 342   2                      {
 343   3                              iwl(0xb8|(p.y/8));
 344   3                              iwl(0x40|p.x);
 345   3                              a=drl();
 346   3                              a=drl();
 347   3                              iwl(0x40|p.x);
 348   3                              if(s) {dwl(SETBIT(a,p.y%8,1));}
 349   3                              else{dwl(SETBIT(a,p.y%8,0));}
 350   3                      }
 351   2                      else
 352   2                      {
 353   3                              iwr(0xb8|(p.y/8));
 354   3                              iwr(0x40|p.x);
 355   3                              a=drr();
 356   3                              a=drr();
 357   3                              iwr(0x40|(p.x-64));
 358   3                              if(s) {dwr(SETBIT(a,p.y%8,1));}
 359   3                              else{dwr(SETBIT(a,p.y%8,0));}
 360   3                      }
 361   2              }
 362   1      }
 363          
 364          /*绘直线程序,其中psta,pend分别为直线的两端点,s=1显示直线,s=0清除直线*/
 365          draw_line(point psta,point pend,bit s)
 366          {
 367   1              uchar d_x,d_y;
 368   1              signed char err;
 369   1              err=0;
 370   1              if(psta.y>pend.y)
 371   1              {
 372   2                      d_x=psta.x;    d_y=psta.y;
 373   2                      psta.x=pend.x; psta.y=pend.y;
 374   2                      pend.x=d_x;    pend.y=d_y;
 375   2              }
 376   1              d_y=pend.y-psta.y;
 377   1              disp_one_dot(psta,s);
C51 COMPILER V7.06   SPY_LCD                                                               04/22/2007 11:06:48 PAGE 11  

 378   1              if(pend.x>=psta.x)   //直线向右偏
 379   1              {
 380   2                      d_x=pend.x-psta.x;
 381   2                      if(d_x>=d_y)
 382   2                      {
 383   3                              if(d_y==0) psta.y--;
 384   3                              for(psta.x++;psta.x<=pend.x;psta.x++)
 385   3                              {
 386   4                                      if(err>=0)
 387   4                                      {
 388   5                                              psta.y++;
 389   5                                              err=err+d_y-d_x;
 390   5                                      }
 391   4                                      else
 392   4                                      {
 393   5                                              err=err+d_y;
 394   5                                      }
 395   4                                      disp_one_dot(psta,s);
 396   4                              }
 397   3                      }
 398   2                      else
 399   2                      {
 400   3                              for(psta.y++;psta.y<=pend.y;psta.y++)
 401   3                              {
 402   4                                      if(err>=0)
 403   4                                      {
 404   5                                              err=err-d_x;
 405   5                                      }
 406   4                                      else
 407   4                                      {
 408   5                                              psta.x++;
 409   5                                              err=err+d_y-d_x;
 410   5                                      }
 411   4                              disp_one_dot(psta,s);
 412   4                              }
 413   3                      }
 414   2              }
 415   1              else             //直线向左偏
 416   1              {
 417   2                      d_x=psta.x-pend.x;
 418   2                      if(d_x>=d_y)
 419   2                      {
 420   3                              if(d_y==0) psta.y--;
 421   3                              for(psta.x--;psta.x!=pend.x-1;psta.x--)
 422   3                              {
 423   4                                      if(err<0)
 424   4                                      {
 425   5                                              err=err+d_y;
 426   5                                      }
 427   4                                      else
 428   4                                      {
 429   5                                              psta.y++;
 430   5                                              err=err+d_y-d_x;
 431   5                                      }
 432   4                                      disp_one_dot(psta,s);
 433   4                              }
 434   3                      }
 435   2                      else
 436   2                      {
 437   3                              for(psta.y++;psta.y<=pend.y;psta.y++)
 438   3                              {
 439   4                                      if(err>=0)
C51 COMPILER V7.06   SPY_LCD                                                               04/22/2007 11:06:48 PAGE 12  

 440   4                                      {
 441   5                                              err=err-d_x;
 442   5                                      }
 443   4                                      else
 444   4                                      {
 445   5                                              psta.x--;
 446   5                                      }
 447   4                                      disp_one_dot(psta,s);
 448   4                              }
 449   3                      }
 450   2              }
 451   1      }
 452          
 453          /*绘制一般矩形,其中firp与othp分别为矩形的对角两点坐标,
 454          s=1显示矩形,s=0时清除矩形*/
 455          void draw_rec(point firp,point othp,bit s)
 456          {
 457   1              point a; //定义结构体变量a
 458   1              a.x=firp.x;
 459   1              a.y=othp.y;
 460   1              draw_line(firp,a,s);
 461   1              draw_line(othp,a,s);
 462   1              a.x=othp.x;
 463   1              a.y=firp.y;
 464   1              draw_line(firp,a,s);
 465   1              draw_line(othp,a,s);
 466   1      }
 467          
 468          /*p1,p2点指定的矩形区域置1(s=0xff),清除(s=0),其它则取反*/

⌨️ 快捷键说明

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