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

📄 main.lst

📁 LCD多级菜单显示程序!320*240的LCD显示器!全部调试通过的!
💻 LST
📖 第 1 页 / 共 3 页
字号:
 183   4                                                      ArrayLine--;
 184   4                                              else
 185   4                                                      ScrLine--;                              //如果屏幕指针不在第一行,则向上移动
 186   4                                      }
 187   3                                      break;
 188   3                              case DOWN:                                                      //向下的逻辑与向上的逻辑相反
 189   3                              case SUB:
 190   3                                  if (ArrayLine>=ARRAYLINE)           //#define ARRAYLINE 2
 191   3                                  {
 192   4                                      if (ScrLine>=3)
 193   4                                              {
 194   5                                                      ScrLine = 0;
 195   5                                                      ArrayLine = 0;
 196   5                                              }
 197   4                                              else
 198   4                                                      ScrLine++;
 199   4                                      }
 200   3                                      else
 201   3                                      {
 202   4                                              if (ScrLine>=3)
 203   4                                                      ArrayLine++;
 204   4                                              else
 205   4                                                      ScrLine++;
 206   4                                      }
 207   3                                      break;
 208   3                              case ENTER:
 209   3                                      d_second(ArrayLine+ScrLine);            //进入菜单项对应的二级菜单
 210   3                                      break;
 211   3                              case ESC:
 212   3                                      InitLcd();
 213   3                                      return;
 214   3                              }
 215   2                              }               
 216   1              }
 217          
 218          
 219          //*****************************************************************
 220          //二级子菜单 一
 221          //*****************************************************************
 222          void menu_2_1(void)
 223          {       
 224   1              unsigned char temp_array,key_value,temp_scr;
 225   1              temp_array = ArrayLine;
 226   1              temp_scr = ScrLine;
 227   1          ArrayLine=0;
 228   1              ScrLine=0;
 229   1              while(1)
 230   1              {       ReverseLine(ScrLine);
 231   2                      PrintStr(0,0,second_menu_1[ArrayLine]);
 232   2                      PrintStr(1,0,second_menu_1[ArrayLine+1]);
 233   2                      PrintStr(2,0,second_menu_1[ArrayLine+2]);
 234   2                      PrintStr(3,0,second_menu_1[ArrayLine+3]);
 235   2      
 236   2                      while(1)
 237   2                      {       key_value=GetKey(12);
 238   3                              if(key_value!=0xff)
 239   3                               break;
 240   3                       }
 241   2                              switch(key_value)
C51 COMPILER V7.08   MAIN                                                                  10/31/2007 10:13:27 PAGE 5   

 242   2                              {
 243   3                                      /* 当按向上键和加号键时向上移动*/
 244   3                                      case UP:
 245   3                                      case PLUS:
 246   3                                          if (ArrayLine==0)                           //当数组指针在第一行时,只有此时才考虑到最后一行
 247   3                                          {
 248   4                                              if (ScrLine==0)                         //如果屏幕指针在第一行则到最后一行
 249   4                                                      {
 250   5                                                              ScrLine = 3;
 251   5                                                              ArrayLine = 4;
 252   5                                                      }
 253   4                                                      else                                            //如果屏幕指针没有在最后一行则向上移动
 254   4                                                              ScrLine--;
 255   4                                              }
 256   3                                              else                                                    //如果数组指针不在第一行
 257   3                                              {
 258   4                                                      if (ScrLine==0)                         //如果屏幕指针在第一行,则要向上滚屏
 259   4                                                              ArrayLine--;
 260   4                                                      else
 261   4                                                              ScrLine--;                              //如果屏幕指针不在第一行,则向上移动
 262   4                                              }
 263   3                                              break;
 264   3                                      case DOWN:                                                      //向下的逻辑与向上的逻辑相反
 265   3                                      case SUB:
 266   3                                          if (ArrayLine>=4)
 267   3                                          {
 268   4                                              if (ScrLine>=3)
 269   4                                                      {
 270   5                                                              ScrLine = 0;
 271   5                                                              ArrayLine = 0;
 272   5                                                      }
 273   4                                                      else
 274   4                                                              ScrLine++;
 275   4                                              }
 276   3                                              else
 277   3                                              {
 278   4                                                      if (ScrLine>=3)
 279   4                                                              ArrayLine++;
 280   4                                                      else
 281   4                                                              ScrLine++;
 282   4                                              }
 283   3                                              break;
 284   3                                      case ENTER:
 285   3                                      //menu3(ArrayLine+ScrLine);
 286   3                                              break;
 287   3                                      case ESC:
 288   3                                              ScrLine = temp_scr;
 289   3                                              ArrayLine = temp_array;
 290   3                                              return;
 291   3                              }
 292   2                              }
 293   1      }
 294          
 295          //*****************************************************************
 296          //二级子菜单 二
 297          //*****************************************************************
 298          void menu_2_2(void)
 299          {       
 300   1              unsigned char temp_array,key_value,temp_scr;
 301   1              temp_array = ArrayLine;
 302   1              temp_scr = ScrLine;
 303   1          ArrayLine=0;
C51 COMPILER V7.08   MAIN                                                                  10/31/2007 10:13:27 PAGE 6   

 304   1              ScrLine=0;
 305   1              InitLcd();
 306   1              while(1)
 307   1              {       ReverseLine(ScrLine);
 308   2                      PrintStr(0,0,second_menu_2[ArrayLine]);
 309   2                      PrintStr(1,0,second_menu_2[ArrayLine+1]);
 310   2                      PrintStr(2,0,second_menu_2[ArrayLine+2]);
 311   2                      PrintStr(3,0,second_menu_2[ArrayLine+3]);
 312   2      
 313   2                      while(1)
 314   2                      {       key_value=GetKey(12);
 315   3                              if(key_value!=0xff)
 316   3                               break;
 317   3                       }
 318   2                              switch(key_value)
 319   2                              {
 320   3                                      /* 当按向上键和加号键时向上移动*/
 321   3                                      case UP:
 322   3                                      case PLUS:
 323   3                                          if (ArrayLine==0)                           //当数组指针在第一行时,只有此时才考虑到最后一行
 324   3                                          {
 325   4                                              if (ScrLine==0)                         //如果屏幕指针在第一行则到最后一行
 326   4                                                      {
 327   5                                                              ScrLine = 3;
 328   5                                                              ArrayLine = 4;
 329   5                                                      }
 330   4                                                      else                                            //如果屏幕指针没有在最后一行则向上移动
 331   4                                                              ScrLine--;
 332   4                                              }
 333   3                                              else                                                    //如果数组指针不在第一行
 334   3                                              {
 335   4                                                      if (ScrLine==0)                         //如果屏幕指针在第一行,则要向上滚屏
 336   4                                                              ArrayLine--;
 337   4                                                      else
 338   4                                                              ScrLine--;                              //如果屏幕指针不在第一行,则向上移动
 339   4                                              }
 340   3                                              break;
 341   3                                      case DOWN:                                                      //向下的逻辑与向上的逻辑相反
 342   3                                      case SUB:
 343   3                                          if (ArrayLine>=4)
 344   3                                          {
 345   4                                              if (ScrLine>=3)
 346   4                                                      {
 347   5                                                              ScrLine = 0;
 348   5                                                              ArrayLine = 0;
 349   5                                                      }
 350   4                                                      else
 351   4                                                              ScrLine++;
 352   4                                              }
 353   3                                              else
 354   3                                              {
 355   4                                                      if (ScrLine>=3)
 356   4                                                              ArrayLine++;
 357   4                                                      else
 358   4                                                              ScrLine++;
 359   4                                              }
 360   3                                              break;
 361   3                                      case ENTER:
 362   3                                      //menu3(ArrayLine+ScrLine);
 363   3                                              break;
 364   3                                      case ESC:
 365   3                                              ScrLine = temp_scr;
C51 COMPILER V7.08   MAIN                                                                  10/31/2007 10:13:27 PAGE 7   

 366   3                                              ArrayLine = temp_array;
 367   3                                              return;
 368   3                              }
 369   2                              }
 370   1      }
 371          
 372          void menu_2_3(void){
 373   1      

⌨️ 快捷键说明

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