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

📄 lcd128_64.lst

📁 无线单片机CC1110的一些使用源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 309   1      }
 310          
 311          
 312          
 313          
 314          /*******************************************************************************
 315          //函数名:void Printn8(uchar xx ,uchar yy , ulong no,uchar yn,uchar le)
 316          //功能:显示8*8一个无符号数据
 317          //输入:xx , yy屏幕当中位置,no待显示数据 yn=0正常显示 yn=1反黑显示  le有效位
 318          //输出:无
 319          ********************************************************************************/
 320          void Printn8(uchar xx ,uchar yy , ulong no,uchar yn,uchar le)
 321          {
 322   1              uchar ch2[6];
 323   1              uchar ii;
 324   1      
 325   1              for(ii = 1 ; ii <= le ;){
 326   2                      ch2[le - ii] = no % 10 + 0x30;
 327   2                      no /= 10;
 328   2                      ii += 1;
 329   2              }
 330   1              ch2[le] = '\0';
 331   1              Print(xx ,yy ,ch2 ,yn);
 332   1      }
 333          
 334          
 335          
 336          /*******************************************************************************
 337          //函数名:void Print6(uchar xx, uchar yy, uchar ch1[], uchar yn)
 338          //功能:显示6*8字符串
 339          //输入:xx ,yy 坐标,ch1待显示的字符串,yn是否反黑
 340          //输出:无
 341          ********************************************************************************/
 342          void Print6(uchar xx, uchar yy, uchar ch1[], uchar yn)          
 343          {
 344   1              uchar ii = 0;
 345   1              uchar bb = 0;
 346   1              unsigned int index = 0 ;        
 347   1      
 348   1              SetRamAddr(xx , yy);            
 349   1              while(ch1[bb] != '\0')
 350   1              {
 351   2                      index = (unsigned int)(ch1[bb] - 0x20);
 352   2                      index = (unsigned int)index*6;          
 353   2                      for(ii=0;ii<6;ii++)
 354   2                      {
 355   3                              if(yn)
 356   3                              {
 357   4                                      Lcdwritedata(FontSystem6x8[index]);
 358   4                              }
 359   3                              else
 360   3                              {
 361   4                                      Lcdwritedata(~FontSystem6x8[index]);
 362   4                              }               
 363   3                              index += 1;
 364   3                      }               
C51 COMPILER V8.08   LCD128_64                                                             01/09/2008 13:45:48 PAGE 7   

 365   2                      bb += 1;
 366   2              }
 367   1      }
 368          
 369          
 370          /*******************************************************************************
 371          //函数名:void Print8(uint y,uint x, uchar ch[],uint yn)
 372          //功能:显示8*8字符串
 373          //输入:xx ,yy 坐标,ch1待显示的字符串,yn是否反黑
 374          //输出:无
 375          ********************************************************************************/
 376          void Print8(uint y,uint x, uchar ch[],uint yn)
 377          {
 378   1              uchar wm ,ii = 0;
 379   1              uint adder;
 380   1      
 381   1              while(ch[ii] != '\0')
 382   1              {
 383   2                      adder = (ch[ii] - 0x20) * 16;
 384   2      
 385   2                      SetRamAddr(y , x);
 386   2                      for(wm = 0;wm < 8;wm++)
 387   2                      {
 388   3                              if(yn == 0)
 389   3                              {
 390   4                                      Lcdwritedata(~Font8X8[adder]);
 391   4                              }
 392   3                              else
 393   3                              {
 394   4                                      Lcdwritedata(Font8X8[adder]);
 395   4                              }
 396   3                              adder += 1;
 397   3                      }
 398   2                      SetRamAddr(y + 1 , x);
 399   2                      for(wm = 0;wm < 8;wm++)
 400   2                      {
 401   3                              if(yn == 0)
 402   3                              {
 403   4                                      Lcdwritedata(~Font8X8[adder]);  
 404   4                              }
 405   3                              else
 406   3                              {
 407   4                                      Lcdwritedata(Font8X8[adder]);   
 408   4                              }
 409   3                              adder += 1;
 410   3                      }
 411   2                      ii += 1;
 412   2                      x += 8;
 413   2              }
 414   1      
 415   1      }
 416          
 417          
 418          /*******************************************************************************
 419          //函数名:void Print16(uint y,uint x,uchar ch[],uint yn)
 420          //功能:在屏幕上显示汉字
 421          //输入:x ,y 坐标,ch[]待显示的汉字,yn是否反黑
 422          //输出:无
 423          ********************************************************************************/
 424          void Print16(uint y,uint x,uchar ch[],uint yn)
 425          {
 426   1              uchar wm ,ii = 0;
C51 COMPILER V8.08   LCD128_64                                                             01/09/2008 13:45:48 PAGE 8   

 427   1              uint adder;
 428   1      
 429   1              wm = 0;
 430   1              adder = 1;
 431   1              while(FontNew8X16_Index[wm] > 100)
 432   1              {
 433   2                      if(FontNew8X16_Index[wm] == ch[ii])
 434   2                      {
 435   3                              if(FontNew8X16_Index[wm + 1] == ch[ii + 1])
 436   3                              {
 437   4                                      adder = wm * 14;
 438   4                                      break;
 439   4                              }
 440   3                      }
 441   2                      wm += 2;                                //找到汉字在索引中的位置
 442   2              }
 443   1              SetRamAddr(y , x);
 444   1      
 445   1              if(adder != 1)                                  //找到汉字,显示出来    
 446   1              {
 447   2                      SetRamAddr(y , x);
 448   2                      for(wm = 0;wm < 14;wm++)
 449   2                      {
 450   3                              if(yn == 0)
 451   3                              {
 452   4                                      Lcdwritedata(~FontNew16X16[adder]);
 453   4                              }
 454   3                              else
 455   3                              {
 456   4                                      Lcdwritedata(FontNew16X16[adder]);
 457   4                              }
 458   3                              adder += 1;
 459   3                      }
 460   2                      for(wm = 0;wm < 2;wm++)
 461   2                      {
 462   3                              if(yn == 0)
 463   3                              {
 464   4                                      Lcdwritedata(0xff);
 465   4                              }
 466   3                              else
 467   3                              {
 468   4                                      Lcdwritedata(0x00);
 469   4                              }
 470   3                      }
 471   2                      SetRamAddr(y + 1 , x);
 472   2      
 473   2                      for(wm = 0;wm < 14;wm++)
 474   2                      {
 475   3                              if(yn == 0)
 476   3                              {
 477   4                                      Lcdwritedata(~FontNew16X16[adder]);
 478   4                              }
 479   3                              else
 480   3                              {
 481   4                                      Lcdwritedata(FontNew16X16[adder]);
 482   4                              }
 483   3                              adder += 1;
 484   3                      }
 485   2                      for(wm = 0;wm < 2;wm++)
 486   2                      {
 487   3                              if(yn == 0)
 488   3                              {
C51 COMPILER V8.08   LCD128_64                                                             01/09/2008 13:45:48 PAGE 9   

 489   4                                      Lcdwritedata(0xff);
 490   4                              }
 491   3                              else
 492   3                              {
 493   4                                      Lcdwritedata(0x00);
 494   4                              }
 495   3                      }
 496   2      
 497   2      
 498   2              }
 499   1              else                                            //找不到字显示空格                      
 500   1              {
 501   2                      ii += 1;SetRamAddr(y , x);
 502   2                      for(wm = 0;wm < 16;wm++)
 503   2                      {
 504   3                              if(yn == 0)
 505   3                              {
 506   4                                      Lcdwritedata(0xff);
 507   4                              }
 508   3                              else
 509   3                              {
 510   4                                      Lcdwritedata(0x00);
 511   4                              }
 512   3                      }
 513   2                      SetRamAddr(y + 1 , x);
 514   2                      for(wm = 0;wm < 16;wm++)
 515   2                      {
 516   3                              if(yn == 0)
 517   3                              {
 518   4                                      Lcdwritedata(0xff);
 519   4                              }
 520   3                              else
 521   3                              {
 522   4                                      Lcdwritedata(0x00);
 523   4                              }
 524   3                      }
 525   2              }
 526   1      }
 527          /*******************************************************************************
 528          //函数名:void Print(uchar y, uchar x, uchar ch[], uint yn)
 529          //功能:实现汉字及字母混合显示
 530          //输入:x ,y 坐标,ch[]待显示的汉字或字母,yn是否反黑
 531          //输出:无
 532          ********************************************************************************/
 533          void Print(uchar y, uchar x, uchar ch[], uint yn)
 534          {
 535   1              uchar ch2[3];
 536   1              uchar ii;
 537   1              ii = 0;
 538   1              while(ch[ii] != '\0')
 539   1              {
 540   2                      if(ch[ii] > 120)
 541   2                      {
 542   3                              ch2[0] = ch[ii];
 543   3                              ch2[1] = ch[ii + 1];
 544   3                              ch2[2] = '\0';                  //汉字为两个字节
 545   3                              Print16(y , x , ch2 , yn);      //显示汉字
 546   3                              x += 16;
 547   3                              ii += 2;
 548   3                      }
 549   2                      else
 550   2                      {
C51 COMPILER V8.08   LCD128_64                                                             01/09/2008 13:45:48 PAGE 10  

 551   3                              ch2[0] = ch[ii];        
 552   3                              ch2[1] = '\0';                  //字母占一个字节
 553   3                              Print8(y , x , ch2 , yn);       //显示字母
 554   3                              x += 8;
 555   3                              ii += 1;
 556   3                      }
 557   2              }
 558   1      }
 559          
 560          /*******************************************************************************
 561          //函数名:void ClearCol(uchar Begin , uchar End)
 562          //功能:清除列
 563          //输入:Begin开始处   End结束处
 564          //输出:无
 565          ********************************************************************************
 566          void ClearCol(uchar Begin , uchar End)
 567          {
 568                  uchar i;
 569                  for(i=Begin;i <= End ; i++)
 570                  {
 571                          Print6(Begin , 0 ,"                   ", 1);
 572                  }
 573          }*/
 574          
 575          /*******************************************************************************
 576          //函数名:void Rectangle(uchar x1,uchar y1,uchar x2,uchar y2)
 577          //功能:画直线函数,本函数目前只能画水平和垂直线
 578          //输入:x1,y1(第一个点)   x2,y2第二个点
 579          //输出:无
 580          ********************************************************************************/
 581          void Rectangle(uchar x1,uchar y1,uchar x2,uchar y2)
 582          {
 583   1      
 584   1              uchar ii;
 585   1      
 586   1              for(ii=x1; ii<x2; ii++)
 587   1              {               
 588   2                      SetRamAddr(y1,ii);
 589   2                      Lcdwritedata(0x08);
 590   2                      SetRamAddr(y2,ii);
 591   2                      Lcdwritedata(0x08);             //画横线
 592   2              }
 593   1              SetRamAddr(y1,x1);
 594   1              Lcdwritedata(0xF0);
 595   1              SetRamAddr(y1,x2);
 596   1              Lcdwritedata(0xF0);
 597   1      
 598   1              for(ii = y1+1;ii<y2;ii++)
 599   1              {               
 600   2                      SetRamAddr(ii,x1);
 601   2                      Lcdwritedata(0xff);
 602   2                      SetRamAddr(ii,x2);
 603   2                      Lcdwritedata(0xff);             //画竖线
 604   2              }
 605   1      
 606   1              SetRamAddr(y2,x1);
 607   1              Lcdwritedata(0x0F);
 608   1              SetRamAddr(y2,x2);
 609   1              Lcdwritedata(0x0F);
 610   1      }
 611                  

C51 COMPILER V8.08   LCD128_64                                                             01/09/2008 13:45:48 PAGE 11  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1527    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2      76
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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