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

📄 pwm.lst

📁 基于高速51单片机的,带示波器功能的频率计原码,还能分析PWM红外编码.液晶显示.
💻 LST
字号:
C51 COMPILER V8.05a   PWM                                                                  08/21/2007 12:58:01 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE PWM
OBJECT MODULE PLACED IN PWM.OBJ
COMPILER INVOKED BY: C:\Keil\MCU\C51\BIN\C51.EXE PWM.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //模块:PWM.C
   2          //功能:PWM解码模块
   3          //晶振:24.000MHz
   4          //芯片: STC12C5412AD
   5          //版本:V1.0.0
   6          //设计:魏广寅
   7          //日期:2007.4.10
   8          #include "stc12c5412ad.h"
   9          #define uchar unsigned char                       
  10          #define uint unsigned int
  11          #define CNT 32
  12          //--------------------------------------------------------------------
  13          extern uchar keyfuncindex;
  14          extern void d2(void);
  15          extern void lcd_init(void);
  16          extern void dis_one_char(uchar x,uchar y,uchar asc_num,bit b_flag);
  17          extern void dis_one_zi(uchar x_add,uchar y_add,uchar code *po,bit back_flag,bit char_moudle);
  18          extern void delay(uint time);
  19          extern void delay_1(uchar time);
  20          extern void dis_cls(void);
  21          extern uchar code tab[16];
  22          uchar data value_h[CNT];
  23          uchar count=0;
  24          sbit key0=P3^0;
  25          sbit key1=P3^1;
  26          //--------------------------------------------------------------------
  27          void pwm_init()
  28          {
  29   1              TMOD=0x01;
  30   1              TH0=0;
  31   1              TL0=30;
  32   1              IT0=1;
  33   1              EX0=1;
  34   1              EA=1;
  35   1              //TR0=1;
  36   1      }
  37          //--------------------------------------------------------------------
  38          void clk() interrupt 0 
  39          {
  40   1                      if(TH0==0 & TL0==0)
  41   1                      TR0=1;
  42   1                      else
  43   1                      {
  44   2              
  45   2                              TR0=0;
  46   2                              value_h[count]=TH0;
  47   2                              TH0=0;
  48   2                              TL0=30;
  49   2                              count++;
  50   2                              if(count==CNT)
  51   2                              {
  52   3                                      EX0=0;
  53   3                                      count=0;
  54   3                                      TH0=0;
  55   3                                      TL0=0;
C51 COMPILER V8.05a   PWM                                                                  08/21/2007 12:58:01 PAGE 2   

  56   3                                      TR0=0;
  57   3                              }
  58   2                              TR0=1;
  59   2                      }
  60   1      }
  61          //--------------------------------------------------------------------
  62          void bin_to_hex(uchar x,uchar y,uchar bin)
  63          {
  64   1              uchar b_h,b_l;
  65   1              b_h=bin & 0xf0;
  66   1              b_h>>=4;
  67   1              b_h=tab[b_h];
  68   1              b_l=bin & 0x0f;
  69   1              b_l=tab[b_l];
  70   1              y*=2;
  71   1              dis_one_char(x,y,b_h,1);
  72   1              dis_one_char(x,y+1,b_l,1);
  73   1      }
  74          //--------------------------------------------------------------------
  75          void pwm()
  76          {
  77   1              uchar i=0,x=0,y=0,ii;
  78   1      g:      pwm_init();
  79   1              dis_cls();
  80   1              while(1)
  81   1              {
  82   2                      for(x=0;x<4;x++)
  83   2                      {
  84   3                              for(y=0;y<8;y++)
  85   3                              {
  86   4                                      ii=value_h[i];
  87   4                                      bin_to_hex(x,y,ii);
  88   4                                      i++;
  89   4                              }
  90   3                      }
  91   2                      i=0;
  92   2                      key0=1;
  93   2                      key1=1;
  94   2                      delay_1(5);
  95   2                      if(key0==0)
  96   2                      {
  97   3                              
  98   3                              for(i=0;i<32;i++)
  99   3                              {
 100   4                                      value_h[i]=0;
 101   4                                      
 102   4                              }
 103   3                              goto exit;
 104   3                      }
 105   2      
 106   2                      if(key1==0)
 107   2                      {
 108   3                              
 109   3                              for(i=0;i<32;i++)
 110   3                              {
 111   4                                      value_h[i]=0;
 112   4                                      
 113   4                              }
 114   3                              dis_cls();
 115   3                              TMOD=0x00;
 116   3                              TH0=0;
 117   3                              TL0=0;
C51 COMPILER V8.05a   PWM                                                                  08/21/2007 12:58:01 PAGE 3   

 118   3                              count=0;
 119   3                              EX0=0;
 120   3                              EA=0;
 121   3                              TR0=0;
 122   3                              TR1=0;
 123   3                              goto g;
 124   3                      }
 125   2      
 126   2              }
 127   1              exit:for(i=0;i<32;i++)
 128   1                              {
 129   2                                      value_h[i]=0;
 130   2                                      
 131   2                              }
 132   1              TMOD=0x00;
 133   1              TH0=0;
 134   1              TL0=0;
 135   1              count=0;
 136   1              EX0=0;
 137   1              EA=0;
 138   1              TR0=0;
 139   1              TR1=0;
 140   1              keyfuncindex=2;
 141   1              d2();
 142   1      }
 143          //--------------------------------------------------------------------


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    328    ----
   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 + -