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

📄 c51.lst

📁 用proteus仿真
💻 LST
📖 第 1 页 / 共 2 页
字号:
 248          
 249          void timer0() interrupt 1 
 250          {
 251   1       //   EA=0;
 252   1              TH0=0x3c;               //Timer0置50ms定时初值dc00H(2^16=65536D,dc00H=56320D)
 253   1              TL0=0xb0;                       //定时时间=(65536-50000)*(1/12)*12=50ms (f0=11.0592Mhz)
 254   1              sec100++;
 255   1              if(sec100 >= 5) //1秒时间 (100*10ms=1000ms=1s)
 256   1                {sec100 = 0; 
 257   2                   
 258   2               if(sec<59) sec++;
 259   2                   else
 260   2                       {sec=0;if(hour<23) hour++;
 261   3                        else hour=0;
 262   3                       }
 263   2                }     
 264   1          disptime(2); 
 265   1      //   EA=1; 
 266   1      }
 267          
 268          
 269          
 270          
 271          void PanduanFlage1(uchar f)
 272          {
 273   1               if(ID0==f) Fx_flage=0;
 274   1               else Fx_flage=1;
 275   1      }
 276          
 277          
 278          void  Funcmnue()
 279          {
 280   1         PanduanFlage1(0);
 281   1         disp_str("开始",5,0);
 282   1         PanduanFlage1(1);
 283   1         disp_str("停止",45,0);
 284   1         PanduanFlage1(2);
 285   1         disp_str("间隔",85,0);
 286   1         PanduanFlage1(3);
 287   1         disp_str("喷洒数",85,2);
 288   1         PanduanFlage1(4);
 289   1         disp_str("开",5,2);
 290   1         PanduanFlage1(5);
 291   1         disp_str("停",5,4);
 292   1         Fx_flage=1;
 293   1         disp_str(":",56,4);
 294   1         PanduanFlage1(6);
 295   1         disp_str("退出",102,6);
 296   1      
 297   1      }
 298          
 299          
 300          void Functionselection(uchar keyv,full)
 301          {
 302   1         keyvalue=keyv;
 303   1         while(key4==1)
C51 COMPILER V7.06   C51                                                                   07/02/2008 10:57:46 PAGE 6   

 304   1         {
 305   2              if(key1==0)
 306   2               {
 307   3                while(key1==0);
 308   3                if(keyvalue<full) keyvalue++;
 309   3                   else keyvalue=0;
 310   3           }     
 311   2               if(key2==0)
 312   2               {
 313   3               while(key2==0);
 314   3               if(keyvalue>0) keyvalue--;
 315   3                  else keyvalue=full;   
 316   3                } 
 317   2           if(full==2)
 318   2            { IDF=keyvalue;disptime(IDF);}
 319   2               if(full==6)
 320   2                { ID0=keyvalue;Funcmnue();disptime(2);}
 321   2               else
 322   2               {
 323   3               if(full==59)
 324   3                 sec=keyvalue;
 325   3               if(full==23)
 326   3                 hour=keyvalue;   
 327   3             disptime(IDF);
 328   3                }
 329   2               
 330   2         }
 331   1               while(key4==0);
 332   1      }
 333          
 334          
 335          
 336          void time0int()
 337          {
 338   1       EA=0;
 339   1       TMOD= 0x01;
 340   1       TL0 = 0X3c;
 341   1       TH0 = 0Xb0;
 342   1       EX0=0;
 343   1       EX1=0;
 344   1       ET0 = 1;
 345   1       TR0 = 1;
 346   1       EA  = 1;
 347   1      
 348   1      }
 349          
 350          
 351          
 352          void timesec()
 353          {
 354   1           while(IDF!=2)
 355   1                      {
 356   2                      Functionselection(IDF,2); 
 357   2                      if(IDF==1) Functionselection(hour,23); 
 358   2                      if(IDF==0) Functionselection(sec,59);
 359   2                      }         
 360   1          IDF=0;
 361   1      
 362   1      }
 363          
 364          
 365          
