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

📄 1335c51.lst

📁 1335液晶的光标控制
💻 LST
📖 第 1 页 / 共 4 页
字号:
 202          
 203          /***************************************/
 204          void  TestDisplay()
 205          {
 206   1              Uchar i;
 207   1              for(i=0;i<12;i++)                               //目前测脉冲个数,所以是12,真正测多少秒时,换成13
 208   1              {
 209   2                      Rslt0[i]=temp[i];
 210   2              }
 211   1      }
 212          
 213          
 214          /*************************转换成ASC码************************/
 215          void TryDisplay(Uchar x,Uchar y,Uchar*ptr)
 216          {
 217   1              Uchar i,c1;
 218   1      /*      if(ptr=SET0) c1=6;
 219   1              else if(ptr=Rslt0) c1=13;
 220   1              else  c1=7; 
 221   1      */
 222   1      //      c1=sizeof(ptr)/sizeof(Uchar);
 223   1              for(i=0;i<6;i++)
 224   1              {
 225   2                  switch(ptr[i])
 226   2                      {
 227   3                              case 0:dprintf(x,y,ASC0,0);      break; 
 228   3                              case 1:dprintf(x,y,ASC1,0);      break; 
 229   3                              case 2:dprintf(x,y,ASC2,0);      break; 
 230   3                              case 3:dprintf(x,y,ASC3,0);      break; 
 231   3                              case 4:dprintf(x,y,ASC4,0);      break; 
 232   3                              case 5:dprintf(x,y,ASC5,0);      break; 
 233   3                              case 6:dprintf(x,y,ASC6,0);      break; 
 234   3                              case 7:dprintf(x,y,ASC7,0);      break; 
 235   3                              case 8:dprintf(x,y,ASC8,0);      break; 
 236   3                              case 9:dprintf(x,y,ASC9,0);      break; 
 237   3                              default:  dprintf(x,y,ASCdot,0);        
 238   3                      }
C51 COMPILER V8.08   1335C51                                                               04/26/2008 21:36:20 PAGE 5   

 239   2                      x++;
 240   2              }
 241   1      }
*** WARNING C280 IN LINE 217 OF 1335C51.C: 'c1': unreferenced local variable
 242          
 243           void TryDisplay13(Uchar x,Uchar y,Uchar*ptr)
 244          {
 245   1              Uchar i,c1;
 246   1      //      c1=sizeof(ptr);
 247   1              for(i=0;i<13;i++)
 248   1              {
 249   2                  switch(ptr[i])
 250   2                      {
 251   3                              case 0:dprintf(x,y,ASC0,0);      break; 
 252   3                              case 1:dprintf(x,y,ASC1,0);      break; 
 253   3                              case 2:dprintf(x,y,ASC2,0);      break; 
 254   3                              case 3:dprintf(x,y,ASC3,0);      break; 
 255   3                              case 4:dprintf(x,y,ASC4,0);      break; 
 256   3                              case 5:dprintf(x,y,ASC5,0);      break; 
 257   3                              case 6:dprintf(x,y,ASC6,0);      break; 
 258   3                              case 7:dprintf(x,y,ASC7,0);      break; 
 259   3                              case 8:dprintf(x,y,ASC8,0);      break; 
 260   3                              case 9:dprintf(x,y,ASC9,0);      break; 
 261   3                              default:  dprintf(x,y,ASCdot,0);        
 262   3                      }
 263   2                      x--;
 264   2              }
 265   1      }
