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

📄 psener.lst

📁 SHT10温湿度测试
💻 LST
字号:
C51 COMPILER V8.15   PSENER                                                                08/06/2009 13:49:10 PAGE 1   


C51 COMPILER V8.15, COMPILATION OF MODULE PSENER
OBJECT MODULE PLACED IN Psener.OBJ
COMPILER INVOKED BY: D:\专业软件SLF\keil\C51\BIN\C51.EXE Psener.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"reg52.h"
   2          #include"stdio.h"
   3          #include"intrins.h"
   4          #include "LED.h"
   5          #include "44KEY.h"
   6          #define uchar unsigned char
   7          #define uint  unsigned int
   8          char  AsciiArray[5];
   9          unsigned int j;
  10          uint fg;
  11          char fgf;
  12          
  13          sbit TLC1549_CLK     = P3^2;        //AD_CLK
  14          sbit TLC1549_DOUT    = P3^3;        //AD_DOUT
  15          sbit TLC1549_CS      = P3^4;        //AD_CS
  16          uint result=0; 
  17          uint flag1;
  18          uint t0,t1;                    //转换变量初始化为0
  19          uint IntNumber;
  20          
  21          void InttoChar (uint IntNumber)
  22          //---------------------------------------------------------
  23          // Name: void InttoChar (int IntNumber)
  24          // Func.: Translate integer to ASCII charactor array
  25          // Char.: IntNumber  number to be translated to ASCII charactor
  26          //---------------------------------------------------------
  27          {
  28   1       if (IntNumber < 10)
  29   1       {
  30   2        AsciiArray[0] = IntNumber + 0x30;
  31   2        AsciiArray[1] = 0x20;
  32   2        AsciiArray[2] = 0x20;
  33   2        AsciiArray[3] = 0x20;
  34   2        AsciiArray[4] = 0x20;
  35   2        return;
  36   2       }
  37   1       if (IntNumber < 100)
  38   1       {
  39   2        AsciiArray[0] = IntNumber / 10 + 0x30;
  40   2        AsciiArray[1] = IntNumber % 10 + 0x30;
  41   2        AsciiArray[2] = 0x20;
  42   2        AsciiArray[3] = 0x20;
  43   2        AsciiArray[4] = 0x20;
  44   2        return;
  45   2       }
  46   1       if (IntNumber < 1000)
  47   1       {
  48   2        AsciiArray[0] = IntNumber / 100 + 0x30;
  49   2        AsciiArray[1] = IntNumber % 100 / 10 + 0x30;
  50   2        AsciiArray[2] = IntNumber % 10 + 0x30;
  51   2        AsciiArray[3] = 0x20;
  52   2        AsciiArray[4] = 0x20;
  53   2        return;
  54   2       }
  55   1       if (IntNumber < 10000)
C51 COMPILER V8.15   PSENER                                                                08/06/2009 13:49:10 PAGE 2   

  56   1       {
  57   2        AsciiArray[0] = IntNumber / 1000 + 0x30;
  58   2        AsciiArray[1] = IntNumber % 1000 / 100 + 0x30;
  59   2        AsciiArray[2] = IntNumber % 100 / 10 + 0x30;
  60   2        AsciiArray[3] = IntNumber % 10 + 0x30;
  61   2        AsciiArray[4] = 0x20;
  62   2        return;
  63   2       }
  64   1       else
  65   1       {
  66   2        AsciiArray[0] = IntNumber / 10000 + 0x30;
  67   2        AsciiArray[1] = IntNumber % 10000 / 1000 + 0x30;
  68   2        AsciiArray[2] = IntNumber % 1000 / 100 + 0x30;
  69   2        AsciiArray[3] = IntNumber % 100 / 10 + 0x30;
  70   2        AsciiArray[4] = IntNumber % 10 + 0x30;
  71   2        return;
  72   2       }
  73   1      } 
  74          
  75          static void mDelay(j)
  76          {
  77   1          unsigned int i;
  78   1              for(;j>0;j--)
  79   1              {
  80   2                  for(i=124;i>0;i--)
  81   2                      {;}
  82   2              }
  83   1      }
  84          
  85          void adelay(uchar us)        //delay time
  86          {
  87   1          while(us--);
  88   1      }
  89          
  90          uint adc()
  91          { 
  92   1          uint  u=0;
  93   1          uchar i;
  94   1          TLC1549_CS=1;                   //先高电平,禁止I/O CLOCK
  95   1          _nop_();
  96   1              TLC1549_CLK=0; 
  97   1              _nop_();
  98   1          TLC1549_CS=0;                   //开启控制电路,使能DATA OUT和I/O CLOCK               
  99   1          for(i=0;i<10;i++)               //read data
 100   1          { 
 101   2              TLC1549_CLK=0;                           //时钟下降沿
 102   2                      _nop_();                             
 103   2              u=(u<<1)|TLC1549_DOUT;      //读取数字放在16位u中
 104   2              TLC1549_CLK=1;              //时钟的上升沿每个时钟取一次数
 105   2              _nop_();      
 106   2          }
 107   1          for(i=0;i<10;i++);
 108   1              adelay(2);        //延时21uS 有问题???
 109   1          TLC1549_CS=1;                   //DOUT 返回到高阻状态而终止序列
 110   1          return(u);                      //返回AD转换后的值
 111   1      }
 112          
 113          void Psener(void)
 114          {  
 115   1          uint i,a=0,temp,temp1;
 116   1          float u1,sum=0;
 117   1       
C51 COMPILER V8.15   PSENER                                                                08/06/2009 13:49:10 PAGE 3   

 118   1              mDelay(30);
 119   1          while(1)
 120   1          {
 121   2              u1=0;sum=0;             
 122   2                      
 123   2                      KeyScan();
 124   2              KeyFree();
 125   2              for(i=0;i<30;i++)
 126   2              {
 127   3                      u1=adc(); 
 128   3                      temp=((500*(u1))/(1023));//扩大100倍
 129   3                      sum=sum+temp-30;
 130   3                  }
 131   2              temp1=sum/30;
 132   2                
 133   2              fg=(temp1*50)/2.5;
 134   2              
 135   2                      //fgf=fg;
 136   2              if(fg<0||fg>5000)
 137   2                      fg=0;
 138   2                      InttoChar(fg); 
 139   2            if(fg>=0&&fg<=5000)
 140   2                 {
 141   3                 sel1= fg%10;
 142   3                        // ascii[0]=sel1+48;
 143   3                 fg= fg/10;
 144   3                 sel2= fg%10;
 145   3                         //ascii[1]=sel2+48;
 146   3                 fg= fg/10;
 147   3                 sel3= fg%10;
 148   3                         //ascii[2]=sel2+48;
 149   3                 fg= fg/10;
 150   3                 sel4= fg%10;
 151   3                        // ascii[3]=sel2+48;
 152   3                         sel8=12;
 153   3              }  
 154   2                      
 155   2              if(flag1==4)               //如果测量的是温度
 156   2              {
 157   3                      for(a=50;a>0;a--)
 158   3                      {
 159   4                          led_show4();
 160   4                      }
 161   3                  }
 162   2              else if(flag1==3)               //如果上位机测量
 163   2              { 
 164   3                    
 165   3                               break;
 166   3              }   
 167   2                  if(key==1)        //如果要退出   
 168   2              {
 169   3                     mDelay(100);
 170   3                 if(key==1)
 171   3                     {
 172   4                    key=0;
 173   4                            P0=0xff;
 174   4                                fg=0;
 175   4                    flag1=0;
 176   4                                
 177   4                                break;
 178   4                  }
 179   3              }   
C51 COMPILER V8.15   PSENER                                                                08/06/2009 13:49:10 PAGE 4   

 180   2          }   
 181   1      }


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