C51 COMPILER V7.06   C51                                                                   07/02/2008 10:57:46 PAGE 7   

 366          
 367          
 368          void Mnue3()
 369          {
 370   1         EA=0;  
 371   1         Clear();
 372   1         Funcmnue();
 373   1         while (key3==1)
 374   1          {
 375   2              Functionselection(ID0,6); 
 376   2          switch(ID0)
 377   2           { 
 378   3                case 0 :hour=starttime[0]; sec=starttime[1];disptime(2);timesec();starttime[0]=hour;starttime[1]=sec;br
             -eak;
 379   3                case 1 :hour=starttime[2]; sec=starttime[3];disptime(2);timesec();starttime[2]=hour;starttime[3]=sec;br
             -eak;
 380   3                case 2 :hour=starttime[4]; sec=starttime[5];disptime(2);timesec();starttime[4]=hour;starttime[5]=sec;br
             -eak;
 381   3                case 3 :disptime(0);goto Timeover; break;
 382   3                case 4 :time0int();
 383   3                        while(key3==1)
 384   3                                 {disptime(2);Functionselection(ID0,6);}
 385   3                                goto Timeover;break;
 386   3                     
 387   3                case 5 :goto Timeover; break;
 388   3                case 6 : goto Timeover; break;
 389   3                                    
 390   3           }  
 391   2        
 392   2         }
 393   1         while(key3==0);
 394   1      Timeover:
 395   1          Clear();
 396   1          Mnue();
 397   1          EA=1;
 398   1      }
 399          
 400          void Scankey1() interrupt 0
 401          {
 402   1       if(key1==0)
 403   1        {
 404   2         while (key1==0); 
 405   2         if(ID<4)
 406   2            ID+=1; 
 407   2         else ID=0;
 408   2         Mnue();
 409   2        }
 410   1      
 411   1      }
 412          
 413          
 414          void Scankey2() interrupt 2
 415          {
 416   1       if(key2==0)
 417   1        {
 418   2         while (key1==0);
 419   2         if(ID>0)
 420   2         ID-=1; 
 421   2         else ID=3;
 422   2         Mnue();
 423   2        }
 424   1      
C51 COMPILER V7.06   C51                                                                   07/02/2008 10:57:46 PAGE 8   

 425   1      }
 426          
 427          void show_ad(void)
 428          {
 429   1              disp_ch(b1,0,0);
 430   1              disp_ch(b2,8,0);
 431   1              disp_ch(b3,16,0);
 432   1      }
 433          
 434          void ADchange()
 435          {
 436   1                      b3 = readadc();
 437   1                      b1 = b3/100+48;
 438   1                      b2 = (b3%100)/10+48;
 439   1                      b3 = (b3%100)%10+48;
 440   1                      show_ad();
 441   1      }
 442          
 443          
 444          
 445          void main()
 446          {       
 447   1         LcdInit(); 
 448   1         
 449   1        // TMOD=0X01;
 450   1         EA=1;
 451   1         EX0=1;
 452   1         EX1=1;   
 453   1         Mnue();
 454   1         while(1)
 455   1              {
 456   2              if(key4==0)
 457   2               {
 458   3                      switch(ID)
 459   3                      {
 460   4                      case 0:Mnue0();break;
 461   4                      case 1:Mnue1();break;
 462   4                      case 2:Mnue2();break;
 463   4              case 3:Mnue3();break;
 464   4              
 465   4                      }
 466   3               }
 467   2              }
 468   1              
 469   1      }
 470          
 471          
 472          
 473          void Delayms(uint ms)
 474          {       
 475   1              uchar j;
 476   1              while(ms--)
 477   1                for(j=0;j<=20;j++);   
 478   1                                 
 479   1      }               
 480                  
 481          
 482          
 483          
 484          


C51 COMPILER V7.06   C51                                                                   07/02/2008 10:57:46 PAGE 9   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2858    ----
   CONSTANT SIZE    =   2210    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     39      37
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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