*** WARNING C280 IN LINE 245 OF 1335C51.C: 'c1': unreferenced local variable
 266          
 267          /*******************************keytest*************/
 268          
 269          void KeyDisplay(Uchar x,Uchar y,Uchar val)
 270          {
 271   1      //      Uchar i,c1;
 272   1      /*      if(ptr=SET0) c1=6;
 273   1              else if(ptr=Rslt0) c1=13;
 274   1              else  c1=7; 
 275   1      */
 276   1      //      c1=sizeof(ptr)/sizeof(Uchar);
 277   1                  switch(val)
 278   1                      {
 279   2                              case 0:dprintf(x,y,ASC0,0);      break; 
 280   2                              case 1:dprintf(x,y,ASC1,0);      break; 
 281   2                              case 2:dprintf(x,y,ASC2,0);      break; 
 282   2                              case 3:dprintf(x,y,ASC3,0);      break; 
 283   2                              case 4:dprintf(x,y,ASC4,0);      break; 
 284   2                              case 5:dprintf(x,y,ASC5,0);      break; 
 285   2                              case 6:dprintf(x,y,ASC6,0);      break; 
 286   2                              case 7:dprintf(x,y,ASC7,0);      break; 
 287   2                              case 8:dprintf(x,y,ASC8,0);      break; 
 288   2                              case 9:dprintf(x,y,ASC9,0);      break; 
 289   2                              default:  dprintf(x,y,ASCdot,0);        
 290   2                      }
 291   1                      x--;
 292   1              
 293   1      }
 294          
 295          
 296          //============================== 西文显示演示程序 ==============================
 297          // 仅仅用于文本方式下的西文字符串显示,本函数只写入第3显示区
 298          
C51 COMPILER V8.08   1335C51                                                               04/26/2008 21:36:20 PAGE 6   

 299          void TextDisp( Uchar Ox,Uchar Oy, Uchar code *ptr ) {
 300   1      
 301   1      Uchar TexLength=0,ii;
 302   1      Uint  iTemp;
 303   1      
 304   1              while(ptr[TexLength]>0x1f) {TexLength++;};   // 获取字串长度
 305   1      
 306   1              iTemp = Oy*paraP9+Ox;
 307   1              WriteCommand( CsrForm );                // 光标形状设置,代码0x5d
 308   1              WriteData( 0x07 );                              // 设置光标水平点为CSX=8
 309   1              WriteData( 0x07 );                              // 光标为块状形式,垂直点为CSY=8
 310   1      
 311   1              WriteCommand( Ovlay );                  // 显示合成方式设置.代码0x5b
 312   1              WriteData( 0x01 );                              // 设置参数:显示3区为文本属性,二重xor合成
 313   1      
 314   1              WriteCommand( DispOn );                 // 写入指令DISP ON/OFF代码,后续参数:
 315   1              WriteData( 0x56 );                              // 01 01 01 10显示1~4区开显示,光标闪烁显示
 316   1              
 317   1              iTemp = (Uint)Oy * paraP9 + Ox;                     // 光标位置到实际ram地址换算
 318   1              
 319   1              WriteCommand( CsrDirR );                                        // 自动右移光标指向
 320   1              
 321   1              WriteCommand( CsrW );                                           // 制定光标位置
 322   1              WriteData( (Uchar)(iTemp &0xff) );                      // 设置光标地址CSR
 323   1              WriteData( (Uchar)(iTemp /256 + BasePart3) );   // 加入显示三区起始地址SAD2H
 324   1      
 325   1              WriteCommand( mWrite );                                         // 当前位置写入数据指令
 326   1      
 327   1              for(ii=0;ii < TexLength;ii++) {
 328   2      
 329   2                      WriteData( ptr[ii] );                                   // 写入显示字符代码
 330   2              }
 331   1              DelayMs(350);
 332   1      }
 333          
 334          /*==============================================================================
 335          ;       该汉字字模是根据清华蓬远公司提供的PICKHZ.EXE软件从计算机中提取的汉字 16x16      
 336                  点阵字模, 其排列顺序是: 前16字节为汉字左半部分(自上而下), 后16字节为汉字右
 337                  半部分(自上而下). 下面提供的在文本方式下汉字的写入子程序可以在文本显示区任意
 338                  地方写入汉字. 程序如下:
 339          ;------------ 文本方式下汉字写入子程序 ------------
 340          ;       在文本方式下汉字显示演示程序段 
 341          ==============================================================================*/
 342          void PutWordInAlpha( void ) {
 343   1      //      return;                                                         // 首先建立CGRAM,
 344   1      
 345   1              WriteCommand( Ovlay );                          // 显示合成方式设置.代码0x5b
 346   1              WriteData( 0x01 );                                      // 设置参数:显示3区为文本属性,二重xor合成
 347   1      
 348   1              BuildCgram( 0,8 );                                      // 调建立CGRAM子程序设置写入字模量八个汉字模
 349   1              
 350   1      // 开始调用显示cgram内所建立的汉字模    
 351   1              PutCdotInAlpha(28,24,0x88);                     // 调文本方式下汉字写入子程序,88H= "文"
 352   1              PutCdotInAlpha(30,24,0x8c);                     // 调文本方式下汉字写入子程序,8cH= "本"
 353   1              PutCdotInAlpha(32,24,0x90);                     // 调文本方式下汉字写入子程序,90H= "方"
 354   1              PutCdotInAlpha(34,24,0x94);                     // 调文本方式下汉字写入子程序,94H= "式"
 355   1              PutCdotInAlpha(36,24,0x80);                     // 调文本方式下汉字写入子程序,80H= "测"
 356   1              PutCdotInAlpha(38,24,0x84);                     // 调文本方式下汉字写入子程序,84H= "试"
 357   1              DelayMs(50);
 358   1      }
 359          
 360          //; 图形方式下汉字显示方法,x方向2字节一个汉字
