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

📄 11.lst

📁 三路PWM输出信号!模拟PWM输出信号控制LED自渐变
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.00  11                                                                     06/29/2008 21:41:41 PAGE 1   


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

stmt level    source

   1          
   2          #include <AT892051.H>
   3          //#include <AT89C2051.H>
   4          //#include <w77c32.h>
   5          
   6          #define  uchar unsigned char
   7          #define  uint  unsigned int
   8          //#define  FULL_ON  255
   9          //#define  FULL_OFF  0
  10          
  11          #define  ON   1
  12          #define  OFF  0
  13          
  14          void  SYsInit(void);
  15          void  ucjianbian(void);
  16          //void  P_Init();
  17          void  All_Dimming();
  18          //void  R_G_B_Dimming(void);
  19          //void Delay30s(uint Time);
  20          
  21          uchar ucTime50us;
  22          uchar PWMcounter; 
  23          uchar ucdot[6];      //pwm 控制;
  24          uchar lightness[6];
  25          uchar bhroad;
  26          //bit   mode_flag;
  27          //sfr   WDREST = 0xa6;  
  28          uchar  k,counter0,counter1,counter2; 
  29               
  30          uchar Is_10mschange;
  31          uchar   Data_20mschange;
  32          
  33           void main(void)
  34           {
  35   1           SYsInit();
  36   1               while(1)
  37   1               {   
  38   2              All_Dimming();          
  39   2            }
  40   1       }
  41          
  42          
  43             void SYsInit(void)//初始化函数; 
  44             {
  45   1         
  46   1               uchar i;
  47   1      
  48   1           ucTime50us=0;   
  49   1               Is_10mschange=0;       
  50   1               PWMcounter=128;
  51   1               
  52   1           TH0=0xff;
  53   1           TL0=0xea; 
  54   1               Data_20mschange=0;
  55   1              // PMR=0X45; 
C51 COMPILER V7.00  11                                                                     06/29/2008 21:41:41 PAGE 2   

  56   1               TMOD=0x01;
  57   1           counter0=2;
  58   1               counter1=2;
  59   1           counter2=2;
  60   1               EA=1;
  61   1               ET0=1; 
  62   1              // bhroad=0;    
  63   1               TR0=1;  
  64   1               k=0;
  65   1               for(i=0;i<2;i++)
  66   1               {
  67   2                 lightness[i]=0;
  68   2                }
  69   1              }
  70          
  71          
  72           void Int_T0(void) interrupt 1  using 1    //t0定时中断50us;at  11.0592mhz.
  73             {
  74   1            uchar i;
  75   1            TH0=0xff;    
  76   1                TL0=0xea;
  77   1           
  78   1                ucTime50us++;
  79   1                if(ucTime50us>150)
  80   1                {
  81   2                   ucTime50us=0;
  82   2                   Is_10mschange=1; 
  83   2                       Data_20mschange++;     
  84   2                 }
  85   1                      
  86   1            if( Data_20mschange>=250)
  87   1                {
  88   2                   Data_20mschange=0;
  89   2                }
  90   1         
  91   1                PWMcounter--;
  92   1                if( PWMcounter>0)
  93   1                   {
  94   2                     if(ucdot[0]>0){ ucdot[0]--; P1_7=ON; } else { P1_7=OFF;  }
  95   2                 if(ucdot[1]>0){ ucdot[1]--; P1_6=ON; } else { P1_6=OFF;  } 
  96   2                 if(ucdot[2]>0){ ucdot[2]--; P1_5=ON; } else { P1_5=OFF;  }         
  97   2               }
  98   1                 else
  99   1                   {
 100   2                      PWMcounter=128;
 101   2                          for(i=0;i<3;i++)
 102   2                          {
 103   3                           ucdot[i]=lightness[i]>>1;
 104   3                          }
 105   2                        }         
 106   1               }
 107          
 108          
 109          void    All_Dimming(void)
 110          {    
 111   1            
 112   1                       switch(k)
 113   1                       {
 114   2                        case 0:if(Is_10mschange) 
 115   2                               { 
 116   3                                      Is_10mschange=0;
 117   3                          if( Data_20mschange>=2)
C51 COMPILER V7.00  11                                                                     06/29/2008 21:41:41 PAGE 3   

 118   3                                      {  
 119   4                                                 Data_20mschange=0;
 120   4                                     counter0++;
 121   4                             counter1=0;
 122   4                                                 counter2=0;                 
 123   4                                                  if(counter0>=254)
 124   4                                  { 
 125   5                                  k++;                                           
 126   5                               }
 127   4                                               }
 128   3                                      
 129   3                                            lightness[0]=  counter0;
 130   3                            lightness[1]=  counter1;
 131   3                            lightness[2]=  counter2;                    
 132   3                                       }
 133   2                                       break;
 134   2                         
 135   2                        
 136   2                      case 1: while(Data_20mschange<=10) 
 137   2                       { 
 138   3                                        // REST_DOG();
 139   3                        }                
 140   2                       Data_20mschange=0;                 
 141   2                       k++;
 142   2                       break;
 143   2              case 2:if(Is_10mschange) 
 144   2                               { 
 145   3                                      Is_10mschange=0;
 146   3                          if( Data_20mschange>=2)
 147   3                                      {  
 148   4                                                 Data_20mschange=0;
 149   4                                     counter0--;
 150   4                             counter1=0;
 151   4                                                 counter2=0;                 
 152   4                                                  if(counter0<=0)
 153   4                                  { 
 154   5                                  k++;                                           
 155   5                               }
 156   4                                               }
 157   3                                      
 158   3                                            lightness[0]=  counter0;
 159   3                            lightness[1]=  counter1;
 160   3                            lightness[2]=  counter2;                    
 161   3                                       }
 162   2                                       break;
 163   2              case 3: while(Data_20mschange<=10) 
 164   2                       { 
 165   3                                        // REST_DOG();
 166   3                        }                
 167   2                       Data_20mschange=0;                 
 168   2                       k++;
 169   2                       break;
 170   2                      case 4:if(Is_10mschange) 
 171   2                               { 
 172   3                                      Is_10mschange=0;
 173   3                          if( Data_20mschange>=2)
 174   3                                      {  
 175   4                                                 Data_20mschange=0;
 176   4                                     counter0=0;
 177   4                             counter1++;
 178   4                                                 counter2=0;                 
 179   4                                                  if(counter1>=254)
C51 COMPILER V7.00  11                                                                     06/29/2008 21:41:41 PAGE 4   

 180   4                                  { 
 181   5                                  k++;                                           
 182   5                               }
 183   4                                               }
 184   3                                      
 185   3                                            lightness[0]=  counter0;
 186   3                            lightness[1]=  counter1;
 187   3                            lightness[2]=  counter2;                    
 188   3                                       }
 189   2                                       break;
 190   2                       case 5: while(Data_20mschange<=10) 
 191   2                       { 
 192   3                                        // REST_DOG();
 193   3                        }                
 194   2                       Data_20mschange=0;                 
 195   2                       k++;
 196   2                       break;
 197   2              case 6:if(Is_10mschange) 
 198   2                               { 
 199   3                                      Is_10mschange=0;
 200   3                          if( Data_20mschange>=2)
 201   3                                      {  
 202   4                                                 Data_20mschange=0;
 203   4                                     counter0=0;
 204   4                             counter1--;
 205   4                                                 counter2=0;                 
 206   4                                                  if(counter1<=0)
 207   4                                  { 

⌨️ 快捷键说明

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