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

📄 ktdis.lst

📁 c51 键盘和显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
 322   2              }
 323   1                         
 324   1      }
 325          
 326          void key_mode1()
 327          {
 328   1         count1000ms++;
 329   1         if(tkey1==0&&count1000ms>=paramkey)                             //shift t
 330   1              {
 331   2                      auto_save_c = 0;
 332   2                      count1000ms = 0;
 333   2                      //shiftbit = ((shiftbit+1)&0x03); 
 334   2                      if(shiftbit == 2)
 335   2                      shiftbit = 0;
 336   2                      else if(shiftbit == 0)
 337   2                      shiftbit = 1;
 338   2                      else if(shiftbit == 1)
 339   2                      shiftbit = 2;
 340   2              }
 341   1      
 342   1              if(tkey2==0&&count1000ms>=paramkey)                               // add t
 343   1              {
 344   2                      auto_save_c = 0;
 345   2                      count1000ms = 0;
 346   2                      tkeyset[shiftbit] += 1;
 347   2                      if(shiftbit == 2)
 348   2                      {
 349   3                              if(tkeyset[shiftbit]>5)
 350   3                              tkeyset[shiftbit] = 0;
 351   3                      }
 352   2                      else
 353   2                      {
 354   3                              if(tkeyset[shiftbit]>9)
 355   3                              tkeyset[shiftbit] = 0;
 356   3                      }
 357   2          }                                                                                    //
 358   1              if(skey1==0&&count1000ms>=paramkey1)
 359   1              {
 360   2              count1000ms=0;
 361   2              flag1 = 1;
 362   2              auto_save_c2 = 0;
 363   2              modectrl = 3;              
 364   2              } 
 365   1      }