C51 COMPILER V8.08   1335C51                                                               04/26/2008 21:36:20 PAGE 7   

 361          void PutWordInGraph( void ) {   
 362   1      //x坐标以半个汉字定位左起0开始计算
 363   1      //y坐标以像素行定位,顶部0开始计算
 364   1      //汉字码以点阵码列表所对应32字节位单位进界,从0开始计算
 365   1      
 366   1      
 367   1      /*    PutCdotInGraph(0,0,30,16);
 368   1          PutCdotInGraph(2,0,0,16);
 369   1          PutCdotInGraph(4,0,2,16);
 370   1          PutCdotInGraph(6,0,3,16);
 371   1          PutCdotInGraph(8,0,4,16);
 372   1          PutCdotInGraph(10,0,7,16);
 373   1          PutCdotInGraph(12,0,8,16);
 374   1          PutCdotInGraph(14,0,11,16);           //延时继电器测试状态 
 375   1          PutCdotInGraph(16,0,12,16);
 376   1      
 377   1       */
 378   1      
 379   1              PutCdotInGraph(0,32,26,16,1);                      // 通  
 380   1              PutCdotInGraph(2,32,27,16,1);                      //道 
 381   1       
 382   1       /*   PutCdotInGraph(5,32,17,16);
 383   1          PutCdotInGraph(7,32,18,16);
 384   1              PutCdotInGraph(9,32,19,16);                      //设置值  
 385   1      */   
 386   1              PutCdotInGraph(14,32,38,16,1);            //实测值 
 387   1          PutCdotInGraph(16,32,7,16,1);
 388   1              dprintf(18,32,DanWei1,1);    
 389   1      
 390   1          PutCdotInGraph(26,24,21,16,1);                //绝对误差 
 391   1          PutCdotInGraph(28,24,22,16,1);
 392   1          PutCdotInGraph(26,40,23,16,1);
 393   1              dprintf(28,40,DanWei3,1);
 394   1      
 395   1          PutCdotInGraph(34,24,25,16,1);
 396   1          PutCdotInGraph(36,24,22,16,1);
 397   1          PutCdotInGraph(34,40,23,16,1);      //相对误差 
 398   1              dprintf(36,40,DanWei4,1);
 399   1      
 400   1      
 401   1      
 402   1       
 403   1      }
 404          
 405          void PutWordInGraph1( void ) 
 406          {
 407   1                
 408   1       
 409   1                PutCdotInGraph(0,0,15,16);
*** WARNING C209 IN LINE 409 OF 1335C51.C: '_PutCdotInGraph': too few actual parameters
 410   1          PutCdotInGraph(2,0,31,16);
*** WARNING C209 IN LINE 410 OF 1335C51.C: '_PutCdotInGraph': too few actual parameters

⌨️ 快捷键说明

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