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

📄 main.lst

📁 占空比测量
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  08/22/2008 16:08:58 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\pca\main.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\main.lst) OBJECT(.\ma
                    -in.obj)

stmt level    source

   1          /*********************************************************************/
   2          //方波占空比测量
   3          /*********************************************************************/
   4          #include<C8051F000.h>
   5          #include<define.h>
   6          unsigned int    Cat_INC1,Cat_INC2,Cat_DEC;
   7          float                   space_rate,space,T_C,Time;
   8          unsigned char   Flow_Counts=0,Pulse_Counts=0,Flow_Counts1=0;
   9          bit                             Flag=1;
  10          void main()
  11          {  
  12   1              float                   space_rate=0;
  13   1              unsigned        n=100; 
  14   1              WDTCN=0xde;                                                     //关看门狗
  15   1              WDTCN=0xad;
  16   1              SYSCLK_Init();                                          //时钟初始化
  17   1              PORT_Init();                                            //端口初始化
  18   1              PCA_Init();                                                     //PCA初始化
  19   1              CR=1;                                                           //启动PCA
  20   1              EA=1;
  21   1      //      space_rate(100);
  22   1              while(1)
  23   1              {
  24   2      //              space_rate=(Cat_INC2-Cat_DEC)/(Cat_INC2-Cat_INC1);
  25   2              }
  26   1      
  27   1      }
  28          
  29          void PCA0_ISR(void) interrupt 9
  30          {
  31   1              EA=0;                                                           //中断禁止
  32   1              
  33   1                      if(CCF1==1)
  34   1                      {
  35   2      
  36   2                              Pulse_Counts++;
  37   2                              CCF1=0;
  38   2                              if(Pulse_Counts==1)
  39   2                              {
  40   3                                      PCA0CPM2=0x51;                                                          //模块2:负边沿捕捉方式、匹配中断允许
  41   3                                      Cat_INC1=PCA0CPH1*256+PCA0CPL1;
  42   3                                      Cat_INC1+=65536*Flow_Counts;
  43   3                              }
  44   2                              if(Pulse_Counts==2)
  45   2                              {
  46   3                                      Cat_INC2=PCA0CPH1*256+PCA0CPL1;
  47   3                                      Cat_INC2+=65536*Flow_Counts;
  48   3                                      T_C=Cat_INC2-Cat_INC1;
  49   3                                      space_rate=Time/T_C;
  50   3                                      
  51   3                              }
  52   2                      }
  53   1                      if(CCF2==1)
  54   1                      {
C51 COMPILER V7.06   MAIN                                                                  08/22/2008 16:08:58 PAGE 2   

  55   2                                      CCF2=0;
  56   2                                      Flow_Counts1=Flow_Counts;
  57   2                                      Cat_DEC=PCA0CPH2*256+PCA0CPL2;
  58   2                                      Cat_DEC+=65536*Flow_Counts;
  59   2                                      Time=Cat_DEC-Cat_INC1;
  60   2      /*                      if(Flow_Counts1<18)
  61   2                              {
  62   2                                      PCA0CPM1=0x60;                                                          //模块1:正边沿捕捉方式、匹配中断禁止
  63   2                                      PCA0CPM2=0x51;                                                          //模块1:负边沿捕捉方式、匹配中断允许
  64   2                                      Pulse_Counts=0;                                                         //清零
  65   2                                      Flag=0;
  66   2                              }        */
  67   2              
  68   2                      }
  69   1      
  70   1      /*      if(Flag==0)
  71   1              {
  72   1              
  73   1                      Pulse_Counts++;
  74   1                      if(CCF2==1)
  75   1                      {
  76   1                              PCA0CPM1=0x61;                                                          //模块1:正边沿捕捉方式、匹配中断禁止
  77   1                              CCF1=0;
  78   1                              if(Pulse_Counts==1)
  79   1                              {
  80   1                                      Cat_INC1=PCA0CPH1*256+PCA0CPL1;
  81   1                              }
  82   1                              if(Pulse_Counts==3)
  83   1                              {
  84   1                                      Cat_INC2=PCA0CPH1*256+PCA0CPL1;
  85   1                                      space_rate=(65536*(Flow_Counts1-1)+Cat_DEC+~Cat_INC1+1);
  86   1                                      space_rate/=(65536*(Flow_Counts-1)+Cat_INC2+~Cat_INC1+1);
  87   1                                      space_rate=1-space_rate;                        
  88   1                              }
  89   1                      }
  90   1              
  91   1                      if(CCF1==1)
  92   1                      {
  93   1                              if(Pulse_Counts==2)
  94   1                              {
  95   1                                      CCF2=0;
  96   1                                      Flow_Counts1=Flow_Counts;
  97   1                                      Cat_DEC=PCA0CPH2*256+PCA0CPL2;
  98   1                              }
  99   1                      }
 100   1              }  */
 101   1              if(CF==1)
 102   1              {
 103   2                      CF=0;
 104   2                      Flow_Counts++;
 105   2              }
 106   1              EA=1;                                                           //开总中断
 107   1      }
 108          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    394    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     25       6
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
C51 COMPILER V7.06   MAIN                                                                  08/22/2008 16:08:58 PAGE 3   

   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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