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

📄 tlc1543.lst

📁 51开发板的源程序
💻 LST
字号:
C51 COMPILER V7.06   TLC1543                                                               12/18/2007 11:18:08 PAGE 1   


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

stmt level    source

   1          
   2          #include "c51base.h" 
   3          
   4          void some_nop()
   5          {
   6   1              ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   7   1      }
   8          
   9          uint ADCRead(uchar port) //从TLC1543读取采样值,形参port是采样的通道号
  10          {
  11   1              uint idata ad_value;
  12   1              uchar i;
  13   1      
  14   1              TCL1543_CLK=0;
  15   1              TCL1543_CS=0;
  16   1              port<<=4;
  17   1              for (i=0;i<4;i++) //把通道号打入1543
  18   1              {
  19   2                      TCL1543_IN = (bit)(port&0x80);
  20   2                      TCL1543_CLK=1;
  21   2                      some_nop();
  22   2                      TCL1543_CLK=0;
  23   2                      port<<=1;
  24   2              }
  25   1              for (i=0;i<6;i++) //填充6个TCL1543_CLK
  26   1              {
  27   2                      TCL1543_CLK=1;
  28   2                      some_nop();
  29   2                      TCL1543_CLK=0;
  30   2              }
  31   1              TCL1543_CS=1;
  32   1              some_nop();some_nop();some_nop();some_nop();some_nop();some_nop();
  33   1              some_nop();some_nop();some_nop();some_nop();some_nop();some_nop();
  34   1              some_nop();some_nop();some_nop();some_nop();some_nop();some_nop();
  35   1              some_nop();some_nop();some_nop();
  36   1              TCL1543_CS=0; //等待AD转换
  37   1              some_nop();some_nop();some_nop();
  38   1      
  39   1              ad_value = 0;
  40   1              for (i=0;i<10;i++) //取D9,D8
  41   1              {
  42   2                      TCL1543_OUT=1;
  43   2                      TCL1543_CLK=1;
  44   2                      ad_value <<= 1;
  45   2                      if (TCL1543_OUT) 
  46   2                              ad_value|=0x01;
  47   2                      TCL1543_CLK=0;
  48   2              } 
  49   1      //      ad_value >>= 2;
  50   1              TCL1543_CS=1;
  51   1              return (ad_value);
  52   1      } 
  53          
  54          
  55          
C51 COMPILER V7.06   TLC1543                                                               12/18/2007 11:18:08 PAGE 2   

  56          
  57          uchar GetTemper(uchar number)
  58          {
  59   1              uint idata value;
  60   1              value = ADCRead(number);
  61   1      //      printf("温度通道%d-%d\n",(int)number,(int)value);
  62   1              if(value<=275)
  63   1                      value = 0;
  64   1              else if(value>=275 && value < 415)//0-15度
  65   1                      value = (value-270)/10;  
  66   1          else if(value>=415 && value <580) //16-32度
  67   1                      value = (value-263)/10; 
  68   1              else if(value>=580 && value <639) //33-39度
  69   1                      value = (value-255)/10; 
  70   1              else if(value>=639 && value <679) //40-45度
  71   1                      value = (value-245)/10; 
  72   1              else if(value>=679 && value <709) //46-47度
  73   1                      value = (value-235)/10; 
  74   1              else if(value>=709 && value <737) //48-51度
  75   1                      value = (value-225)/10; 
  76   1              else if(value>=737 && value <756) //52-55度
  77   1                      value = (value-215)/10; 
  78   1              else if(value>=756 && value <769) //56-56度
  79   1                      value = (value-205)/10; 
  80   1              else if(value>=769 && value <786) //57-59度
  81   1                      value = (value-195)/10; 
  82   1              else if(value>=786 && value <798) //60-61度
  83   1                      value = (value-185)/10; 
  84   1              else if(value>=798 && value <808) //60-61度
  85   1                      value = (value-175)/10; 
  86   1              else if(value>=808 && value <818) //60-61度
  87   1                      value = (value-165)/10; 
  88   1              else if(value>=818 && value <865) //60-61度
  89   1                      value = (9*value-4656)/41; 
  90   1              else if(value>=865 && value <912) //75-90度
  91   1                      value = (value-639)/3; 
  92   1      //printf("温度通道%d-%d\n",(int)number,(int)value);
  93   1                      
  94   1              return value;                               
  95   1      }                                                                    
  96                          
  97                                                          


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