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

📄 cat5113.lst

📁 RM0038红外传感器接收电视机摇控的源码
💻 LST
字号:
C51 COMPILER V7.00  CAT5113                                                                07/18/2007 12:16:48 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE CAT5113
OBJECT MODULE PLACED IN CAT5113.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CAT5113.C ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "CAT5113.h"
   2          #include "Eprom.h"
   3          
   4          code uchar MaxA = 93;
   5          code uchar MinA = 50;
   6          uchar xdata CAT_A = 93;
   7          uchar xdata CAT_B = 100;
   8          
   9          #define CS1     P1_4
  10          #define CS2     P1_5
  11          #define INC     P1_6
  12          #define U_D     P1_7
  13          
  14          uchar Get5113A(void)
  15          {
  16   1              return CAT_A;
  17   1      }
  18          uchar Get5113B(void)
  19          {
  20   1              return CAT_B;
  21   1      }
  22          
  23          void Set5113A(uchar Cat5113)
  24          {
  25   1              if((Cat5113 >= MinA)&&(Cat5113 <= MaxA))
  26   1                      CAT_A = Cat5113;
  27   1      }
  28          
  29          void CAT5113(uchar pos)
  30          {
  31   1              uchar xdata i;
  32   1              for(i = 0; i < 110; i++)
  33   1              {
  34   2                      INC = 0;
  35   2                      delay(1);
  36   2                      INC = 1;
  37   2              }
  38   1              U_D = 0;
  39   1              delay(3);
  40   1              for(i = 0; i < pos; i++)
  41   1              {
  42   2                      INC = 0;
  43   2                      delay(1);
  44   2                      INC = 1;
  45   2              }
  46   1              U_D = 1;
  47   1      }
  48                  
  49          void CAT5113A(uchar pos)
  50          {
  51   1              CS1 = 0;                                //选中
  52   1              delay(3);
  53   1              CAT5113(pos);
  54   1              delay(3);
  55   1              CS1 = 1;
C51 COMPILER V7.00  CAT5113                                                                07/18/2007 12:16:48 PAGE 2   

  56   1      }
  57          
  58          void CAT5113B(uchar pos)
  59          {
  60   1              CS2 = 0;                                //选中
  61   1              delay(3);
  62   1              CAT5113(pos);
  63   1              delay(3);
  64   1              CS2 = 1;
  65   1      }
  66          
  67          //获得模拟电压
  68          float GetPos(uchar x1, uchar x2)
  69          {
  70   1              uchar xdata r1 = x1;
  71   1              float r2 = 0.0;
  72   1              if(!(x1 > 0&&x1 < 100&&x2 > 0&&x2 <= 100))
  73   1              {
  74   2                      return 0.0;
  75   2              }
  76   1              r2 = 1.0/(1.0/(100.0 - x1) + 1.0/(float)x2);
  77   1              return (1.0/((r1 + r2)/r1)*5.0);
  78   1      }
  79          
  80          void CAT5113Change(char Pos)
  81          {
  82   1              float xdata v1 = 0.0,v2 = 0.0;
  83   1              char xdata i = 0;
  84   1      
  85   1              ReadEprom(30, &CAT_A, 1);
  86   1              ReadEprom(31, &CAT_B, 1);
  87   1              if(CAT_A > MaxA)CAT_A = MaxA;
  88   1              if(CAT_A < MinA)CAT_A = MinA;
  89   1              if(CAT_B > 100)CAT_B = 100;
  90   1              if(CAT_B < 1)CAT_B = 1;
  91   1              if(Pos >= 0)
  92   1              {
  93   2                      for(i = 0; i < Pos; i++)
  94   2                      {
  95   3                              v1 = GetPos(CAT_A, CAT_B);
  96   3                              v2 = GetPos(CAT_A + 1,100);
  97   3                              if(v2 <  v1)
  98   3                              {
  99   4                                      if(CAT_A < 99)
 100   4                                              CAT_A++;
 101   4                                      CAT_B = 100;
 102   4                              }else
 103   3                              {
 104   4                                      CAT_B--;
 105   4                              }
 106   3                      }
 107   2              }else
 108   1              {
 109   2                      for(i = Pos; i < 0; i++)
 110   2                      {
 111   3                              if(CAT_B >= 100)
 112   3                              {
 113   4                                      if(CAT_A > 2)
 114   4                                      {
 115   5                                              v2 = GetPos(CAT_A,100);
 116   5                                              CAT_A--;
 117   5                                              v1 = GetPos(CAT_A,CAT_B);
C51 COMPILER V7.00  CAT5113                                                                07/18/2007 12:16:48 PAGE 3   

 118   5                                              while(v1 < v2)
 119   5                                              {
 120   6                                                      CAT_B--;
 121   6                                                      v1 = GetPos(CAT_A, CAT_B);
 122   6                                              }
 123   5                                      }
 124   4                              }else
 125   3                              {
 126   4                                      CAT_B++;
 127   4                              }
 128   3                      }
 129   2              }
 130   1              
 131   1              CAT5113A(0);
 132   1              CAT5113B(CAT_B);
 133   1              CAT5113A(CAT_A);
 134   1              WriteEprom(30, &CAT_A, 1);
 135   1              WriteEprom(31, &CAT_B, 1);
 136   1      }
 137          
 138          void StopCAT5113()
 139          {
 140   1              CAT5113A(0);
 141   1              CAT5113B(100);
 142   1              CAT5113A(100);
 143   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    901    ----
   CONSTANT SIZE    =      2    ----
   XDATA SIZE       =      2      11
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       9
   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 + -