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

📄 main.lst

📁 温度与转速数据采集和控制
💻 LST
字号:
C51 COMPILER V7.01  MAIN                                                                   01/02/2004 19:29:46 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\main.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\main.c DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          #include <reg52.h>
   3          
   4          
   5          #define lis_f                       0x02//累计时分1
   6          #define lis_s                       0x04//累计时时2
   7          
   8          #define wendu_bj              0x06//温度报警1@
   9          #define zasu_bj                  0x08//转速报警2
  10          
  11          
  12          
  13          extern void some();//自检
  14          extern void init();//初始设置
  15          extern void somc();//启动设备
  16          extern unsigned int i2c_read(unsigned char address);
  17          extern bit i2c_write(unsigned char address,unsigned int fb);
  18          extern int Read_Temperature(void);
  19          extern void time_qd();
  20          extern unsigned char leiji_minf;//累计时间 -分
  21          extern unsigned int leiji_mins;//累计时间- 小时
  22          
  23           unsigned int zangsuzia;
  24           unsigned int zangsuzi1[7];
  25           
  26           
  27           unsigned int zangsuzi;//每分钟转速值
  28          extern bit buza;//不转标志
  29          void read_i2c();
  30          void qdcesu();//启动测速
  31          extern void k_gnkey();//功能
  32          extern void k_sezi();//设置
  33          extern void k_jajn();//设置加减
  34          extern void jswd();//计时温度切换显示
  35          extern void stratcbf();//显示数据刷新
  36          extern void datey(unsigned int i);
  37          extern void  bojinsu_zj();
  38          extern bit xiaosen();
  39          unsigned int zsedr();
  40          
  41          char wdcj();
  42          char wd_bj;//温度报警值
  43          unsigned int zs_bj;//转速报警值
  44          char wdcjsu;//温度采集值
  45          
  46          unsigned char cecsu;//测速次数
  47          
  48          unsigned char wdce;//温度测量次数
  49          int wdra[5];
  50          void bojin();
  51          bit qdcesubuza;
  52          extern bit jswdstr;//计时温度状态显示 0-温度 1-记时
  53          bit wd_bojin_se;//温度报警位
  54          bit zs_bojin_se;//转速报警位
  55          
C51 COMPILER V7.01  MAIN                                                                   01/02/2004 19:29:46 PAGE 2   

  56          sbit delet_bj=P0^4;//消声
  57          
  58          
  59          main()
  60          {
  61   1      delet_bj=1;
  62   1       zangsuzi=0; 
  63   1      some();//自检
  64   1      read_i2c();
  65   1      init();//初始设置
  66   1      somc();//启动设备
  67   1      bojinsu_zj();
  68   1      jswdstr=1;
  69   1      while(1)
  70   1      {
  71   2       k_gnkey();//功能
  72   2       k_sezi();//设置
  73   2       k_jajn();//设置加减
  74   2       jswd();//计时温度切换显示
  75   2       stratcbf();//显示数据刷新
  76   2       qdcesu();//启动测速
  77   2       time_qd();
  78   2       wdce++; 
  79   2       if(wdce>30)
  80   2              {
  81   3              wdce=0;
  82   3             wdcjsu=wdcj();
  83   3              }
  84   2      if(xiaosen())
  85   2              delet_bj=!delet_bj;
  86   2       bojin();
  87   2       }
  88   1      }
  89          
  90          void bojin()
  91          {
  92   1      if(wdcjsu>=wd_bj)
  93   1              wd_bojin_se=1;
  94   1      else wd_bojin_se=0;
  95   1      if(zangsuzi>=zs_bj)
  96   1              zs_bojin_se=1;
  97   1      else zs_bojin_se=0;
  98   1      }
  99          
 100          char wdcj()
 101          { 
 102   1      int k;
 103   1      unsigned char w,b,j; 
 104   1       int ds[5]; 
 105   1        wdra[4]= wdra[3];wdra[3]= wdra[2];
 106   1        wdra[2]= wdra[1];wdra[1]= wdra[0];
 107   1        wdra[0]=Read_Temperature();
 108   1        
 109   1        ds[0]= wdra[4];ds[1]= wdra[3];
 110   1        ds[2]= wdra[2];ds[3]= wdra[1];
 111   1        ds[4]= wdra[0];
 112   1        
 113   1         for(b=0;b<4;b++)
 114   1              {
 115   2              w=b;
 116   2              for(j=b+1;j<5;j++)
 117   2                      
C51 COMPILER V7.01  MAIN                                                                   01/02/2004 19:29:46 PAGE 3   

 118   2              if(ds[j]<ds[w])w=j;
 119   2              k=ds[w];ds[w]=ds[b];ds[b]=k;
 120   2              }
 121   1        return (((ds[1]+ds[2]+ds[3])/3)>>4);
 122   1      }
 123          void read_i2c()
 124          {
 125   1      leiji_minf=i2c_read(lis_f);
 126   1      leiji_mins=i2c_read(lis_s);
 127   1      wd_bj=i2c_read(wendu_bj);
 128   1      zs_bj=i2c_read(zasu_bj);
 129   1      }
 130          
 131          void qdcesu()//启动测速
 132          {
 133   1      cecsu++;
 134   1      if((cecsu>20)|buza)
 135   1        {
 136   2         cecsu=0;  
 137   2         zangsuzia=0;
 138   2         zangsuzi=zsedr();
 139   2         EX0=1;
 140   2         buza=0;
 141   2         qdcesubuza=0;     
 142   2         }
 143   1      else if(qdcesubuza)
 144   1               {
 145   2                cecsu=0;         
 146   2                 EX0=1;  
 147   2                 zangsuzi=zsedr();
 148   2                 buza=0;
 149   2                 qdcesubuza=0;    
 150   2               }
 151   1      }
 152          
 153          unsigned int zsedr()
 154          {
 155   1      unsigned int k;
 156   1      unsigned char w,b,j; 
 157   1      unsigned int ds[7]; 
 158   1       zangsuzi1[6]= zangsuzi1[5];zangsuzi1[5]= zangsuzi1[4];
 159   1        zangsuzi1[4]= zangsuzi1[3];zangsuzi1[3]= zangsuzi1[2];
 160   1        zangsuzi1[2]=zangsuzi1[1];zangsuzi1[1]= zangsuzi1[0];
 161   1        zangsuzi1[0]=zangsuzia;
 162   1        
 163   1        ds[0]= zangsuzi1[6];ds[1]= zangsuzi1[5];
 164   1        ds[2]= zangsuzi1[4];ds[3]= zangsuzi1[3];
 165   1        ds[4]=zangsuzi1[2];ds[5]=zangsuzi1[1];
 166   1        ds[6]=zangsuzi1[0];
 167   1        
 168   1         for(b=0;b<6;b++)
 169   1              {
 170   2              w=b;
 171   2              for(j=b+1;j<7;j++)
 172   2                      
 173   2              if(ds[j]<ds[w])w=j;
 174   2              k=ds[w];ds[w]=ds[b];ds[b]=k;
 175   2              }
 176   1        return ((ds[2]+ds[3]+ds[4])/3);
 177   1      }
 178          

C51 COMPILER V7.01  MAIN                                                                   01/02/2004 19:29:46 PAGE 4   


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    610    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     34      26
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      3    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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