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

📄 show.lst

📁 采用LPC935控制的一个项目
💻 LST
📖 第 1 页 / 共 4 页
字号:
 257          *
 258          * 作    者: Aoker
 259          * 创建时间: 2004年12月7日
 260          ********************************************************************************************************/
 261          void LcdClr(void)
 262          {
 263   1      
 264   1              BYTE i, j;
 265   1      
 266   1              LcdWriteCmd(0x4C);
 267   1              LcdWriteCmd(0x46);
 268   1              LcdWriteData(0x00);
 269   1              LcdWriteData(0x00);
 270   1              LcdWriteCmd(0x42);
 271   1      
 272   1              for(i=0; i<90; i++)
 273   1              {
 274   2                      for(j=0; j<80; j++)
 275   2                      {
 276   3                              LcdWriteData(0x00);
 277   3                      }
 278   2              }
 279   1      }
 280          
 281          
 282          /*********************************************************************************************************
 283          * 函数名称: LcdDraw  
 284          *
 285          * 功能描述: 在位置(bx, by)处显示点阵为(bWidth x bHeight)大小的图形
 286          *
 287          * 入口参数: bx, 行坐标,取值范围为0~239
 288          *                       by, 列坐标,取值范围为0~159
 289          *                       bWidth, 图形的宽度
 290          *                       bHeight, 图形的高度
 291          *                       Attr, 图形显示的属性,"1"-反白显示; "0"-正常显示
 292          *                       ptr, 指向图形的字模数据
 293          *
 294          * 出口参数: 无
 295          *
 296          * 全局变量: 无
 297          *
 298          * 调用模块: LcdWriteCmd(),
 299          *           LcdWriteData(),
 300          *                       LcdRead()
 301          *
 302          * 作    者: Aoker
 303          * 创建时间: 2004年12月7日
C51 COMPILER V7.10   SHOW                                                                  06/18/2007 11:05:54 PAGE 6   

 304          ********************************************************************************************************/
 305          void LcdDraw(BYTE bx, BYTE by, BYTE bWidth, BYTE bHeight, bit Attr, BYTE* ptr)  
 306          {
 307   1          BYTE i, j, k, tt=0;
 308   1          BYTE uu=0, rr=0, ee=0, ff=0, gg=0;
 309   1          WORD  l;
 310   1      
 311   1          tt = bx%8;
 312   1          bx=bx/8;
 313   1          l  = by*ap + bx;
 314   1          bx  = (BYTE)(l&0x00ff);
 315   1          by  = (BYTE)((l&0xff00)>>8);
 316   1      
 317   1          LcdWriteCmd(0x4C);                  
 318   1          for(i=0; i<bHeight; i++)
 319   1          {
 320   2              LcdWriteCmd(0x46);               
 321   2              LcdWriteData(bx);                  
 322   2              LcdWriteData(by);
 323   2      
 324   2              if(tt==0)                               
 325   2              {
 326   3                  LcdWriteCmd(0x42);           
 327   3                  for(j=0; j<bWidth/8; j++)
 328   3                  {
 329   4                                      if(Attr)
 330   4                                              LcdWriteData(~(*ptr));
 331   4                                      else
 332   4                                              LcdWriteData(*ptr);
 333   4                      ptr++ ;
 334   4                  }
 335   3              }
 336   2              else
 337   2              {
 338   3                  for(j=0;j<bWidth/8;j++)
 339   3                  {
 340   4                      LcdWriteCmd(0x43);
 341   4                      uu = LcdRead();
 342   4                      rr = LcdRead();
 343   4                                      if(Attr)
 344   4                          gg=~(*ptr);           
 345   4                                      else
 346   4                                              gg = *ptr;
 347   4                      ptr++;
 348   4                      k = uu>>(8-tt);
 349   4                      k = k<<(8-tt);   
 350   4                      ee = k;
 351   4                      k = gg>>tt;    
 352   4                      ee = ee|k;
 353   4                      k = rr<<tt;
 354   4                      k = k>>tt;    
 355   4                      ff = k;
 356   4                      k = gg<<(8-tt);
 357   4                      ff = ff|k;
 358   4                      LcdWriteCmd(0x4d);
 359   4                                      LcdWriteCmd(0x43);
 360   4                      LcdRead();
 361   4                      LcdRead();
 362   4                      LcdWriteCmd(0x4C);
 363   4                      LcdWriteCmd(0x42);
 364   4                      LcdWriteData(ee);
 365   4                      LcdWriteData(ff);
C51 COMPILER V7.10   SHOW                                                                  06/18/2007 11:05:54 PAGE 7   

 366   4                      LcdWriteCmd(0x4d);
 367   4                                      LcdWriteCmd(0x43);
 368   4                      LcdRead();
 369   4                      LcdRead();
 370   4                      LcdWriteCmd(0x4c);
 371   4                                      LcdWriteCmd(0x43);
 372   4                      LcdRead();
 373   4                  }
 374   3              }
 375   2              l=(ap+bx+(by<<8));
 376   2              bx=(BYTE)(l&0x00ff);
 377   2              by=(BYTE)((l&0xff00)>>8);
 378   2          }
 379   1      }
 380          /*
 381          void LcdDraw1(BYTE bx, BYTE by, BYTE bWidth, BYTE bHeight, BYTE* ptr)   
 382          {
 383              BYTE i, j, k, tt=0;
 384              BYTE uu=0, rr=0, ee=0, ff=0, gg=0;
 385              WORD  l;
 386          
 387              tt = bx%8;
 388              bx=bx/8;
 389              l  = by*ap + bx;
 390              bx  = (BYTE)(l&0x00ff);
 391              by  = (BYTE)((l&0xff00)>>8);
 392          
 393              LcdWriteCmd(0x4C);                  
 394              for(i=0; i<bHeight; i++)
 395              {
 396                  LcdWriteCmd(0x46);               
 397                  LcdWriteData(bx);                  
 398                  LcdWriteData(by);
 399          
 400                  if(tt==0)                               
 401                  {
 402                      LcdWriteCmd(0x42);           
 403                      for(j=0; j<bWidth/8; j++)
 404                      {
 405                                          LcdWriteData(*ptr);
 406                          ptr++ ;
 407                      }
 408                  }
 409                  else
 410                  {
 411                      for(j=0;j<bWidth/8;j++)
 412                      {
 413                          LcdWriteCmd(0x43);
 414                          uu = LcdRead();
 415                          rr = LcdRead();
 416          
 417                                          gg = *ptr;
 418                          ptr++;
 419                          k = uu>>(8-tt);
 420                          k = k<<(8-tt);   
 421                          ee = k;
 422                          k = gg>>tt;    
 423                          ee = ee|k;
 424                          k = rr<<tt;
 425                          k = k>>tt;    
 426                          ff = k;
 427                          k = gg<<(8-tt);
C51 COMPILER V7.10   SHOW                                                                  06/18/2007 11:05:54 PAGE 8   

 428                          ff = ff|k;
 429                          LcdWriteCmd(0x4d);
 430                                          LcdWriteCmd(0x43);
 431                          LcdRead();
 432                          LcdRead();
 433                          LcdWriteCmd(0x4C);
 434                          LcdWriteCmd(0x42);
 435                          LcdWriteData(ee);
 436                          LcdWriteData(ff);
 437                          LcdWriteCmd(0x4d);
 438                                          LcdWriteCmd(0x43);
 439                          LcdRead();
 440                          LcdRead();
 441                          LcdWriteCmd(0x4c);
 442                                          LcdWriteCmd(0x43);
 443                          LcdRead();
 444                      }
 445                  }
 446                  l=(ap+bx+(by<<8));
 447                  bx=(BYTE)(l&0x00ff);
 448                  by=(BYTE)((l&0xff00)>>8);
 449              }
 450          }
 451          */
 452          /*********************************************************************************************************
 453          * 函数名称: LcdDraw16  
 454          *
 455          * 功能描述: 在位置(bx, by)处显示固定点阵大小(16 x 16)的图形
 456          *
 457          * 入口参数: bx, 行坐标,取值范围为0~239
 458          *                       by, 列坐标,取值范围为0~159
 459          *                       Attr, 图形显示的属性,"1"-反白显示; "0"-正常显示
 460          *                       ptr, 指向图形的字模数据
 461          *
 462          * 出口参数: 无
 463          *
 464          * 全局变量: 无
 465          *
 466          * 调用模块: LcdWriteCmd(),
 467          *           LcdWriteData(),
 468          *                       LcdRead()
 469          *
 470          * 作    者: Aoker
 471          * 创建时间: 2004年12月7日
 472          ********************************************************************************************************/
 473          void LcdDraw16(BYTE bx, BYTE by, bit Attr, BYTE* ptr)
 474          {
 475   1          BYTE i, j, k, tt=0;
 476   1          BYTE uu=0, rr=0, ee=0, ff=0, gg=0;
 477   1          WORD  l;
 478   1      
 479   1          tt = bx%8;
 480   1          bx=bx/8;
 481   1          l  = by*ap + bx;
 482   1          bx  = (BYTE)(l&0x00ff);
 483   1          by  = (BYTE)((l&0xff00)>>8);
 484   1      
 485   1          LcdWriteCmd(0x4C);                 
 486   1          for(i=0; i<16; i++)
 487   1          {
 488   2              LcdWriteCmd(0x46);               
 489   2              LcdWriteData(bx);                  
C51 COMPILER V7.10   SHOW                                                                  06/18/2007 11:05:54 PAGE 9   

 490   2              LcdWriteData(by);
 491   2      
 492   2              if(tt==0)                               
 493   2              {
 494   3                  LcdWriteCmd(0x42);           
 495   3                  for(j=0; j<2; j++)
 496   3                  {
 497   4                                      if(Attr)
 498   4                                              LcdWriteData(~(*ptr));
 499   4                                      else
 500   4                                              LcdWriteData(*ptr);
 501   4                      ptr++ ;
 502   4                  }
 503   3              }
 504   2              else
 505   2              {
 506   3                  for(j=0;j<2;j++)
 507   3                  {
 508   4                      LcdWriteCmd(0x43);
 509   4                      uu = LcdRead();
 510   4                      rr = LcdRead();
 511   4                                      if(Attr)
 512   4                          gg=~(*ptr);             
 513   4                                      else
 514   4                                              gg = *ptr;
 515   4                      ptr++;
 516   4                      k = uu>>(8-tt);
 517   4                      k = k<<(8-tt);   
 518   4                      ee = k;
 519   4                      k = gg>>tt;      
 520   4                      ee = ee|k;
 521   4                      k = rr<<tt;

⌨️ 快捷键说明

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