C51 COMPILER V8.02   KTDIS                                                                 02/13/2009 20:32:24 PAGE 7   

 366          
 367          void key_mode2()
 368          {
 369   1              
 370   1              count1000ms++;
 371   1              if(skey1==0&&count1000ms>=paramkey)   //shift s
 372   1              {
 373   2                      count1000ms = 0;
 374   2                      auto_save_c2 = 0;
 375   2                      if(shiftbit2 == 2)
 376   2                      shiftbit2 = 0;
 377   2                      else if(shiftbit2 == 0)
 378   2                      shiftbit2 = 1;
 379   2                      else if(shiftbit2 == 1)
 380   2                      shiftbit2 = 2;
 381   2              }
 382   1      
 383   1              if(skey2==0&&count1000ms>=paramkey)
 384   1              {
 385   2                      count1000ms = 0;
 386   2                      auto_save_c2 = 0;
 387   2                      skeyset[shiftbit2] += 1;
 388   2                      if(skeyset[shiftbit2]>9)
 389   2                      skeyset[shiftbit2] = 0;
 390   2          }
 391   1              if(tkey1==0&&count1000ms>=paramkey1)             //mode select judge s1 and s3
 392   1              {
 393   2              flag = 1;
 394   2              auto_save_c = 0;
 395   2              count1000ms=0;          
 396   2              modectrl = 3;                       
 397   2              } 
 398   1      }
 399          
 400          void key_mode3()
 401          {
 402   1              count1000ms++;
 403   1         if(tkey1==0&&count1000ms>=paramkey)                             //shift t
 404   1              {
 405   2                      auto_save_c = 0;
 406   2                      count1000ms = 0;
 407   2                      if(shiftbit == 2)
 408   2                      shiftbit = 0;
 409   2                      else if(shiftbit == 0)
 410   2                      shiftbit = 1;
 411   2                      else if(shiftbit == 1)
 412   2                      shiftbit = 2;
 413   2              }
 414   1      
 415   1              if(tkey2==0&&count1000ms>=paramkey)                               // add t
 416   1              {
 417   2                      auto_save_c = 0;
 418   2                      count1000ms = 0;
 419   2                      tkeyset[shiftbit] += 1;
 420   2                      if(shiftbit == 0)
 421   2                      {
 422   3                              if(tkeyset[shiftbit]>5)
 423   3                              tkeyset[shiftbit] = 0;
 424   3                      }
 425   2                      else
 426   2                      {
 427   3                              if(tkeyset[shiftbit]>9)
C51 COMPILER V8.02   KTDIS                                                                 02/13/2009 20:32:24 PAGE 8   

 428   3                              tkeyset[shiftbit] = 0;
 429   3                      }
 430   2          }
 431   1      
 432   1              if(skey1==0&&count1000ms>=paramkey)   //shift s
 433   1              {
 434   2                      count1000ms = 0;
 435   2                      auto_save_c2 = 0;
 436   2                      if(shiftbit2 == 2)
 437   2                      shiftbit2 = 0;
 438   2                      else if(shiftbit2 == 0)
 439   2                      shiftbit2 = 1;
 440   2                      else if(shiftbit2 == 1)
 441   2                      shiftbit2 = 2;
 442   2              }
 443   1      
 444   1              if(skey2==0&&count1000ms>=paramkey)
 445   1              {
 446   2                      count1000ms = 0;
 447   2                      auto_save_c2 = 0;
 448   2                      skeyset[shiftbit2] += 1;
 449   2                      if(skeyset[shiftbit2]>9)
 450   2                      skeyset[shiftbit2] = 0;
 451   2          }
 452   1      }
 453          
 454          
 455          void t0_int(void) interrupt 1 using 0           /*T0 interrupt  offers base time to dynamic-displaying*/
 456          {
 457   1              
 458   1          TR0=0;
 459   1          TH0=0xb7;
 460   1          TL0=0xa9;
 461   1          TR0=1;             
 462   1          ctrl_mode1++;                                       /*ctrl_mode1 and ctrlmode2 generate four display_statements*/  
 463   1          ctrl_mode2++;                        
 464   1          
 465   1          switch(modectrl)
 466   1          {
 467   2              case 0:                                         /*normal mode */
 468   2                      dis_mode0();            
 469   2                      break;
 470   2              case 1:                                         /*temperature_set mode*/
 471   2                              dis_mode1();
 472   2                      break;
 473   2              case 2:                                         /*damp_set mode*/
 474   2                      dis_mode2();
 475   2                      break;
 476   2              case 3:                                         /*temperature_damp set mode*/
 477   2                      dis_mode3();
 478   2                      break;
 479   2              default:
 480   2                      modectrl = 0;
 481   2                      break;
 482   2           }  
 483   1               if(flag==1)
 484   1               {
 485   2                      auto_save_c++;
 486   2                      if(auto_save_c>1000)
 487   2                      {
 488   3                              flag = 0;
 489   3                              auto_save_c = 0;
C51 COMPILER V8.02   KTDIS                                                                 02/13/2009 20:32:24 PAGE 9   

 490   3                              sendflag = 1;
 491   3                              sendbuf[2] = tkeyset[0];
 492   3                              sendbuf[3] = tkeyset[1];
 493   3                              sendbuf[4] = tkeyset[2];
 494   3                              if(modectrl==1)
 495   3                                       modectrl = 0;
 496   3                              if(modectrl==3)
 497   3                                      modectrl = 2;
 498   3                      }
 499   2               }
 500   1               if(flag1==1)
 501   1               {
 502   2                      auto_save_c2++;
 503   2                      if(auto_save_c2>1000)
 504   2                      {
 505   3                              flag1 = 0;
 506   3                              auto_save_c2 = 0;
 507   3                              sendflag2 = 1;
 508   3                              sendbuf[5] = skeyset[0];
 509   3                              sendbuf[6] = skeyset[1];
 510   3                              sendbuf[7] = skeyset[2];
 511   3                              if(modectrl==2)
 512   3                                       modectrl = 0;
 513   3                              if(modectrl==3)
 514   3                                      modectrl = 1;
 515   3                      }
 516   2               }  
 517   1          
 518   1            
 519   1      }
 520          
 521          void Timer2(void) interrupt 5
 522          {
 523   1              TR2 = 0;
 524   1              TF2 =0;
 525   1              h = 0;
 526   1              headflag = 0;
 527   1              reover = 1;
 528   1                      
 529   1      }
 530          void saal(void) interrupt 4 using 1
 531          {
 532   1              
 533   1              uchar head = 0;
 534   1              static uchar k = 0;
 535   1              ES = 0;
 536   1              if(RI)
 537   1              {
 538   2                      head = SBUF;
 539   2                      RI = 0;
 540   2                      if(!headflag)
 541   2                      {
 542   3                              if(head == 0xFF)
 543   3                              {
 544   4                                      headflag = 1;                   
 545   4                                      h = 0;
 546   4                                      TH2 = 0xdc;
 547   4                                      TL2 = 0x00;
 548   4                                      TR2 = 1;
 549   4                              }
 550   3                      }
 551   2                      else
C51 COMPILER V8.02   KTDIS                                                                 02/13/2009 20:32:24 PAGE 10  

 552   2                      {
 553   3                              temp[h++] = head;
 554   3                              TH2 = 0xdc;
 555   3                              TL2 = 0x00;             
 556   3                      }
 557   2                      
 558   2              }
 559   1              if(TI)
 560   1              {
 561   2                      TI = 0; 
 562   2                      if(k>=9)
 563   2                      {
 564   3                         k = 0;
 565   3                         dir = 0;               
 566   3                      }
 567   2                      else
 568   2                      SBUF = sendbuf[k++];
 569   2              }
 570   1              ES = 1;
 571   1      
 572   1      } 
 573          
 574          //
 575          main()
 576          {
 577   1      
 578   1         ProgramInit();
 579   1         while(1)
 580   1         {
 581   2                      if(reover)
 582   2                 {
 583   3                              tt = 0;
 584   3                              reover = 0;
 585   3                              for(y=0;y<12;y++)
 586   3                              {
 587   4                                      tt += temp[y];
 588   4                              }
 589   3                              if(tt==temp[12])
 590   3                              {       
 591   4                                      tdis[0] = temp[2];
 592   4                                      tdis[1] = temp[1];
 593   4                                      tdis[2] = temp[0];
 594   4                                      sdis[0] = temp[5];
 595   4                                      sdis[1] = temp[4];
 596   4                                      sdis[2] = temp[3];
 597   4                                      if(modectrl==0)
 598   4                                      {
 599   5                                              tkeyset[0] = temp[8];      //updata set t&s value
 600   5                                              tkeyset[1] = temp[7];
 601   5                                              tkeyset[2] = temp[6];
 602   5                                              skeyset[0] = temp[11];
 603   5                                              skeyset[1] = temp[10];
 604   5                                              skeyset[2] = temp[9];                           
 605   5                                                              
 606   5                                      }
 607   4                                      if(sendflag==1)
 608   4                                      {
 609   5                                              sendflag = 0;                           
 610   5                                              sendbuf[8] = 0;
 611   5                                              for(y=0;y<12;y++)
 612   5                                              {
 613   6                                                      sendbuf[8] += sendbuf[y];
C51 COMPILER V8.02   KTDIS                                                                 02/13/2009 20:32:24 PAGE 11  

 614   6                                              }
 615   5                                              dir = 1;
 616   5                                              TI = 1;
 617   5                                      }
 618   4                                      else if(sendflag2==1)
 619   4                                      {
 620   5                                              sendflag2 = 0;
 621   5                                              sendbuf[8] = 0;
 622   5                                              for(y=0;y<12;y++)
 623   5                                              {
 624   6                                                      sendbuf[8] += sendbuf[y];
 625   6                                              }
 626   5                                              dir = 1;
 627   5                                              TI = 1;
 628   5                                      }
 629   4      
 630   4                              }                                       
 631   3                 }    
 632   2         
 633   2         }
 634   1      
 635   1      }


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