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

📄 ra8835.lst

📁 C8051F020+RA8835 I/O口控制 中英文混合显示
💻 LST
📖 第 1 页 / 共 3 页
字号:
 422          **
 423          ** 全局变量: 无
 424          ** 调用模块:  
 425          **---------------------------------------------------------------------------
 426          ** 作  者:      wjf
 427          ** 日  期:      2008/08/09
C51 COMPILER V7.20   RA8835                                                                08/19/2008 11:47:52 PAGE 8   

 428           ============================================================================*/ 
 429           
 430          void printfLeftRight(Uchar x,Uchar y, Uchar flag, Uchar att) 
 431          { 
 432   1              
 433   1              Uchar i,j;
 434   1              WriteCommand( CsrDirD );                                                                                        
 435   1              Locatexy(x,y,att);                                                                                      
 436   1              for(i=0;i<2;i++)                                                                                                         
 437   1              { 
 438   2                              Locatexy(x+i,y,att); 
 439   2                              WriteCommand( mWrite );                                                                                         
 440   2                              for(j=0;j<16;j++) WriteData( Left_Right[flag][j*2 + i]); 
 441   2              } 
 442   1                      
 443   1      }
 444          
 445          /*====================================================== 
 446          ** 函数名称: printlcd_single
 447          ** 功能描述: 显示一个车牌号位
 448          ** 输入参数: 无
 449          **
 450          ** 输出参数: 无
 451          **
 452          ** 全局变量: 无
 453          ** 调用模块:  车牌输入时使用
 454          **----------------------------------------------------
 455          ** 作  者:      wjf
 456          ** 日  期:      2008/08/08
 457          ======================================================*/ 
 458          void printlcd_single(void)//显示一个车牌号位
 459          {
 460   1              unsigned char i=0,j=0,temp=0;
 461   1              WriteCommand( CsrDirD );                                                                                        
 462   1              Locatexy(18,0x30,0);      
 463   1              switch (yuyan_sel)
 464   1              {
 465   2                      case 0:
 466   2                      {
 467   3            
 468   3                              for(i=0;i<2;i++)                                                                                                         // 汉字
 469   3                              { 
 470   4                                      Locatexy(18+i,0x30,0); 
 471   4                                      WriteCommand( mWrite );                                                                                          
 472   4                                      for(j=0;j<16;j++) WriteData( Cdotlib[byte_sel+106].Msk[j*2 + i]); 
 473   4                              } 
 474   3                              break;
 475   3                }
 476   2                      case 1:                                                                                                                                                                                                                         //字母
 477   2                      {
 478   3                              WriteCommand( mWrite );                                                                                         
 479   3                              for(j=0;j<16;j++) WriteData(ASC_MSK[(byte_sel+33)*16 +j ]); 
 480   3                              break;
 481   3                      }
 482   2                      default:                                                                                                                                                                                                                        //数字
 483   2                      {
 484   3                              if(byte_sel==10) temp=0;
 485   3                              else temp=byte_sel;
 486   3                              WriteCommand( mWrite );                                                                                         
 487   3                              for(j=0;j<16;j++) WriteData(ASC_MSK[(temp+16)*16 +j ]); 
 488   3                              break;
 489   3                      }
C51 COMPILER V7.20   RA8835                                                                08/19/2008 11:47:52 PAGE 9   

 490   2              }
 491   1      } 
 492          
 493          
 494          /*====================================================== 
 495          ** 函数名称: printlcd_car_show
 496          ** 功能描述: 显示一个车牌号
 497          ** 输入参数: Uchar x  显示字符串的横坐标  8点一字节位置
 498                       Uchar y  显示字符串的纵坐标  一条扫描线定位 
 499                       Uchar * pcar  车牌号存储数字 大小为7
 500          **
 501          ** 输出参数: 无
 502          **
 503          ** 全局变量: 无
 504          ** 调用模块:  车牌显示时使用
 505          **----------------------------------------------------
 506          ** 作  者:      wjf
 507          ** 日  期:      2008/08/11
 508          ======================================================*/ 
 509          void printlcd_car_show(Uchar x,Uchar y, Uchar * pcar, Uchar att)//显示一个车牌号位
 510          {
 511   1              Uchar i=0,j,k,uRow,uCol,c1; 
 512   1              uRow=x;
 513   1              uCol=y;
 514   1              WriteCommand( CsrDirD ); 
 515   1              Locatexy(uRow,uCol,att);
 516   1        while(i<7) 
 517   1              { 
 518   2                      c1 = pcar[i]; 
 519   2                      if(c1 == 91)
 520   2                      {
 521   3                                      WriteCommand( mWrite );                                                                                         
 522   3                                      for(j=0;j<16;j++) WriteData(ASC_MSK[(0)*16 +j ]); 
 523   3                                      uRow++;                                                                                                                                                                                                 
 524   3                                      i++; 
 525   3                      }
 526   2                      else if(c1 <55)                                                                                                 
 527   2                      { 
 528   3                              for(k=0;k<2;k++)                                                                                                        
 529   3                              { 
 530   4                                      Locatexy(uRow+k,uCol,att); 
 531   4                                      WriteCommand( mWrite );                                                                                          
 532   4                                      for(j=0;j<16;j++) WriteData( Cdotlib[pcar[i]+106].Msk[j*2 + k]); 
 533   4                              } 
 534   3                              uRow +=2;                                                                                                       
 535   3                              i++;                                                                            
 536   3                      } 
 537   2                      else                                                                                                            
 538   2                      { 
 539   3                              if(pcar[i]<81)
 540   3                              {
 541   4                      WriteCommand( mWrite );                                                                                         
 542   4                                      for(j=0;j<16;j++) WriteData(ASC_MSK[(pcar[i]-55+33)*16 +j ]); 
 543   4                                      uRow++;                                                                                                                                                                                                 
 544   4                                      i++; 
 545   4                              
 546   4                              }
 547   3                              else
 548   3                              {
 549   4                      WriteCommand( mWrite );                                                                                         
 550   4                                      for(j=0;j<16;j++) WriteData(ASC_MSK[(pcar[i]-81+16)*16 +j ]); 
 551   4                                      uRow++;                                                                                                                                                                                                 
C51 COMPILER V7.20   RA8835                                                                08/19/2008 11:47:52 PAGE 10  

 552   4                                      i++; 
 553   4                              }
 554   3                      
 555   3                      } 
 556   2                      if(uRow >= 40)                                                                  
 557   2                      { 
 558   3                              uCol += 16;                                                                             
 559   3                              uRow = 0;                                                                                       
 560   3                              if( uCol >= 240 ) uCol = 0; 
 561   3                      } 
 562   2                      Locatexy(uRow,uCol,att); 
 563   2              } 
 564   1      } 
 565          
 566          /*====================================================== 
 567          ** 函数名称: printlcd_char
 568          ** 功能描述: 显示一个字符
 569          ** 输入参数: Uchar ascii  显示字符的ASCII码
 570          **
 571          ** 输出参数: 无
 572          **
 573          ** 全局变量: 无
 574          ** 调用模块:  
 575          **----------------------------------------------------
 576          ** 作  者:      wjf
 577          ** 日  期:      2008/08/12
 578          ======================================================*/ 
 579          void printlcd_char(Uchar ascii_valu)
 580          {
 581   1                                      Uchar j=0;
 582   1                                      WriteCommand( CsrDirD );  
 583   1                                      WriteCommand( mWrite );                                                                                         
 584   1                                      for(j=0;j<16;j++) WriteData( ASC_MSK[(ascii_valu-0x20)*16 +j ]); 
 585   1      }
 586          
 587          /*====================================================== 
 588          ** 函数名称: lcd_CSR
 589          ** 功能描述: 光标显示开关
 590          ** 输入参数: Uchar flag  0 ——关   1——开
 591          **
 592          ** 输出参数: 无
 593          **
 594          ** 全局变量: 无
 595          ** 调用模块:  
 596          **----------------------------------------------------
 597          ** 作  者:      wjf
 598          ** 日  期:      2008/08/12
 599          ======================================================*/ 
 600          void lcd_CSR(Uchar flag)
 601          {
 602   1                                      if(flag==1)
 603   1                                              {
 604   2                                                              WriteCommand( CsrForm );                        //设置光标形状
 605   2                                                              WriteData( 0x07 );
 606   2                                                              WriteData( 0x02 );
 607   2                                              WriteCommand( DispOn );                         // 显示状态设置 
 608   2                                              WriteData( 0x56 );                              // 显示 1~4 区开显示,光标开显示
 609   2                                              }
 610   1                               else if(flag==0)
 611   1                                      {
 612   2                                                              WriteCommand( CsrForm );                        //设置光标形状
 613   2                                                              WriteData( 0x07 );
C51 COMPILER V7.20   RA8835                                                                08/19/2008 11:47:52 PAGE 11  

 614   2                                                              WriteData( 0x00 );
 615   2                                              WriteCommand( DispOn );                         // 显示状态设置 
 616   2                                              WriteData( 0x54 );                              // 显示 1~4 区开显示,光标开显
 617   2                                      }
 618   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1879    ----
   CONSTANT SIZE    =  10572    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      66
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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