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

📄 标准 八路.lst

📁 亲测:基于51单片机的八路抢答器
💻 LST
📖 第 1 页 / 共 2 页
字号:
 283   1              P0=table[num1];
 284   1              delay(10);
 285   1      }
 286          void    disfen(uchar    num2)//显示分数
 287          {
 288   1              while(start()!=4)
 289   1              {
 290   2                      uchar   shi,ge;
 291   2                      jishice=1;
 292   2                      fenshi=0;
 293   2                      fenge=1;
 294   2                      haoce=1;
 295   2                      shi=num2/10;
 296   2                      ge=num2%10;
 297   2                      P0=table[shi];
 298   2                      delay(10);
 299   2                      fenshi=1;
 300   2                      fenge=0;
 301   2                      haoce=1;
 302   2                      P0=table[ge];
 303   2                      delay(10);
C51 COMPILER V8.02   标准_八路                                                             04/21/2009 17:07:28 PAGE 6   

 304   2                      fenshi=1;
 305   2                      fenge=1;
 306   2                      haoce=0;
 307   2                      P0=table[flag4];
 308   2                      delay(10);
 309   2                      if(jifen()==1)
 310   2                      {
 311   3                              flag7=0;
 312   3                              num2=num2+fenzhi;
 313   3                      }
 314   2                      if(jifen()==2)
 315   2                      {
 316   3                              flag7=0;
 317   3                              num2=num2-fenzhi;
 318   3                      }
 319   2                      switch(flag4)
 320   2                              {
 321   3                                      case    1:fen1=num2;break;
 322   3                                      case    2:fen2=num2;break;
 323   3                                      case    3:fen3=num2;break;
 324   3                                      case    4:fen4=num2;break;
 325   3                                      case    5:fen5=num2;break;
 326   3                                      case    6:fen6=num2;break;
 327   3                                      case    7:fen7=num2;break;
 328   3                                      case    8:fen8=num2;break;
 329   3                              }
 330   2              }
 331   1              haoce=1;
 332   1              jishice=1;
 333   1              fenshi=1;
 334   1              fenge=1;
 335   1              flag8=1;
 336   1              //EA=0;
 337   1              key=0;
 338   1      }
 339          void    discha(uchar    num3)//显示查询结果
 340          {
 341   1              uchar   shi2,ge2;
 342   1              while(start()!=4)
 343   1              {
 344   2              jishice=1;
 345   2              fenshi=0;
 346   2              fenge=1;
 347   2              haoce=1;
 348   2              shi2=num3/10;
 349   2              ge2=num3%10;
 350   2              P0=table[shi2];
 351   2              delay(10);
 352   2              fenshi=1;
 353   2              fenge=0;
 354   2              haoce=1;
 355   2              P0=table[ge2];
 356   2              delay(10);
 357   2              fenshi=1;
 358   2              fenge=1;
 359   2              haoce=0;
 360   2              P0=table[key2];
 361   2              delay(10);      
 362   2              }
 363   1              haoce=1;
 364   1              fenshi=1;
 365   1              fenge=1;
C51 COMPILER V8.02   标准_八路                                                             04/21/2009 17:07:28 PAGE 7   

 366   1              key2=0;
 367   1              flag1=0;
 368   1      } 
 369          void    fenshu()//显示每台分数
 370          {
 371   1              switch(key)
 372   1              {
 373   2                      case    1:disfen(fen1);break;
 374   2                      case    2:disfen(fen2);break;
 375   2                      case    3:disfen(fen3);break;
 376   2                      case    4:disfen(fen4);break;
 377   2                      case    5:disfen(fen5);break;   
 378   2                      case    6:disfen(fen6);break;
 379   2                      case    7:disfen(fen7);break;
 380   2                      case    8:disfen(fen8);break;
 381   2              }
 382   1      }
 383          uchar   start() //抢答计时键,答题计时键,记分键,重来键
 384          {
 385   1              uchar   temp;
 386   1              P1=0xf7;
 387   1              temp=P1;
 388   1              temp=temp&0xf0;
 389   1              if(temp!=0xf0)
 390   1              {
 391   2                      delay(10);
 392   2                      temp=P1;
 393   2                      temp=temp&0xf0;
 394   2                      if(temp!=0xf0)
 395   2                      {
 396   3                              temp=P1;
 397   3                              switch(temp)
 398   3                              {
 399   4                                      case    0xe7:flag1=1;break;
 400   4                                      case    0xd7:flag1=2;break;
 401   4                                      case    0xb7:flag1=3;break;
 402   4                                      case    0x77:flag1=4;break;
 403   4                                      default:flag1=0;break;  
 404   4                              }
 405   3                      }
 406   2              }
 407   1              return(flag1);
 408   1      }
 409          uchar   jifen()
 410          {
 411   1              uchar   temp;
 412   1              P1=0xfb;
 413   1              temp=P1;
 414   1              temp=temp&0xf0;
 415   1              if(temp!=0xf0)
 416   1              {
 417   2                      delay(10);
 418   2                      temp=P1;
 419   2                      temp=temp&0xf0;
 420   2                      if(temp!=0xf0)
 421   2                      {
 422   3                              temp=P1;
 423   3                              switch(temp)
 424   3                              {
 425   4                                      case    0xeb:flag7=1;break;
 426   4                                      case    0xdb:flag7=2;break;
 427   4                                      case    0xbb:flag7=3;break;
C51 COMPILER V8.02   标准_八路                                                             04/21/2009 17:07:28 PAGE 8   

 428   4                                      case    0x7b:flag7=4;break;
 429   4                                      default:flag1=0;break;  
 430   4                              }
 431   3                              while(temp!=0xf0)  //等待释放
 432   3                              {
 433   4                                      temp=P1;
 434   4                                      temp=temp&0xf0;         
 435   4                              }
 436   3                      }
 437   2              }
 438   1              return(flag7);
 439   1      }
 440          void    chaxun()
 441          {
 442   1              switch(nokeyscan())
 443   1              {
 444   2                      case    1:discha(fen1);break;
 445   2                      case    2:discha(fen2);break;
 446   2                      case    3:discha(fen3);break;
 447   2                      case    4:discha(fen4);break;
 448   2                      case    5:discha(fen5);break;
 449   2                      case    6:discha(fen6);break;
 450   2                      case    7:discha(fen7);break;
 451   2                      case    8:discha(fen8);break;
 452   2              }
 453   1      }
 454          void    set()
 455          {
 456   1              if(jifen()==4)
 457   1              {
 458   2                      flag9++;
 459   2                      flag7=0;
 460   2                      switch(flag9)
 461   2                      {
 462   3                              case 1:disset(fenzhi,dashi,qiangshi);
 463   3                                         while(jifen()!=4)
 464   3                                         {
 465   4                                                      if(flag7==1)
 466   4                                                      {
 467   5                                                              flag7=0;
 468   5                                                              fenzhi++;
 469   5                                                      }
 470   4                                                      if(flag7==2)
 471   4                                                      {
 472   5                                                              flag7=0;
 473   5                                                              fenzhi--;
 474   5                                                      }
 475   4                                              }
 476   3                                              flag7=0;
 477   3                                        disset(fenzhi,dashi,qiangshi);break;
 478   3                              case 2:disset(fenzhi,dashi,qiangshi);
 479   3                                              while(jifen()!=4)
 480   3                                              {
 481   4                                                      if(flag7==1)
 482   4                                                      {
 483   5                                                              flag7=0;
 484   5                                                              dashi++;
 485   5                                                      }
 486   4                                                      if(flag7==2)
 487   4                                                      {
 488   5                                                              flag7=0;
 489   5                                                              dashi--;
C51 COMPILER V8.02   标准_八路                                                             04/21/2009 17:07:28 PAGE 9   

 490   5                                                      }
 491   4                                              }
 492   3                                        disset(fenzhi,dashi,qiangshi);break;  
 493   3                              case 3:disset(fenzhi,dashi,qiangshi);
 494   3                                              while(jifen()!=4)
 495   3                                              {
 496   4                                                      if(flag7==1)
 497   4                                                      {
 498   5                                                              flag7=0;
 499   5                                                              qiangshi++;
 500   5                                                      }
 501   4                                                      if(flag7==2)
 502   4                                                      {
 503   5                                                              flag7=0;
 504   5                                                              qiangshi--;
 505   5                                                      }
 506   4                                              }
 507   3                                        disset(fenzhi,dashi,qiangshi);break;
 508   3                              case 4:disset(fenzhi,dashi,qiangshi);
 509   3                                              while(jifen()!=4)
 510   3                                              {
 511   4                                                      if(flag7==1)
 512   4                                                      {
 513   5                                                              flag7=0;
 514   5                                                              qiangshi++;
 515   5                                                      }
 516   4                                                      if(flag7==2)
 517   4                                                      {
 518   5                                                              flag7=0;
 519   5                                                              qiangshi--;
 520   5                                                      }
 521   4                                              }
 522   3                                        disset(fenzhi,dashi,qiangshi);break;
 523   3                                        flag7=0;
 524   3                              case 5:flag9=0;break;
 525   3                      }
 526   2              }
 527   1              haoce=1;
 528   1              fenge=1;
 529   1              fenshi=1;
 530   1      }
 531          void    disset(uchar    num4,uchar      num5,uchar      num6)
 532          {
 533   1              while(!jifen())
 534   1              {
 535   2                      haoce=0;
 536   2                      fenshi=1;
 537   2                      fenge=1;
 538   2                      P0=table[num4];
 539   2                      delay(10);
 540   2                      haoce=1;
 541   2                      fenge=0;
 542   2                      fenshi=1;
 543   2                      P0=table[num5];
 544   2                      delay(10);
 545   2                      haoce=1;
 546   2                      fenge=1;
 547   2                      fenshi=0;
 548   2                      P0=table[num6];
 549   2                      delay(10);      
 550   2               }
 551   1               haoce=1;
C51 COMPILER V8.02   标准_八路                                                             04/21/2009 17:07:28 PAGE 10  

 552   1               fenge=1;
 553   1               fenshi=1;
 554   1               P0=0xff;
 555   1      }
 556          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1783    ----
   CONSTANT SIZE    =     10    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26       6
   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 + -