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

📄 menu.lst

📁 C8051F120与串口、并口、D12、USB、LCD应用
💻 LST
📖 第 1 页 / 共 2 页
字号:
 186   2                      if(ReFresh==1)                          //显示菜单
 187   2                      {       
 188   3                              unsigned char X,Y;
 189   3                              Clear(36,200);
 190   3                              p=Menu;
 191   3                              p++;
 192   3                              X=GetValue(p);
 193   3                              p=Jump(p,1);
 194   3                              Y=GetValue(p);
 195   3                              p=strchr(p,')');
 196   3                              p++;
 197   3                              p=MyPrintf(X,Y,p,0);
 198   3                              ItemNum=0;
 199   3                              while(( p=strchr(p,'(') )!=NULL)
 200   3                              {       
 201   4                                      //Item
 202   4                                      char TYPE=0;            
 203   4                                      p++;
 204   4                                      X=GetValue(p);
 205   4                                      p=Jump(p,1);
 206   4                                      Y=GetValue(p);
 207   4                                      p=strchr(p,')');
 208   4                                      p++;
 209   4                                      p=MyPrintf(X,Y,p,0);
 210   4                                      p++;
 211   4                                      ParaTotal[ItemNum]=GetParaTotal(p);
 212   4                                      //Para
 213   4                                      p=Jump(p,TempList[ItemNum]);
 214   4                                      if(ItemSel==ItemNum)
 215   4                                      {
 216   5                                              TYPE=1;
 217   5                                              //显示左箭头
 218   5                                              if(TempList[ItemSel]!=0)
 219   5                                              dprintf(X+18,Y,LeftArrow);
 220   5                                              //显示右箭头
 221   5                                              if(TempList[ItemSel]!=ParaTotal[ItemSel]-1)
 222   5                                              dprintf(X+20+Len(p),Y,RightArrow);
 223   5                                      }
 224   4                                      p=MyPrintf(X+20,Y,p,TYPE);
 225   4                                      ItemNum++;      
 226   4                              }
 227   3                              ItemTotal=ItemNum;
 228   3                              ReFresh=0;                      
 229   3                      }
 230   2              
 231   2                      if(CheckKeyF==1)                        //键盘检测
 232   2                      {
 233   3                              CheckKey();
 234   3                              CheckKeyF=0;
 235   3                      }
 236   2      
 237   2                      if(Key[0].pressed==1)       //检测到上键
 238   2                      {
 239   3                      Key[0].pressed=0;
 240   3                              if(ItemSel>0)
 241   3                              {
C51 COMPILER V7.01  MENU                                                                   06/30/2007 11:42:50 PAGE 5   

 242   4                                      ItemSel--;
 243   4                                      ReFresh=1;
 244   4                              }               
 245   3                      }
 246   2      
 247   2                      if(Key[1].pressed==1)       //检测到下键
 248   2                      {
 249   3                      Key[1].pressed=0;
 250   3                              if(ItemSel<(ItemTotal-1))
 251   3                              {
 252   4                                      ItemSel++;
 253   4                                      ReFresh=1;
 254   4                              }               
 255   3                      }
 256   2      
 257   2                      if(Key[2].pressed==1)       //检测到-键
 258   2                      {
 259   3                      Key[2].pressed=0;
 260   3                              if(TempList[ItemSel]>0)
 261   3                              {
 262   4                                      TempList[ItemSel]--;
 263   4                                      ReFresh=1;
 264   4                              }               
 265   3                      }
 266   2      
 267   2                      if(Key[3].pressed==1)       //检测到+键
 268   2                      {
 269   3                      Key[3].pressed=0;
 270   3                              if(TempList[ItemSel]<ParaTotal[ItemSel]-1)
 271   3                              {
 272   4                                      TempList[ItemSel]++;
 273   4                                      ReFresh=1;
 274   4                              }               
 275   3                      }
 276   2      
 277   2      
 278   2                      if(Key[6].pressed==1)       //检测到放弃键,不修改参数值
 279   2                      {
 280   3                      ClearKey();
 281   3                              Clear(0,240);
 282   3                              return 0;               
 283   3                      }
 284   2                      
 285   2      
 286   2                      if(Key[7].pressed==1)       //检测到确定键,修改参数值
 287   2                      {
 288   3                              for(i=0;i<ItemTotal;i++)
 289   3                              ParaValueTable[i]=TempList[i];
 290   3                      ClearKey();
 291   3                              Clear(0,240);
 292   3                              return 1;               
 293   3                      }
 294   2                              
 295   2              }//while                        
 296   1      }
 297                  
 298          
 299          void Help(char * ptr)                   //文本分页显示函数,用于显示说明
 300          {
 301   1              int i;  
 302   1              char *p[5];                     //支持最多5页显示
 303   1              unsigned char currentp=0;   //记录当前页
C51 COMPILER V7.01  MENU                                                                   06/30/2007 11:42:50 PAGE 6   

 304   1              char temp=1;
 305   1              for(i=1;i<5;i++)        p[i]=&temp;
 306   1              SFRPAGE=0x0F;           
 307   1              Clear(0,240);
 308   1              p[0]=ptr;
 309   1              p[1]=tprintf(0,0,p[0]);
 310   1              dprintf(0,208,line);
 311   1              dprintf(26,224,"确定");
 312   1              if(*p[1]!='\0') dprintf(6,224,"兦");     //一页未显示完
 313   1              while(1)
 314   1              {       
 315   2                      if(CheckKeyF==1)            //键盘检测           
 316   2                      {       
 317   3                              CheckKey();
 318   3                      CheckKeyF=0;
 319   3                      }
 320   2      
 321   2                      if(Key[0].pressed==1)       //检测到上键
 322   2                      {
 323   3                              if(currentp>0)                  //可以向上翻页
 324   3                              {
 325   4                                      Clear(0,240);
 326   4                                      currentp--;
 327   4                                      tprintf(0,0,p[currentp]);
 328   4                                      dprintf(0,208,line);
 329   4                                      dprintf(26,224,"确定");
 330   4                                      dprintf(6,224,DownArrow);
 331   4                                      if(currentp==0)  
 332   4                                      dprintf(1,224,"  ");
 333   4                                      else  
 334   4                                      dprintf(1,224,UpArrow);
 335   4                              }
 336   3                              Key[0].pressed=0;
 337   3                      }
 338   2      
 339   2                      if(Key[1].pressed==1)       //检测到下键
 340   2                      {
 341   3                              if(*p[currentp+1]!='\0')                //可以向下翻页
 342   3                              {
 343   4                                      Clear(0,240);
 344   4                                      currentp++;
 345   4                                      p[currentp+1]=tprintf(0,0,p[currentp]);
 346   4                                      dprintf(0,208,line);
 347   4                                      dprintf(26,224,"确定");
 348   4                                      dprintf(1,224,UpArrow);
 349   4                                      if(p[currentp+1]==NULL)  
 350   4                                      dprintf(6,224,"  ");
 351   4                                      else
 352   4                                      dprintf(6,224,DownArrow);
 353   4                              }
 354   3                              Key[1].pressed=0;
 355   3                      }
 356   2      
 357   2                      if(Key[5].pressed==1)
 358   2                      {       
 359   3                              ClearKey();
 360   3                              Clear(0,240);
 361   3                              return;
 362   3                      }
 363   2              }
 364   1      }

C51 COMPILER V7.01  MENU                                                                   06/30/2007 11:42:50 PAGE 7   


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2522    ----
   CONSTANT SIZE    =    253    ----
   XDATA SIZE       =   ----     140
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -