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

📄 led.lst

📁 资料为主从控制的LED七彩灯
💻 LST
字号:
C51 COMPILER V7.06   LED                                                                   01/14/2009 11:00:33 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN led.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1            #include<AT89X52.h>
   2          #define  PWM_DELAY   40
   3          #define  OFF_DELAY   40
   4          unsigned  char count;count1,count2;
   5          sbit  led_red=P3^3;
   6          sbit  led_BL=P3^4;
   7          sbit  led_GR=P3^5;
   8          unsigned  char data PWMR;PWMB;PWMG;
   9          
  10          //-------初始化函数------------------
  11          void init_serialcomm( void ) 
  12          { 
  13   1           SCON = 0x50 ;
  14   1           TMOD=0x01; 
  15   1           TMOD |= 0x20 ; 
  16   1           TH1=0XFD;
  17   1           TL1=0XFD; 
  18   1           TR1 = 1 ; 
  19   1           TH0=0Xff;TL0=0X06;
  20   1           IE=0X82;
  21   1           TR0=1;
  22   1                P1=0XFF;
  23   1           PWMR=0;
  24   1           PWMB=0;
  25   1           PWMG=0;
  26   1      } 
  27          
  28          //----------延时函数-----------------
  29           void DELAY(unsigned int MS) 
  30          { 
  31   1          unsigned char us,usn; 
  32   1           while(MS!=0) 
  33   1           {  
  34   2              usn = 2;   //在12M晶振下接近1ms 
  35   2               while(usn!=0) 
  36   2                { 
  37   3                   us=0xf9; 
  38   3                   while (us!=0){us--;}; 
  39   3                    usn--; 
  40   3                  } 
  41   2              MS--; 
  42   2             } 
  43   1         } 
  44          
  45          
  46          //----------中断函数----------------------
  47          void timeint(void) interrupt 1
  48          {   TH0=0XFF;
  49   1          TL0=0XF9;
  50   1          TR0=1;
  51   1          count++;
  52   1          if(count==100)
  53   1         {
  54   2                 if(PWMR!=0)
  55   2            led_red=1;
C51 COMPILER V7.06   LED                                                                   01/14/2009 11:00:33 PAGE 2   

  56   2            else 
  57   2            led_red=0;
  58   2            if(PWMB!=0)
  59   2             led_BL=1;
  60   2             else 
  61   2             led_BL=0;
  62   2             if(PWMG!=0)
  63   2             led_GR=1;
  64   2             else 
  65   2             led_GR=0;
  66   2             count=0;
  67   2            }
  68   1          else
  69   1         {
  70   2             if (count==PWMR)
  71   2             led_red=0;
  72   2             if (count==PWMB)
  73   2             led_BL=0;
  74   2             if (count==PWMG)
  75   2                  led_GR=0;
  76   2          }
  77   1      }       
  78                                                                                                                           
  79          main()
  80          {
  81   1          unsigned char i;
  82   1          unsigned char DIP_P1;
  83   1          init_serialcomm(); //初始化串口 
  84   1          while(1)
  85   1           { 
  86   2                   DIP_P1=P1&0X0F;
  87   2              if(DIP_P1==0)
  88   2               {                
  89   3                  if(RI)   //接收串口数据
  90   3                     {
  91   4                                            RI=0;
  92   4                        i=SBUF;
  93   4                         if(i>0X7F)
  94   4                           {
  95   5                                                                  count2=0;
  96   5                                PWMR=i-128;
  97   5                                                                        
  98   5                                                           }
  99   4                           else
 100   4                               {
 101   5                                                                           count2++;
 102   5                                   if(count2==1)
 103   5                                      PWMB=i;
 104   5                                     else
 105   5                                     PWMG=i;
 106   5                                 }
 107   4                         }
 108   3                    }
 109   2              else
 110   2                {                      
 111   3                             DIP_P1=P1&0X0F;
 112   3                    switch(DIP_P1)
 113   3                     {
 114   4                                              case  1:PWMR=100; //红色
 115   4                             PWMB=0;
 116   4                             PWMG=0;           
 117   4                              break;
C51 COMPILER V7.06   LED                                                                   01/14/2009 11:00:33 PAGE 3   

 118   4                      case  2: PWMR=100; ////红色+绿色  
 119   4                               PWMG=100;
 120   4                               PWMB=0;          
 121   4                                break;
 122   4                      case  3: PWMR=0; ///+绿色  
 123   4                               PWMG=100;
 124   4                               PWMB=0;    
 125   4                               break;
 126   4                      case  4: PWMR=0; /////蓝色+绿色
 127   4                               PWMG=100;
 128   4                               PWMB=100;       
 129   4                                break;
 130   4                       case  5: PWMR=0; /////蓝色
 131   4                                PWMG=0;
 132   4                                PWMB=100;    
 133   4                                 break;
 134   4                        case  6: PWMR=100; ////红色+蓝色 
 135   4                                 PWMG=0;
 136   4                                 PWMB=100;     
 137   4                                 break;
 138   4                        case  7: PWMR=100; ////红色+蓝色+绿色 
 139   4                                 PWMG=100;
 140   4                                 PWMB=100;
 141   4                                 break;
 142   4                         case  8:
 143   4                                 PWMG=0;
 144   4                                 PWMB=0;
 145   4                                 PWMR=0;
 146   4                                 for(PWMR=0;PWMR<=100;PWMR++) //红色
 147   4                                  DELAY( PWM_DELAY );
 148   4                                      DIP_P1=P1&0X0F;
 149   4                                 if(DIP_P1!=8)
 150   4                                 break;
 151   4                                 DELAY( 12000);
 152   4                                 for(PWMR=100;PWMR>0;PWMR--) 
 153   4                                 DELAY( PWM_DELAY );    
 154   4                                           DELAY( OFF_DELAY);
 155   4                                 PWMG=0;
 156   4                                 PWMB=0;
 157   4                                 PWMR=0;
 158   4                                 for(PWMR=0;PWMR<=100;PWMR++, PWMG++) //红色+绿色      
 159   4                                 DELAY(  PWM_DELAY );
 160   4                                DIP_P1=P1&0X0F;
 161   4                                 if(DIP_P1!=8)
 162   4                                 break;
 163   4                                 DELAY( 12000);
 164   4                                 for(PWMR=100;PWMR>0;PWMR--, PWMG--)     
 165   4                                 DELAY(  PWM_DELAY );    
 166   4                                           DELAY( OFF_DELAY);
 167   4                                 PWMG=0;
 168   4                                 PWMB=0;
 169   4                                 PWMR=0;
 170   4                                 for(PWMG=0;PWMG<=100;PWMG++) //绿色
 171   4                                 DELAY(  PWM_DELAY );
 172   4                                DIP_P1=P1&0X0F;
 173   4                                 if(DIP_P1!=8)
 174   4                                 break;
 175   4                                 DELAY( 12000);
 176   4                                 for(PWMG=100;PWMG>0;PWMG--) 
 177   4                                 DELAY(  PWM_DELAY );   
 178   4                                           DELAY( OFF_DELAY);
 179   4                                 PWMG=0;
C51 COMPILER V7.06   LED                                                                   01/14/2009 11:00:33 PAGE 4   

 180   4                                 PWMB=0;
 181   4                                 PWMR=0;
 182   4                                 for(PWMG=0;PWMG<=100;PWMG++,PWMB++) //蓝色+绿色                                
             -               
 183   4                                 DELAY(  PWM_DELAY );
 184   4                                           DIP_P1=P1&0X0F;
 185   4                                 if(DIP_P1!=8)
 186   4                                 break;
 187   4                                 DELAY( 12000);
 188   4                                 for(PWMG=100;PWMG>0;PWMG--,  PWMB--) 
 189   4                                 DELAY(  PWM_DELAY );      
 190   4                                 DELAY( OFF_DELAY);
 191   4                                 PWMG=0;
 192   4                                 PWMB=0;
 193   4                                 PWMR=0;
 194   4                                 for(PWMB=0;PWMB<=100;PWMB++) //蓝色
 195   4                                 DELAY(  PWM_DELAY );
 196   4                                DIP_P1=P1&0X0F;
 197   4                                 if(DIP_P1!=8)
 198   4                                 break;
 199   4                                 DELAY( 12000);
 200   4                                 for(PWMB=100;PWMB>0;PWMB--) 
 201   4                                 DELAY( PWM_DELAY );
 202   4                                 DELAY( OFF_DELAY);
 203   4                                 PWMG=0;
 204   4                                 PWMB=0;
 205   4                                 PWMR=0;
 206   4                                 for(PWMR=0;PWMR<=100;PWMR++, PWMB++) //红色+蓝色 
 207   4                                 DELAY(  PWM_DELAY );
 208   4                                   DIP_P1=P1&0X0F;
 209   4                                 if(DIP_P1!=8)
 210   4                                 break;
 211   4                                 DELAY( 12000);
 212   4                                 for(PWMR=100;PWMR>0;PWMR--, PWMB--)     
 213   4                                  DELAY(  PWM_DELAY );      
 214   4                                            DELAY( OFF_DELAY);
 215   4                                  PWMG=0;
 216   4                                  PWMB=0;
 217   4                                  PWMR=0;
 218   4                                  for(PWMR=0;PWMR<=100;PWMR++,PWMB++,PWMG++) //红色+绿色+蓝色     
 219   4                                  DELAY( PWM_DELAY );
 220   4                                      DIP_P1=P1&0X0F;
 221   4                                 if(DIP_P1!=8)
 222   4                                 break;
 223   4                                  DELAY( 12000);
 224   4                                  for(PWMR=100;PWMR>0;PWMR--,PWMG--,PWMB--)           
 225   4                                  DELAY( PWM_DELAY );
 226   4                                      DELAY( OFF_DELAY);       
 227   4                                   break;
 228   4                                  default: PWMG=0;
 229   4                                  PWMB=0;
 230   4                                   PWMR=0;
 231   4                                  break;
 232   4      
 233   4                           }
 234   3                      }
 235   2      
 236   2              }
 237   1      }
 238          
 239          

C51 COMPILER V7.06   LED                                                                   01/14/2009 11:00:33 PAGE 5   


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