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

📄 pwm.lst

📁 此程序可以显示输入波形
💻 LST
字号:
C51 COMPILER V7.50   PWM                                                                   03/13/2008 13:49:28 PAGE 1   


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

line level    source

   1          //--------------------------------------------------------------------                  
   2          
   3          
   4          
   5          //模块:PWM.C
   6          
   7          //功能:PWM解码模块
   8          
   9          //晶振:24.000MHz
  10          
  11          //芯片: STC12C5412AD
  12          
  13          #include "stc12c5412ad.h"
  14          //#ifndef  lcd12864_driver_new
  15          //#include "lcd12864_driver_new.h"
  16          //#endif
  17          #define uchar unsigned char                  
  18          
  19          #define uint unsigned int
  20          
  21          #define CNT 32
  22          
  23          //--------------------------------------------------------------------
  24          
  25          extern uchar keyfuncindex;
  26          
  27          extern void d2(void);
  28          
  29          extern void lcd_init(void);
  30          
  31          extern void dis_one_char(uchar x,uchar y,uchar asc_num,bit b_flag);
  32          
  33          extern void dis_one_zi(uchar x_add,uchar y_add,uchar code *po,bit back_flag,bit char_moudle);
  34          
  35          extern void delay(uint time);
  36          
  37          extern void delay_1(uchar time);
  38          
  39          extern void dis_cls(void);
  40          
  41          extern uchar code tab[16];
  42          
  43          uchar data value_h[CNT];
  44          
  45          uchar count=0;
  46          
  47          sbit key0=P3^0;
  48          
  49          sbit key1=P3^1;
  50          
  51          //--------------------------------------------------------------------
  52          
  53          void pwm_init()
  54          
  55          {
C51 COMPILER V7.50   PWM                                                                   03/13/2008 13:49:28 PAGE 2   

  56   1      
  57   1            TMOD=0x01;
  58   1      
  59   1            TH0=0;
  60   1      
  61   1            TL0=0;
  62   1      
  63   1            IT0=1;
  64   1      
  65   1            EX0=1;
  66   1      
  67   1            EA=1;
  68   1      
  69   1      }
  70          
  71          //--------------------------------------------------------------------
  72          
  73          void clk() interrupt 0 
  74          
  75          {
  76   1      
  77   1            if(TH0==TL0 && TL0==0)
  78   1      
  79   1            {
  80   2      
  81   2                    TR0=1;
  82   2      
  83   2            }
  84   1      
  85   1            else
  86   1      
  87   1            {
  88   2      
  89   2                    TR0=0;
  90   2      
  91   2                    value_h[count]=TH0;
  92   2      
  93   2                    TH0=0;
  94   2      
  95   2                    TL0=0;
  96   2      
  97   2                    TR0=1;
  98   2      
  99   2                    count++;
 100   2      
 101   2                    if(count==CNT-1)
 102   2      
 103   2                    {
 104   3      
 105   3                          EX0=0;
 106   3      
 107   3                          count=0;
 108   3      
 109   3                          TH0=0;
 110   3      
 111   3                          TL0=0;
 112   3      
 113   3                          TR0=0;
 114   3      
 115   3                    }
 116   2      
 117   2            }
C51 COMPILER V7.50   PWM                                                                   03/13/2008 13:49:28 PAGE 3   

 118   1      
 119   1      }
 120          
 121          //--------------------------------------------------------------------
 122          
 123          void bin_to_hex(uchar x,uchar y,uchar bin)
 124          
 125          {
 126   1      
 127   1            uchar b_h,b_l;
 128   1      
 129   1            b_h=bin & 0xf0;
 130   1      
 131   1            b_h>>=4;
 132   1      
 133   1            b_h=tab[b_h];
 134   1      
 135   1            b_l=bin & 0x0f;
 136   1      
 137   1            b_l=tab[b_l];
 138   1      
 139   1            y*=2;
 140   1      
 141   1            dis_one_char(x,y,b_h,1);
 142   1      
 143   1            dis_one_char(x,y+1,b_l,1);
 144   1      
 145   1      }
 146          
 147          //--------------------------------------------------------------------
 148          
 149          void pwm()
 150          
 151          {
 152   1      
 153   1            uchar i=0,x=0,y=0,ii;
 154   1      
 155   1            pwm_init();
 156   1      
 157   1            dis_cls();
 158   1      
 159   1            while(1)
 160   1      
 161   1            {
 162   2      
 163   2                    for(x=0;x<4;x++)
 164   2      
 165   2                    {
 166   3      
 167   3                          for(y=0;y<8;y++)
 168   3      
 169   3                          {
 170   4      
 171   4                                  ii=value_h[i++];
 172   4      
 173   4                                  bin_to_hex(x,y,ii);
 174   4      
 175   4                                  
 176   4      
 177   4                          }
 178   3      
 179   3                    }
C51 COMPILER V7.50   PWM                                                                   03/13/2008 13:49:28 PAGE 4   

 180   2      
 181   2                    i=0;
 182   2      
 183   2                    key0=1;
 184   2      
 185   2                    key1=1;
 186   2      
 187   2                    delay_1(5);
 188   2      
 189   2                    if(key0==0 || key1==0)
 190   2      
 191   2                    {
 192   3      
 193   3                          
 194   3      
 195   3                          for(i=0;i<32;i++)
 196   3      
 197   3                          {
 198   4      
 199   4                                  value_h[i]=0;
 200   4      
 201   4                                  
 202   4      
 203   4                          }
 204   3      
 205   3                          goto exit;
 206   3      
 207   3                                  }
 208   2      
 209   2            }
 210   1      
 211   1            exit:for(i=0;i<32;i++)
 212   1      
 213   1                          {
 214   2      
 215   2                                  value_h[i]=0;
 216   2      
 217   2                                  
 218   2      
 219   2                          }
 220   1      
 221   1            TMOD=0x00;
 222   1      
 223   1            TH0=0;
 224   1      
 225   1            TL0=0;
 226   1      
 227   1            count=0;
 228   1      
 229   1            EX0=0;
 230   1      
 231   1            EA=0;
 232   1      
 233   1            TR0=0;
 234   1      
 235   1            TR1=0;
 236   1      
 237   1            keyfuncindex=2;
 238   1      
 239   1            d2();
 240   1      
 241   1      }
C51 COMPILER V7.50   PWM                                                                   03/13/2008 13:49:28 PAGE 5   



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