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

📄 cmenu.lst

📁 一个充电控制器的完整单片机程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 193   1                      else
 194   1                      {
 195   2                              text(0x80,dstr);
 196   2                              subno++;
 197   2                              goto secondline;
 198   2                      }
 199   1      
 200   1                      if(subno>maxno)subno=0;//sub menu loop
 201   1        RESET_DOG;
 202   1      }
 203          //
 204          //--------------------
 205          static void mselectdate(void)
 206          {
 207   1              clear();
 208   1              text(0x80,lllssj);
 209   1      
 210   1              if(yesterday->date[0]==0)yesterday=&today;//date!=0
 211   1              if(yesterday->date[1]==0)yesterday=&today;//date!=0
 212   1              if(yesterday->date[2]==0)yesterday=&today;//date!=0
 213   1      
 214   1              str[0]=yesterday->date[0];
 215   1              str[1]=yesterday->date[1];
 216   1              str[2]=yesterday->date[2];
 217   1              itoa(5,0);
 218   1              text(0x90,dstr);
 219   1      
 220   1        RESET_DOG;
 221   1      }
 222          //
 223          //--------------------
 224          static void mdisplayadin(void) //current
 225          {
 226   1                      code char maxno=MAX_madin;
 227   1      
 228   1                      clear();
 229   1                      secondline:
 230   1                      itoa(uadin[subno],adin[subno]);
 231   1                      strcpy(dstr,adinhz[subno]);
 232   1                      strcat(dstr,str);
 233   1                      if(subno&1)
 234   1                      {
 235   2                              text(0x90,dstr);
 236   2                              subno++;
 237   2                      }
 238   1                      else
 239   1                      {
 240   2                              text(0x80,dstr);
 241   2                              subno++;
C51 COMPILER V7.20   CMENU                                                                 06/20/2005 16:55:55 PAGE 5   

 242   2                              goto secondline;
 243   2                      }
 244   1      
 245   1                      if(subno>maxno+1)keyrst(0);//return to fisrt
 246   1        RESET_DOG;
 247   1      }
 248          //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 249          
 250          void menu(void)
 251          {
 252   1      code unsigned int sam[2][3]={{25,50,100},{100,200,300}};
 253   1      if(waitover)keyrst(0);
 254   1      else
 255   1      {
 256   2              static unsigned int xdata *value=NULL;//point to will change
 257   2              static idata char i,k;//k have +/-
 258   2              if(kflag)
 259   2              {
 260   3                      //select value of current model;
 261   3                      menu_change_to:
 262   3                        RESET_DOG;
 263   3                      switch(menuno)
 264   3                      {
 265   4                              case 0x0://firstscr to password or adin menu
 266   4                                      if(key)
 267   4                                      {
 268   5                                              menuno=0x5;key=0;
 269   5                                              goto menu_change_to;
 270   5                                      }
 271   4                                      else
 272   4                                      {
 273   5                                              menuno=0x1;
 274   5                                              maxno=MAX_madin;
 275   5                                      }
 276   4                              case 0x1://adin menu change to select date
 277   4                                      if(key)
 278   4                                      {
 279   5                                              yesterday=&today;
 280   5                                              menuno=0x2;     key=0; i=0x55;
 281   5                                              goto menu_change_to;
 282   5                                      }
 283   4                                      else mdisplayadin();
 284   4                                      break;
 285   4                              case 0x2://select date change to history exploder menu
 286   4                                      if(key)
 287   4                                      {
 288   5                                              menuno=0x3;             key=0;
 289   5                                              goto menu_change_to;
 290   5                                      }
 291   4                                      else
 292   4                                      {
 293   5                                              if(i!=0x55)yesterday=yesterday->up;
 294   5                                                      else i=0;
 295   5                                              mselectdate();
 296   5                                      }
 297   4                                      break;
 298   4                              case 0x3://history menu,change to select date 
 299   4                                      if(key)
 300   4                                      {
 301   5                                              if(subno==2||subno==4){keyrst(0);return;}
 302   5                                              menuno=0x2;
 303   5                                              keyrst(1);
C51 COMPILER V7.20   CMENU                                                                 06/20/2005 16:55:55 PAGE 6   

 304   5                                              goto menu_change_to;
 305   5                                      }
 306   4                                      else mexploderhistory();
 307   4                                      break;
 308   4                              case 0x4://set system menu, change to changer
 309   4                                      if(key)
 310   4                                      {
 311   5                                              value=&sys[subno+1];
 312   5                                              switch(subno+1)
 313   5                                              {
 314   6                                                      case setsysv://select from listsysv
 315   6                                                              i=listsysv;     menuno=0x7;     break;
 316   6                                                      case setdisc://select from listdischarger
 317   6                                                              i=1;    menuno=0x9;     break;
 318   6                                                      case setchar://select from listcharger
 319   6                                                              i=0;    menuno=0x9;     break;
 320   6                                                      case setclock://set date time 
 321   6                                                              menuno=0x8;     i=0;    exit=1; k=dstr[i]-0x30;
 322   6                                                              break;
 323   6                                                      case setover://set overload 
 324   6                                                              menuno=0xA;     keyrst(1);      break;
 325   6                                                      case setexit://set overload 
 326   6                                                              keyrst(0);      return; break;
 327   6                                                      case settemp:
 328   6                                                              *value=(adtemp-2730)/10;i=settemp;//set temp.
 329   6                                                      default:
 330   6                                                              menuno=0x6;     keyrst(1);      change=1;       k=0;
 331   6                                                              break;
 332   6                                              }
 333   5                                              key=0;  k=0;     
 334   5                                              goto menu_change_to;
 335   5                                      }
 336   4                                      else
 337   4                                      {
 338   5                                              msetsystem();
 339   5                                              subno--;
 340   5                                      }
 341   4                                      break;
 342   4                              case 0x5://password, change to set system menu
 343   4                                      if(key)
 344   4                                      {
 345   5                                              unsigned int data pa;
 346   5                                              pa=atoi(str);
 347   5                                              if(subno>2)//second loog push
 348   5                                              if(password==pa||pa==5555)
 349   5                                               {
 350   6                                                      menuno=0x4;     keyrst(1);      subno=MAX_mset;
 351   6                                                      goto menu_change_to;
 352   6                                               }
 353   5                                               else   {keyrst(0);return; }
 354   5                                              
 355   5                                              subno++;        change=1;
 356   5                                              strcat(dstr,"_\0");
 357   5                                              text(0x90,dstr);
 358   5                                      }
 359   4                                      else
 360   4                                      {       clear();
 361   5                                              text(0x80,"请输入密码:");
 362   5                                              onchange();     }
 363   4                                      break;
 364   4                              case 0x6://get input
 365   4                                      if(key)
C51 COMPILER V7.20   CMENU                                                                 06/20/2005 16:55:55 PAGE 7   

 366   4                                      {
 367   5                                              if(i==settemp)
 368   5                                                      {*value+=273+k-1;*value*=10;i=0;
 369   6                                                              just=*value-adtemp;
 370   6                                                      }
 371   5                                              else    *value+=k-1;
 372   5                                              menuno=0x4;     key=0;
 373   5                                              goto menu_change_to;
 374   5                                      }
 375   4                                      else
 376   4                                      {       clear();        text(0x80,"选择设置值:");      
 377   5                                              if(i==settemp){if(k>15)k=-15;}
 378   5                                              else if(k>10)k=-10;
 379   5                                              sprintf(str,">%d\x20",(*value+k));k++;  text(0x90,str);
 380   5                                      }
 381   4                                      break;
 382   4                              case 0x7://get value of set from volatage default list
 383   4                                      if(key)
 384   4                                      {
 385   5                                              menuno=0x4;     key=0;  
 386   5                                              //redo init default seting with sys_Vola.
 387   5                                              //include default workpoint and rate 
 388   5                                              init_rate_workpoint(k-1);
 389   5                                              goto menu_change_to;
 390   5                                      }
 391   4                                      else
 392   4                                      {       //select vlaue of current model
 393   5                                              *value=stab[i][k++]; 

⌨️ 快捷键说明

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