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

📄 menu_func.lst

📁 自己花了很长时间编写的单片机开发板程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 246   1         chn_disp(6,0,2,8,1,8,(hz_me+64));
 247   1           
 248   1      }
 249          /*---------显示主目录-----------*/
 250          void DispMenu_Root()
 251          {
 252   1         clrscr();
 253   1         cs1=1;
 254   1         cs2=0;
 255   1         chn_disp(0,0,2,16,1,2,hz_view);
 256   1         chn_disp(2,0,2,16,1,2,hz_operation);
 257   1         chn_disp(4,0,2,16,1,2,hz_test);
 258   1         chn_disp(6,0,2,16,1,2,hz_help);
 259   1      } 
 260          /*-----------显示查看子目录----------*/
 261          void DispMenu_View()
 262          {
 263   1         clrscr();
 264   1         cs1=1;
 265   1         cs2=0;          
 266   1         chn_disp(0,0,2,16,1,2,hz_view_1);              //温度
 267   1         chn_disp(2,0,2,16,1,2,hz_view_2);              //数模
 268   1         chn_disp(4,0,2,16,1,1,hz_view_2+32);           //模数
 269   1         chn_disp(4,16,2,16,1,1,hz_view_2); 
 270   1      }
 271          /*-----------显示工具子目录----------*/
 272          void DispMenu_Operation()
 273          {
 274   1        clrscr();
 275   1        cs1=1;
 276   1        cs2=0;
 277   1        chn_disp(0,0,2,16,1,4,hz_operation_1);
 278   1        chn_disp(2,0,2,16,1,2,hz_operation_2);        //数据
 279   1        chn_disp(2,32,2,16,1,2,hz_operation_3);       //存储
 280   1        chn_disp(4,0,2,16,1,2,hz_operation_2);    //数据
 281   1        chn_disp(4,32,2,16,1,2,hz_operation_4);       //读取 
 282   1      }
 283          /*-----------显示通信子目录------------*/
 284          void DispMenu_Test()
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 6   

 285          {
 286   1        clrscr(); 
 287   1        cs1=1;
 288   1        cs2=0; 
 289   1        chn_disp(0,0,2,16,1,2,hz_test_1);
 290   1        chn_disp(0,32,2,16,1,2,hz_test_2);
 291   1        chn_disp(2,0,2,16,1,2,hz_test_1);
 292   1        chn_disp(2,32,2,16,1,2,hz_test_3);
 293   1        chn_disp(4,0,2,16,1,2,hz_test_4);
 294   1        chn_disp(4,32,2,16,1,2,hz_test_2);
 295   1        chn_disp(6,0,2,16,1,2,hz_test_4);
 296   1        chn_disp(6,32,2,16,1,2,hz_test_3);  
 297   1      }
 298          /*--------------显示帮助子目录----------*/
 299          void DispMenu_Help()
 300          {  
 301   1         clrscr();       
 302   1         num_disp(1,0,32,1);
 303   1         chn_disp(0,0,2,16,1,2,hz_help);   
 304   1         chn_disp(2,0,2,16,1,2,hz_about);     
 305   1      }
 306          /*-------------------输出文本-------------------------*/
 307          void GetTextInput()
 308          {
 309   1         while(NowKey==KEY_shift)                                       //2ND上当键判断
 310   1         {
 311   2                EX0=1;
 312   2                cs1=0;
 313   2                //cs2=1;      
 314   2                chn_disp(6,48,2,16,1,1,hz_shift);
 315   2                if (NowKey==KEY_1)
 316   2                     NowKey=KEY_A;
 317   2                if (NowKey==KEY_2)
 318   2                     NowKey=KEY_B;
 319   2                if (NowKey==KEY_3)
 320   2                     NowKey=KEY_C;
 321   2                if (NowKey==KEY_4)
 322   2                     NowKey=KEY_D;
 323   2                if (NowKey==KEY_5)
 324   2                     NowKey=KEY_E;
 325   2                if (NowKey==KEY_6)
 326   2                     NowKey=KEY_F;
 327   2         }
 328   1         chn_disp(6,48,2,16,1,1,hz_null);                                                      
 329   1              if (NowKeyReg)                                        //    判断当前按键有无变化
 330   1                      {  
 331   2                         KeyInputTemp=1;
 332   2                         if (NowKey==KEY_0)                             //    查当前按键的键对应的数字
 333   2                              TextInputTemp=0;
 334   2                         else if(NowKey==KEY_1)
 335   2                              TextInputTemp=1;
 336   2                         else if(NowKey==KEY_2)
 337   2                              TextInputTemp=2;
 338   2                         else if(NowKey==KEY_3)
 339   2                              TextInputTemp=3;
 340   2                         else if(NowKey==KEY_4)
 341   2                              TextInputTemp=4;
 342   2                         else if(NowKey==KEY_5)
 343   2                              TextInputTemp=5;
 344   2                         else if(NowKey==KEY_6)
 345   2                              TextInputTemp=6;
 346   2                         else if(NowKey==KEY_7)
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 7   

 347   2                              TextInputTemp=7;
 348   2                         else if(NowKey==KEY_8)
 349   2                              TextInputTemp=8;
 350   2                         else if(NowKey==KEY_9)
 351   2                              TextInputTemp=9;
 352   2                         else if(NowKey==KEY_A)
 353   2                              TextInputTemp=10;
 354   2                         else if(NowKey==KEY_B)
 355   2                              TextInputTemp=11;
 356   2                         else if(NowKey==KEY_C)
 357   2                              TextInputTemp=12;
 358   2                         else if(NowKey==KEY_D)
 359   2                              TextInputTemp=13;
 360   2                         else if(NowKey==KEY_E)
 361   2                              TextInputTemp=14;
 362   2                         else if(NowKey==KEY_F)
 363   2                              TextInputTemp=15;
 364   2                         else   KeyInputTemp=0;        
 365   2                         NowKeyReg=0;
 366   2                  }
 367   1               
 368   1      }
 369          /*---------------------------文本输入------------------------------*/
 370          void Menu_TextInput()
 371          {
 372   1               uchar x,y,j;
 373   1               bit cs3=1;      
 374   1               clrscr();               
 375   1               KeyInputTemp=0;
 376   1                       
 377   1               while (NowKey!=KEY_ESC)                                       //   按ESC键退出
 378   1               {
 379   2                  EX0=1;                                               
 380   2                      GetTextInput();
 381   2                      if (KeyInputTemp==1)                                       //    输出数字
 382   2                       { 
 383   3                             num_disp(cs3,x,y,TextInputTemp);                    
 384   3                                 y+=8;
 385   3                                 if(y==64)                                               //     输出8个数字时换右屏
 386   3                                 {
 387   4                                   cs3=!cs3;
 388   4                                       y=0;
 389   4                                       j++;                                                             
 390   4                                 }
 391   3                                 if(j==2)                                                        //      输出16个数字时换行
 392   3                                 {
 393   4                                   x+=2;
 394   4                                       j=0;
 395   4                                 }
 396   3                                 if(x==8)
 397   3                                 { 
 398   4                                    x=0;
 399   4                                        clrscr();
 400   4                                 }
 401   3                                 KeyInputTemp=0;                         
 402   3                       }
 403   2                       
 404   2               }
 405   1               
 406   1         Menu_Back();
 407   1      
 408   1      }
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 8   

 409          
 410          /*------------温度监测--------------*/
 411          void Menu_DispTmp()
 412          {
 413   1         
 414   1        clrscr();
 415   1        config_18b20();
 416   1        chn_disp(0,0,2,16,1,2,hz_view_1);  
 417   1        while(NowKey!=KEY_ESC)
 418   1        {       
 419   2            EX0=1;    
 420   2            get_tmp();
 421   2                if(tmp>99)
 422   2                {   
 423   3                       num_disp(0,0,0,tmp/100);                                  //显示百位
 424   3                   num_disp(0,0,8,tmp/10%10);                            //显示十位
 425   3                       num_disp(0,0,16,tmp%100%10);                      //显示个位
 426   3                       chn_disp(0,24,2,8,1,1,hz_dot);
 427   3                       num_disp(0,0,32,tmpd);                    //小数点后一位                
 428   3                       chn_disp(0,40,2,8,1,1,hz_oc);
 429   3                }
 430   2                else  
 431   2                  {
 432   3                   
 433   3                       num_disp(0,0,8,tmp/10);
 434   3                       num_disp(0,0,16,tmp%10);
 435   3                       if(tmp_f)
 436   3                        {
 437   4                         chn_disp(0,0,2,8,1,1,hz_s_);                   //显示负号
 438   4                        }
 439   3                       else chn_disp(0,0,2,8,1,1,hz_null);      // 不显示负号
 440   3                       chn_disp(0,24,2,8,1,1,hz_dot);
 441   3                       num_disp(0,0,32,tmpd);
 442   3                      // con_disp(0,0,40,tmpd%10);                      //小数点后两位
 443   3                       chn_disp(0,40,2,8,1,1,hz_oc);
 444   3                  }
 445   2      
 446   2        }
 447   1       Menu_Back();
 448   1      }
 449          /*--------------步进电机--------------------*/
 450          void Menu_Motor_s()
 451          {
 452   1        uchar P_motor[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};
 453   1        uchar i=0;
 454   1        clrscr();
 455   1        EX0=1;
 456   1        COM8255=0x82;
 457   1        while(NowKey!=KEY_ESC)
 458   1        {
 459   2         EX0=1;
 460   2         if (NowKey==KEY_1)
 461   2         {
 462   3           PC8255=P_motor[i];
 463   3               delay(254);
 464   3               i++;
 465   3               NowKey=0xff;    
 466   3               if(i==8)
 467   3               {
 468   4                 i=0;
 469   4               } 
 470   3         }
C51 COMPILER V8.08   MENU_FUNC                                                             07/23/2007 08:20:59 PAGE 9   

 471   2         if(NowKey==KEY_2)
 472   2         {
 473   3           i--;
 474   3               if(i>7)
 475   3               {
 476   4                 i=7;
 477   4               }
 478   3               NowKey=0xff;
 479   3               PC8255=P_motor[i];
 480   3               delay(254);
 481   3         }
 482   2        }
 483   1      }
 484          void Menu_MemoryData()
 485          {
 486   1          //uchar idata temp1[]={0x02,0x04,0x99,0x76,0x47};
 487   1              uchar idata *temp2,addr=0x02;
 488   1      //      uchar i,j,x,y;
 489   1      //      bit cs3;
 490   1      //      cs3=1;
 491   1              clrscr();
 492   1              Ipt9555(temp2);
 493   1              temp2++;        
 494   1              num_disp(1,0,0,(*temp2)>>4);
 495   1              num_disp(1,0,8,(*temp2) & 0x0f);
 496   1      /*      W24C32(addr,temp1,5);
 497   1              R24C32(addr,temp2,5);   
 498   1              for (i=0;i<5;i++)
 499   1              {
 500   1                  
 501   1              con_disp(cs3,x,y,*temp2>>4);
 502   1                  y+=8;
 503   1                      con_disp(cs3,x,y,*temp2&0x0f);
 504   1                      y+=8;
 505   1              if(y==64)                                                  //     输出8个数字时换右屏
 506   1                  {
 507   1                        cs3=!cs3;
 508   1                        y=0;
 509   1                        j++;                                                            
 510   1                  }
 511   1                 if(j==2)                                                        //      输出16个数字时换行
 512   1                 {
 513   1                    x+=2;
 514   1                    j=0;
 515   1                 }
 516   1                 if(x==8)
 517   1                 { 
 518   1                    x=0;

⌨️ 快捷键说明

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