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

📄 key.c.lst

📁 温度与转速数据采集和控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.01  KEY_C                                                                  12/28/2003 01:48:00 PAGE 1   


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

stmt level    source

   1          
   2          #include <reg52.h>
   3          #include<intrins.h>
   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          sbit gn_key=P2^0;
  13          sbit sezi_key=P2^1;
  14          sbit sjj_key=P2^2;
  15          sbit sjan_key=P2^3;
  16          sbit jisi_key=P2^5;
  17          sbit zozi_key=P2^4;
  18          sbit xsn_key=P0^2;
  19          
  20          
  21          sbit s1=P2^6;
  22          
  23          extern void led1_str(unsigned char led_streat1);
  24          extern void led2_str(unsigned char led_streat2);
  25          void datey(unsigned int i);
  26          
  27          bit  gn();
  28          bit  sezi();
  29          bit  sjj(bit g);
  30          bit  sjan(bit g);
  31          bit  jisi();
  32          bit zozi();
  33          bit xiaosen();
  34          
  35          void  bojinsu_zj();
  36          
  37          unsigned char gnstr;//功能键状态
  38          ///0-正常测量显示 1-累计时显示 2-转速报警设置 3-温度报警设置
  39          bit jswdstr;//计时温度状态显示 0-温度 1-记时
  40          bit wesan;//位闪启动
  41          bit set;//设置标志
  42          extern unsigned char wsws;//位闪位数0-4
  43          unsigned char set_ws;//设置位
  44          
  45          
  46          extern unsigned char leiji_minf;//累计时间 -分
  47          extern unsigned int leiji_mins;//累计时间- 小时
  48          extern bit jisiqido1;//启动后计时
  49          extern unsigned int zs_bj;//转速报警值
  50          extern char wd_bj;//温度报警值
  51          extern unsigned char mine1;//启动计时后  定时20次数  *50m秒为1秒
  52          extern unsigned char minm1;//启动计时后-秒
  53          extern unsigned char minf1;//启动计时后-分
  54          extern unsigned char mins1;//启动计时后-时
  55          extern bit i2c_write(unsigned char address,unsigned int fb);
C51 COMPILER V7.01  KEY_C                                                                  12/28/2003 01:48:00 PAGE 2   

  56          
  57          void k_gnkey();//功能
  58          void k_sezi();//设置
  59          void k_jajn();//设置加减
  60          void jswd();//计时温度切换显示
  61          void stratcbf();//显示数据刷新
  62          void set_gnstr();//设置显示状态
  63          extern unsigned char strat_gn;//退出设置状态
  64          
  65          
  66          void k_gnkey()//功能
  67          {
  68   1        if(gn())
  69   1           {
  70   2              gnstr++;
  71   2               if(gnstr>3)
  72   2                      gnstr=0;
  73   2               set_gnstr();
  74   2               strat_gn=0;
  75   2             }
  76   1      }
  77          
  78          void  bojinsu_zj()
  79          {
  80   1      unsigned int i;
  81   1      led1_str(2); led2_str(1);
  82   1      i=0;
  83   1      while(!(gn()|sezi()|sjj(1)|sjan(1)|zozi()| jisi()))
  84   1                {
  85   2                 i++;
  86   2                         if(i>5000)
  87   2                              return;
  88   2                }
  89   1      }
  90          
  91          void set_gnstr()
  92          {
  93   1      switch(gnstr)
  94   1                       {
  95   2                         case 0: led1_str(0);wesan=0;set=0;break;
  96   2                         case 1: led1_str(1);wesan=0;set=0;break;
  97   2                         case 2: led1_str(2);wesan=1;wsws=3;//转速报警设置 位闪启动
  98   2                                    set=0; set_ws=3; break;
  99   2                         case 3: led1_str(0); led2_str(2);wesan=1;
 100   2                                     set=1; wsws=4;//温度报警设置 位闪启动
 101   2                                      break;
 102   2                         default: ;               
 103   2                       }
 104   1      }
 105          void k_sezi()
 106          {
 107   1      if((gnstr==2)&sezi())
 108   1        {
 109   2         set_ws--;//设置位移
 110   2             if(set_ws>3)
 111   2                      set_ws=3;
 112   2            wsws=set_ws;
 113   2          wesan=1;  
 114   2          strat_gn=0;
 115   2        }
 116   1      }
 117          
