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

📄 measure.lst

📁 本人开发的测量水的浊度的仪器
💻 LST
字号:
C51 COMPILER V7.06   MEASURE                                                               04/09/2005 13:15:56 PAGE 1   


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

stmt level    source

   1          #include "iic.h"
   2          #include "ads1100.h"
   3          #include "lcd.h"
   4          #include "measure.h"
   5          #include "math.h"
   6          #include "system.h"
   7          
   8          idata ushort value[7];
   9          extern code ushort degree[7];
  10          
  11          void displayvalue(float fvalue)
  12          {
  13   1              uchar i,buf[20];
  14   1      
  15   1              for(i=0;i<18;i++)
  16   1                      buf[i] = ' ';
  17   1              buf[i] = 0;
  18   1              printstring16x(0,8,12,buf);
  19   1      
  20   1              sprintf(buf,"%4.2fNTU",fvalue);
  21   1              printstring16x(0,8,12,buf);
  22   1      }
  23          
  24          float calculate(ushort x)
  25          {
  26   1              float f;
  27   1              uchar i;
  28   1      
  29   1              for(i=0;i<7;i++)
  30   1              {
  31   2                      if(x < value[i])
  32   2                              break;
  33   2              }
  34   1              if(i)
  35   1              {
  36   2                      if(i>6)
  37   2                              f = 1000.0;
  38   2                      else 
  39   2                              f = degree[i-1]+(float)(x-value[i-1])/(float)(value[i]-value[i-1])*(float)(degree[i]-degree[i-1]);
  40   2              }
  41   1              else
  42   1                      f = 0.0;
  43   1      
  44   1              if(f > 1000.0)
  45   1                      f = 1000.0;
  46   1      
  47   1          return f;
  48   1      }
  49          
  50          float calculates(ushort x)
  51          {
  52   1              float f;
  53   1      
  54   1              f = x*1000.0/0x7fff;
  55   1      
C51 COMPILER V7.06   MEASURE                                                               04/09/2005 13:15:56 PAGE 2   

  56   1              return f;
  57   1      }
  58          
  59          void sendtoprinter(float fvalue)
  60          {
  61   1              uchar second,minute,hour,date,month,year;
  62   1      
  63   1              second  = readsecond();
  64   1              minute  = readminute();
  65   1              hour    = readhour();
  66   1              date    = readdate();
  67   1              month   = readmonth();
  68   1              year    = readyear();
  69   1      
  70   1              printf("\n===============\n");
  71   1              printf("Measuring time:\n");
  72   1              delay(10);
  73   1              printf("20%02bx-%02bx-%02bx\n",year,month,date);
  74   1              delay(10);
  75   1              printf("%02bx:%02bx:%02bx\n",hour,minute,second);
  76   1              delay(10);
  77   1              printf("Water quality:\n");
  78   1              delay(10);
  79   1              printf("  %4.2fNTU\n",fvalue);
  80   1              printf("===============\n\n");
  81   1      }
  82          
  83          void measure()
  84          {
  85   1              ushort adsvalue=0;
  86   1              ushort oldvalue=0;
  87   1              uchar i,tmp1,tmp2;
  88   1              uchar flag;
  89   1              float fvalue;
  90   1      
  91   1              clear(0x0000);
  92   1              clear(0x4000);
  93   1              printstring16(0,0,0,"现已进入测量程序");
  94   1              printstring16(0,28,26,"按1打印");
  95   1              printstring16(0,28,28,"按2退出");
  96   1      
  97   1              readiic(0x20,&flag);
  98   1      
  99   1              for(i=0;i<7;i++)
 100   1              {
 101   2                      readiic(i*2,&tmp1);
 102   2                      delay(1);
 103   2                      readiic(i*2+1,&tmp2);
 104   2                      delay(1);
 105   2                      value[i] = tmp2*256+tmp1;
 106   2              }
 107   1      
 108   1              while(1)
 109   1              {
 110   2                      readads1100(&adsvalue);
 111   2                      if(adsvalue != oldvalue)
 112   2                      {
 113   3                              if(flag == 0x55)
 114   3                                      fvalue = calculate(adsvalue);
 115   3                              else
 116   3                                      fvalue = calculates(adsvalue);
 117   3                              oldvalue = adsvalue;
C51 COMPILER V7.06   MEASURE                                                               04/09/2005 13:15:56 PAGE 3   

 118   3      
 119   3                              displayvalue(fvalue);
 120   3                      }
 121   2      
 122   2                      printtime();
 123   2      
 124   2                      i = readkey();
 125   2                      if(i == KEY_1)
 126   2                              sendtoprinter(fvalue);
 127   2                      if(i == KEY_2)
 128   2                              break;
 129   2                      delay(500);
 130   2              }
 131   1      }
 132          
 133          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    851    ----
   CONSTANT SIZE    =    163    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      53
   IDATA SIZE       =     14    ----
   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 + -