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

📄 pwm.lst

📁 单片机红外解码及无线解码的应用
💻 LST
字号:
C51 COMPILER V7.01  PWM                                                                    12/05/2005 22:02:15 PAGE 1   


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

stmt level    source

   1          #include <reg51.h>
   2          #include <intrins.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          #define POWER_MIN 60  ////39 ===135V慢速  28===183V中速
   6          #define ms_waiteAA  1
   7          #define ms_waite55  2
   8          #define ms_waiteA5      3
   9          #define ms_waiteD1      4
  10          #define ms_waiteD2      5
  11          sbit pwm1=P1^7;
  12          sbit pwm2=P1^6;
  13          sbit pwm3=P1^5;
  14          sbit pwm4=P1^4;
  15          uchar power1;
  16          uchar power2;
  17          uchar message=0;
  18          void delay(uchar count)//延时
  19          {
  20   1      uchar i,k;
  21   1      i=0;
  22   1      k=0;
  23   1      for (k=0;k<count;k++)
  24   1      for (i=0;i<30;i++);
  25   1      }
  26          
  27          
  28          
  29          
  30          void Initial(void)
  31          {
  32   1      IT0=1;
  33   1      IT1=1;
  34   1      IE0=0;
  35   1      IE1=0;
  36   1      EX0=1;
  37   1      EX1=1;
  38   1      SCON=0X50;
  39   1      TMOD=0x20;
  40   1      TH1=0xF3;//0xF3;2400
  41   1      TL1=0xF3;
  42   1      TR1=1;
  43   1      ES=1;
  44   1      PS=1;
  45   1      EA=1;
  46   1      power1=71;//0~80
  47   1      power2=71;//0~80
  48   1      message=ms_waiteAA;
  49   1      }
  50          
  51          void pwm(void)
  52          {
  53   1      uchar k=0;
  54   1      while(k<=POWER_MIN)
  55   1      {
C51 COMPILER V7.01  PWM                                                                    12/05/2005 22:02:15 PAGE 2   

  56   2      if (power1<POWER_MIN)
  57   2      if (k>=power1)
  58   2      pwm1=0;
  59   2      if (power2<POWER_MIN)
  60   2      if (k>=power2)
  61   2      pwm2=0;
  62   2      delay(1);
  63   2      k++;
  64   2      }
  65   1      //for (k=0;k<50;k++);
  66   1      delay(1);
  67   1      pwm1=1;
  68   1      pwm2=1;
  69   1      }
  70          
  71          void int0 (void)interrupt 0 
  72          {
  73   1      pwm();
  74   1      }
  75          
  76          void int1 (void)interrupt 2 
  77          {
  78   1      pwm();
  79   1      }
  80          
  81          void receive (void) interrupt 4
  82          {
  83   1      uchar d;
  84   1      if (TI==1)
  85   1      {
  86   2      TI=0;
  87   2      }
  88   1      if (RI==1)
  89   1      
  90   1      RI=0;
  91   1      d=SBUF;
  92   1              switch (message)
  93   1                              {       
  94   2                              case ms_waiteAA:
  95   2                                                                      if (d==0xAA)
  96   2                                                                      message=ms_waite55;
  97   2                                                                      else
  98   2                                                                      message=ms_waiteAA;
  99   2                                                                      break;
 100   2                              case ms_waite55:
 101   2                                                                      if (d==0x55)
 102   2                                                                      message=ms_waiteA5;
 103   2                                                                      else
 104   2                                                                      message=ms_waiteAA;
 105   2                                                                      break;
 106   2                              
 107   2                         case ms_waiteA5:
 108   2                                                                      if (d==0xA5)
 109   2                                                                      message=ms_waiteD1;
 110   2                                                                      else
 111   2                                                                      message=ms_waiteAA;
 112   2                                                                      break;
 113   2                              case ms_waiteD1:
 114   2                                                                      if (d==0x01)
 115   2                                                                              {
 116   3                                                                              power2=39;                                                              
 117   3                                                                              }
C51 COMPILER V7.01  PWM                                                                    12/05/2005 22:02:15 PAGE 3   

 118   2      
 119   2                                                                      else
 120   2                                                                      if (d==0x02)
 121   2                                                                              {                                                               
 122   3                                                                              power2=28;
 123   3                                                                              }                                               
 124   2                                                                      else
 125   2                                                                      if (d==0x04)
 126   2                                                                              {
 127   3                                                                              power2=15;                                                                      
 128   3                                                                              }
 129   2      
 130   2                                                                      else
 131   2                                                                      if (d==0x08)
 132   2                                                                              {                                                               
 133   3                                                                              power2=71;
 134   3                                                                              }
 135   2                                                      
 136   2                                                                      message=ms_waiteAA;
 137   2                                                                      break;
 138   2      
 139   2                              default :                       message=ms_waiteAA;
 140   2                                                                      break;
 141   2                              }
 142   1      
 143   1      
 144   1        }
 145          
 146          main()
 147          {
 148   1      Initial();
 149   1      while(1);
 150   1      }
 151          
 152          


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