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

📄 main.lst

📁 灯光控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
 216   1        RCAP2H=0XFF;
 217   1        RCAP2L=0XF1;//@24MH,50,000BP
 218   1       // RCAP2H=0XFF;
 219   1       // RCAP2L=0XDC;//@24MH,50,000BP
 220   1        SCON=0X50;
 221   1        TR2=1;   
 222   1        IE=0X82; //不用串口中断
 223   1        RS485_ENABLE=YES; //允许接收  以发送为主 RS485_ENABLE=1
 224   1      }
 225          
 226          //************看门狗涵数********
 227          /*void REST_WDT(void)
 228          {
 229             WDREST=0x1e;
 230             WDREST=0xe1; 
 231          }  */
 232          //***********清发送缓冲区函数****
 233          void Clear_Buf(void)
 234          {
C51 COMPILER V7.00  MAIN                                                                   09/24/2007 06:08:38 PAGE 6   

 235   1        memset(Send_Buf, 0x00, sizeof(Send_Buf));  
 236   1      }
 237          //*********发送数据子函数*********
 238          void Send_Data(uchar ucRemoteAdd)
 239          {
 240   1         uint i;   
 241   1         RS485_ENABLE=YES;
 242   1         Data_Length=sizeof(Send_Buf)+3;
 243   1         SBUF=HEAD1;
 244   1         while(TI==0);
 245   1         TI=0;
 246   1        // REST_WDT();          
 247   1         SBUF=HEAD2;
 248   1         while(TI==0);
 249   1         TI=0;
 250   1        // REST_WDT();
 251   1      
 252   1         SBUF=(uchar)(Data_Length>>8);
 253   1         while(TI==0);
 254   1         TI=0;
 255   1       // REST_WDT();
 256   1         SBUF=(uchar)Data_Length;
 257   1         while(TI==0);
 258   1         TI=0;
 259   1       //  REST_WDT();
 260   1      
 261   1         SBUF=0xff;
 262   1         while(TI==0);
 263   1         TI=0;
 264   1       //  REST_WDT();
 265   1         SBUF=ucRemoteAdd;
 266   1         while(TI==0);
 267   1         TI=0;
 268   1      //  REST_WDT();
 269   1      
 270   1         SBUF=0x00;
 271   1         while(TI==0);
 272   1         TI=0;
 273   1       //  REST_WDT();
 274   1      
 275   1         for(i=0;i<sizeof(Send_Buf);i++)
 276   1         {
 277   2           // REST_WDT(); 
 278   2                SBUF= Send_Buf[i];
 279   2                while(TI==0);
 280   2                TI=0;          
 281   2         }
 282   1      
 283   1      }
 284          
 285          //*******T0中断函数***************
 286          void TMR0_int(void)  interrupt 1 using 1
 287          {
 288   1         TH0=0xff;//100us
 289   1         TL0=0X38;
 290   1      
 291   1         time20ms++;
 292   1         if( time20ms>20)
 293   1         {
 294   2                 time20ms=0;
 295   2         }
 296   1      }