C51 COMPILER V7.01  KEY_C                                                                  12/28/2003 01:48:00 PAGE 3   

 118          void k_jajn()
 119          {
 120   1      unsigned char ya0;
 121   1      unsigned char ya1;
 122   1      unsigned char ya2;
 123   1      unsigned char ya3;
 124   1      
 125   1      if(sjj(1)&((gnstr==2)|(gnstr==3)))//+
 126   1      { strat_gn=0;
 127   2       switch(gnstr)
 128   2              {
 129   3              case 2: {  ya3=zs_bj/1000;
 130   4                              ya2=(zs_bj%1000)/100;
 131   4                              ya1=(zs_bj%100)/10;
 132   4                              ya0=zs_bj%10;
 133   4                              switch(set_ws)
 134   4                                      {
 135   5                                      case 0: ya3++;
 136   5                                                 if(ya3>9)
 137   5                                                      ya3=0; break;           
 138   5                                      case 1: ya2++;
 139   5                                                  if(ya2>9)
 140   5                                                      ya2=0;break;  
 141   5                                      case 2: ya1++;
 142   5                                                  if(ya1>9)
 143   5                                                      ya1=0;break;  
 144   5                                      case 3: ya0++;
 145   5                                                  if(ya0>9)
 146   5                                                      ya0=0;break;  
 147   5                                      default: ;          
 148   5                               }
 149   4                              zs_bj=ya0+ya1*10+ya2*100+ya3*1000;
 150   4                              i2c_write(zasu_bj, zs_bj);
 151   4                              led1_str(2);
 152   4                              wesan=0;
 153   4                               }      
 154   3                        break;
 155   3       case 3: 
 156   3                    {
 157   4                    wd_bj++;
 158   4                    if(wd_bj>150)
 159   4                          wd_bj=150;
 160   4                    led2_str(1);
 161   4                    i2c_write(wendu_bj, wd_bj);
 162   4                    wesan=0;
 163   4                   }
 164   3                       break;
 165   3       default: ;                 
 166   3        }
 167   2      }
 168   1      
 169   1      if(sjan(1)&((gnstr==2)|(gnstr==3)))//-
 170   1      { strat_gn=0;
 171   2       switch(gnstr)
 172   2              {
 173   3              case 2: {
 174   4                              ya3=zs_bj/1000;
 175   4                              ya2=(zs_bj%1000)/100;
 176   4                              ya1=(zs_bj%100)/10;
 177   4                              ya0=zs_bj%10;
 178   4                              switch(set_ws)
 179   4                                      {
C51 COMPILER V7.01  KEY_C                                                                  12/28/2003 01:48:00 PAGE 4   

 180   5                                      case 0: ya3--;
 181   5                                                 if(ya3>9)
 182   5                                                      ya3=9; break;           
 183   5                                      case 1: ya2--;
 184   5                                                  if(ya2>9)
 185   5                                                      ya2=9;break;  
 186   5                                      case 2: ya1--;
 187   5                                                  if(ya1>9)
 188   5                                                      ya1=9;break;  
 189   5                                      case 3: ya0--;
 190   5                                                  if(ya0>9)
 191   5                                                      ya0=9;break;  
 192   5                                      default: ;          
 193   5                               }
 194   4                              zs_bj=ya0+ya1*10+ya2*100+ya3*1000;
 195   4                               i2c_write(zasu_bj, zs_bj);
 196   4                              led1_str(2);
 197   4                              wesan=0;

⌨️ 快捷键说明

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