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

📄 dtt-110.lst

📁 本人做的一款LED控制程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 488                  255,000,000,
 489                  000,000,000,
C51 COMPILER V7.50   DTT_110                                                               06/29/2005 09:27:32 PAGE 9   

 490                  000,255,000,
 491                  000,000,000,
 492                  000,000,255,
 493                  000,000,000,
 494                  255,255,000,
 495                  000,000,000,
 496                  255,000,255,
 497                  000,000,000,
 498                  000,255,255,
 499                  000,000,000,
 500                  255,255,255,
 501          };
 502          
 503          Uchar code Ptab5[][3]= {
 504                  255,000,000,
 505                  000,255,000,
 506                  000,000,255,
 507                  255,255,000,
 508                  255,000,255,
 509                  000,255,255,
 510                  255,255,255,
 511              000,255,000,
 512                  000,000,255,    
 513                  255,000,255,
 514                  255,000,000,
 515                  000,000,000,
 516                  000,255,000,
 517                  000,000,000,
 518                  000,000,255,    
 519                  000,000,000,
 520                  255,000,000,
 521                  000,000,000,
 522                  000,255,000,
 523                  000,000,000,
 524                  000,000,255,
 525                  000,000,000,
 526                  255,255,000,
 527                  000,000,000,
 528                  255,000,255,
 529                  000,000,000,
 530                  000,255,255,
 531                  000,000,000,
 532                  255,255,255,
 533          };
 534          
 535          void Progrun(void) {
 536   1              Uchar i;
 537   1              if(Program<=7){                                                                  //固定七色
 538   2                      for(i=0; i<3; i++){
 539   3                              dmxdat[i] = Ptab1[Program][i];
 540   3                              dmxdat[3] = Maxout;
 541   3                      }
 542   2                      return;
 543   2              }               
 544   1              if(Program==8){                                                                  //自动七色
 545   2                      for(i=0; i<3; i++){
 546   3                              dmxdat[i] = Ptab1[Step+1][i];
 547   3                          dmxdat[3] = Maxout;
 548   3                      }
 549   2                      dmxdat[4] = Fadetime;
 550   2                      Uspeed = Speed;
 551   2                      Step++;
C51 COMPILER V7.50   DTT_110                                                               06/29/2005 09:27:32 PAGE 10  

 552   2                      if(Step>=7)Step=0;
 553   2                      return;
 554   2              }                                                                                               
 555   1              if(Program==9){                                                                 // Auto R G B;
 556   2                      for(i=0; i<3; i++){
 557   3                              dmxdat[i] = Ptab1[Step+1][i];
 558   3                          dmxdat[3] = Maxout;                 
 559   3                      }
 560   2                      dmxdat[4] = Fadetime;
 561   2                      Uspeed = Speed;
 562   2                      Step++;
 563   2                      if(Step>=3)Step=0;
 564   2                      return; 
 565   2              }
 566   1              if(Program==10){                                                                        //Auto Roll R G B;
 567   2                      for(i=0; i<3; i++){
 568   3                              dmxdat[i] = Ptab1[Step+1][i];
 569   3                          dmxdat[3] = Maxout;                 
 570   3                      }
 571   2                      dmxdat[4] = 50;
 572   2                      Uspeed = 5;
 573   2                      Step++;
 574   2                      if(Step>=3)Step=0;
 575   2                      return; 
 576   2              }
 577   1          if(Program==11){                                                    // G B P        
 578   2                      for(i=0; i<3; i++){
 579   3                              dmxdat[i] = Ptab2[Step][i];
 580   3                          dmxdat[3] = Maxout;                 
 581   3                      }
 582   2                      dmxdat[4] = Fadetime;
 583   2                      Uspeed = Speed;
 584   2                      Step++;
 585   2                      if(Step>=3)Step=0;
 586   2                      return;
 587   2              }
 588   1          if(Program==12){                                               // Flash R G B
 589   2                      for(i=0; i<3; i++){
 590   3                              dmxdat[i] = Ptab3[Step][i];
 591   3                          dmxdat[3] = Maxout;                 
 592   3                      }
 593   2                      dmxdat[4] = Fadetime;
 594   2                      Uspeed = Speed;
 595   2                      Step++;
 596   2                      if(Step>=6)Step=0;
 597   2                      return;
 598   2              }                                                                                 
 599   1              if(Program==13){                                                  //Flash 7 color
 600   2                      for(i=0; i<3; i++){
 601   3                              dmxdat[i] = Ptab4[Step][i];
 602   3                          dmxdat[3] = Maxout;                 
 603   3                      }
 604   2                      dmxdat[4] = Fadetime;
 605   2                      Uspeed = Speed;
 606   2                      Step++;
 607   2                      if(Step>=14)Step=0;
 608   2                      return;
 609   2              }
 610   1              if(Program==14){                                                   //Roll 7 Color
 611   2                      for(i=0; i<3; i++){
 612   3                              dmxdat[i] = Ptab1[Step+1][i];
 613   3                          dmxdat[3] = Maxout;                 
C51 COMPILER V7.50   DTT_110                                                               06/29/2005 09:27:32 PAGE 11  

 614   3                      }
 615   2                      dmxdat[4] = 100;
 616   2                      Uspeed = 5;
 617   2                      Step++;
 618   2                      if(Step>=7)Step=0;
 619   2                      return;
 620   2              }
 621   1              if(Program==15){                                                  //run all program
 622   2                      for(i=0; i<3; i++){
 623   3                              dmxdat[i] = Ptab5[Step][i];
 624   3                          dmxdat[3] = Maxout;                 
 625   3                      }
 626   2                      dmxdat[4] = Fadetime;
 627   2                      Uspeed = Speed;
 628   2                      Step++;
 629   2                      if(Step>=29)Step=0;
 630   2                      return;
 631   2              }
 632   1      }
 633          Uchar Max(Uchar a,b){
 634   1              Uint i;
 635   1      
 636   1          i=a*b;
 637   1          a=i;
 638   1          b=i>>8;
 639   1          if(b>0x80){
 640   2             a=b+1; 
 641   2             return(a);
 642   2              }     
 643   1          if(a>0x80){
 644   2            a=b+1; 
 645   2            return(a);
 646   2              }
 647   1          return(a=b);
 648   1      }
 649          void Dmxrun(void) {
 650   1              Uchar i;
 651   1      
 652   1              if(Dmxmode==0){
 653   2                      for(i=0; i<3; i++){     dmxdat[i] = Ptab1[dmxdat[0]/32][i];}
 654   2                      return;                 
 655   2              }
 656   1              if(Dmxmode==1){
 657   2                      for(i=0; i<3; i++){     dmxdat[i] = Ptab1[dmxdat[0]/32][i];}
 658   2                      buf[3] = dmxdat[1];             
 659   2                      return;
 660   2              }
 661   1              if(Dmxmode==2){
 662   2                      buf[0] = dmxdat[0];
 663   2                      buf[1] = dmxdat[1];
 664   2                      buf[2] = dmxdat[2];
 665   2                      buf[3] = 0;                             
 666   2                      return;
 667   2              }
 668   1              if(Dmxmode==3){
 669   2                      buf[0] = Max(dmxdat[0],dmxdat[3]);
 670   2                      buf[1] = Max(dmxdat[1],dmxdat[3]);
 671   2                      buf[2] = Max(dmxdat[2],dmxdat[3]);
 672   2                      buf[3] = 0;                     
 673   2                      return;
 674   2              }
 675   1              if(Dmxmode==4){
C51 COMPILER V7.50   DTT_110                                                               06/29/2005 09:27:32 PAGE 12  

 676   2                      buf[0] = Max(dmxdat[0],dmxdat[3]);
 677   2                      buf[1] = Max(dmxdat[1],dmxdat[3]);
 678   2                      buf[2] = Max(dmxdat[2],dmxdat[3]);
 679   2                      buf[3] = dmxdat[4];                             
 680   2                      return;
 681   2              }
 682   1      }
 683          
 684          void Faderun(unsigned char fade){ unsigned char i; 
 685   1      if(Fclock==1){Fclock=0;  
 686   2       if(fade==0){ for(i=0;i<3;i++){out[i]=buf[i];}return;}
 687   2        for(i=0;i<3;i++){
 688   3         if(out[i]==buf[i])goto fade_n;
 689   3         if(out[i]<buf[i]){out[i]=(buf[i]-out[i])/(fade+1)+1+out[i];goto fade_n;}
 690   3         if(out[i]>buf[i]){out[i]=out[i]-((out[i]-buf[i])/(fade+1)+1);}
 691   3          fade_n:;  
 692   3          }
 693   2         }
 694   1        }
 695          Uchar Timerchk(void) {
 696   1              Uchar i,t;
 697   1              Uchar sw = 0;
 698   1              Uchar sec,min,hr;
 699   1              reset_3w();
 700   1              wbyte_3w(0xbf);                                                 //以多字节突发方式读取时钟数据
 701   1              sec = BCD2HEX(rbyte_3w());                              //秒
 702   1              min = BCD2HEX(rbyte_3w());                              //分
 703   1              hr  = BCD2HEX(rbyte_3w());                              //小时  
 704   1              reset_3w();     
 705   1              for(i=0; i<8; i++){
 706   2              t = Timer[i*3+0x02];
 707   2                      if(t > 0){
 708   3                              t = Timer[i*3+0x00];
 709   3                              if(hr >= t){
 710   4                                      t = Timer[i*3+0x01];
 711   4                                      if(min >= t){
 712   5                                              sw =  Timer[i*3+0x02];
 713   5                                              goto next;      
 714   5                                      }                                                               
 715   4                              }
 716   3                              return(sw);                                             
 717   3                  }   
 718   2              next:;                          
 719   2              }
 720   1              return(0);      
 721   1      }
 722          Uint Tempchk(void){
 723   1              Uint t1;
 724   1              float tmep;
 725   1              t1 = Readtemp();
 726   1              tmep = t1*0.0625;
 727   1              t1 = tmep;
 728   1              return(t1);
 729   1      }
 730          
 731          void main(void) {
 732   1               
 733   1               Delay400Ms();
 734   1               LcdReset();

⌨️ 快捷键说明

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