C51 COMPILER V7.00  MAIN                                                                   09/24/2007 06:08:38 PAGE 7   

 297          
 298          //************延时函数************
 299          
 300          void Delay_Time(uint TimeCount)
 301          {
 302   1         uchar i;
 303   1         do
 304   1         {
 305   2           TimeCount--; 
 306   2               for(i=0;i<200;i++)
 307   2               {
 308   3               //  REST_WDT();  
 309   3               }    
 310   2         }while(TimeCount>0);
 311   1      
 312   1      }
 313          
 314          //*********变化模式函数**********
 315          void mode1(void)  //整体亮灭
 316          {
 317   1         uint i,ucAdd;
 318   1         Clear_Buf();
 319   1         for(ucAdd=0;ucAdd<24;ucAdd++)
 320   1         {
 321   2           Send_Data(ucAdd);
 322   2              }
 323   1         Delay_Time(200);
 324   1         for(ucAdd=0;ucAdd<24;ucAdd++)  //23层整体亮
 325   1         {  
 326   2               for(i=0;i<sizeof(Send_Buf);i++)
 327   2                {
 328   3                       Send_Buf[i]=0xff;   
 329   3                }  
 330   2                 Send_Data(ucAdd);
 331   2         }
 332   1         Delay_Time(ucQuick*4000);//原来是200倍。
 333   1         for(ucAdd=0;ucAdd<24;ucAdd++)  //23层整体灭
 334   1         {
 335   2              for(i=0;i<sizeof(Send_Buf);i++)
 336   2               {
 337   3                    Send_Buf[i]=0x00;   
 338   3               }  
 339   2              Send_Data(ucAdd);
 340   2         }
 341   1         Delay_Time(ucQuick*2);
 342   1      //*********************************
 343   1         Clear_Buf();
 344   1         for(ucAdd=0;ucAdd<24;ucAdd++)
 345   1         {
 346   2           Send_Data(ucAdd); 
 347   2              }
 348   1         Delay_Time(200);
 349   1      //************************************
 350   1       for(ucAdd=0;ucAdd<24;ucAdd++)  //层变
 351   1         {
 352   2              
 353   2      
 354   2             for(i=0;i<sizeof(Send_Buf);i++)
 355   2               {
 356   3                    Send_Buf[i]=0xff;   
 357   3               }  
 358   2              Send_Data(ucAdd);
C51 COMPILER V7.00  MAIN                                                                   09/24/2007 06:08:38 PAGE 8   

 359   2              Delay_Time(ucQuick*200);
 360   2             for(i=0;i<sizeof(Send_Buf);i++)
 361   2               {
 362   3                    Send_Buf[i]=0x00;   
 363   3               }  
 364   2              Send_Data(ucAdd);
 365   2                      Delay_Time(ucQuick*2);
 366   2      
 367   2         }
 368   1         Clear_Buf();
 369   1         for(ucAdd=0;ucAdd<24;ucAdd++)
 370   1         {
 371   2           Send_Data(ucAdd); 
 372   2              }
 373   1         Delay_Time(20);
 374   1          for(ucAdd=0;ucAdd<24;ucAdd++)
 375   1              {
 376   2                for(i=0;i<24;i++)
 377   2                {
 378   3                   Send_Buf[i]=PIC3[ucAdd][i];  
 379   3                }
 380   2            Send_Data(ucAdd); 
 381   2            Delay_Time(ucQuick*200);
 382   2              }
 383   1               for(ucAdd=0;ucAdd<24;ucAdd++)
 384   1              {
 385   2                for(i=0;i<24;i++)
 386   2                {
 387   3                   Send_Buf[i]=~PIC3[ucAdd][i];  
 388   3                }
 389   2            Send_Data(ucAdd); 
 390   2            Delay_Time(ucQuick*200);
 391   2              }
 392   1       
 393   1      }
 394          
 395          //****************变化方式单点跳变***********
 396          void mode2(void)
 397          {
 398   1         uint i,ucAdd;
 399   1         Clear_Buf();
 400   1         for(ucAdd=0;ucAdd<24;ucAdd++)
 401   1         {
 402   2           Send_Data(ucAdd); 
 403   2              }
 404   1         Delay_Time(20);
 405   1        
 406   1          for(ucAdd=0;ucAdd<24;ucAdd++)  //层变
 407   1          {
 408   2             for(i=0;i<sizeof(Send_Buf);i++)
 409   2               {
 410   3                    Send_Buf[i]=0xff;   
 411   3               }  
 412   2              Send_Data(ucAdd);
 413   2              Delay_Time(ucQuick*200);
 414   2             for(i=0;i<sizeof(Send_Buf);i++)
 415   2               {
 416   3                    Send_Buf[i]=0x00;   
 417   3               }  
 418   2              Send_Data(ucAdd);
 419   2                      Delay_Time(ucQuick*200);
 420   2      
C51 COMPILER V7.00  MAIN                                                                   09/24/2007 06:08:38 PAGE 9   

 421   2           }
 422   1      
 423   1         
 424   1      }
 425          
 426          //***************整体渐变的变化方式********
 427          void mode3(void)
 428          {
 429   1         uchar i,j,ucAdd;
 430   1       // uint Dimming_Data_Up,Dimming_Data_Down,j; 
 431   1      
 432   1      
 433   1          Clear_Buf();
 434   1         for(ucAdd=0;ucAdd<24;ucAdd++)
 435   1         {
 436   2           Send_Data(ucAdd); 
 437   2              }
 438   1         Delay_Time(20);
 439   1      
 440   1        for(i=0;i<sizeof(Send_Buf);i++)//单列跑动
 441   1          {   
 442   2            for(ucAdd=0;ucAdd<24;ucAdd++) 
 443   2             {  
 444   3                    for(j=0;j<24;j++)  
 445   3                 {       
 446   4                    if(j==i)
 447   4                             {Send_Buf[j]=0xff;}
 448   4                        else
 449   4                             {Send_Buf[j]=0;}  
 450   4                  }  
 451   3                 Send_Data(ucAdd);
 452   3                  }
 453   2              Delay_Time(ucQuick*200);       
 454   2              }  
 455   1      
 456   1      } 
 457          
 458          //**********混合渐变*******************************
 459          void mode4(void)
 460          {
 461   1         uchar i,j;
 462   1        // uint Dimming_Data_Up,Dimming_Data_Down,j; 
 463   1      
 464   1      
 465   1         Clear_Buf();   //清屏
 466   1         Send_Data(0xff);
 467   1         Delay_Time(5000);
 468   1        for(i=0;i<23;i++)
 469   1          {  
 470   2                 for(j=0;j<24;j++)
 471   2                 {
 472   3                 Send_Buf[i]=PIC1[i][j];
 473   3                 }
 474   2             Send_Data(i);
 475   2              }
 476   1              Delay_Time(ucQuick*200); 
 477   1        for(i=0;i<23;i++)
 478   1          {  
 479   2                 for(j=0;j<24;j++)
 480   2                 {
 481   3                 Send_Buf[i]=PIC2[i][j];
 482   3                 }
C51 COMPILER V7.00  MAIN                                                                   09/24/2007 06:08:38 PAGE 10  

 483   2             Send_Data(i);
 484   2              }
 485   1              Delay_Time(ucQuick*200); 
 486   1       
 487   1      
 488   1      }
 489          
 490          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1041    ----
   CONSTANT SIZE    =   1776    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       5
   IDATA SIZE       =     25    ----
   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 + -