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

📄 functions.lst

📁 开发的一个温控仪完整代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE FUNCTIONS
OBJECT MODULE PLACED IN Functions.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE Functions.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "TempCtrl.h"
   2          
   3          void FunSwitch(void);
   4          
   5          /////////////////////////////////////////////////
   6          //按键监视及Led显示
   7          void Monitor()
   8          {
   9   1      
  10   1      //////////-------------------------------------------FUN键---------------------------------------------
  11   1              if((KeySta & 0x01) && (FunCnt>25))
  12   1              {
  13   2                      ///TODO:在此添加处理
  14   2                      if(MeterSta!=STA_MAN)
  15   2                              FunSwitch();//纯粹的方便看而做
  16   2                      ///END TODO
  17   2                      FunCnt=0;
  18   2                      FunFlag=0;//kf:905
  19   2              }
  20   1              else if((FunFlag && (!(KeySta & 0x01))))
  21   1              {
  22   2                      ///TODO:在此添加处理
  23   2                      if(MeterSta!=STA_MAN)
  24   2                              FunSwitch();//纯粹的方便看而做
  25   2                      ///END TODO
  26   2                      FunFlag=0;
  27   2              }
  28   1              //////-----------------------------------------------MAN键-------------------------------------
  29   1              if(ManFlag && (!(KeySta & 0x08)))//Man健处理
  30   1              {//单次触发
  31   2              ///TODO:在此添加处理
  32   2                      if(MeterSta!=STA_MAN)//
  33   2                      {//变为手动
  34   3                              MeterSta=STA_MAN;
  35   3                              LedBuf[0]=LedCode[C_Fuhao];
  36   3                              LedBuf[1]=LedCode[C_Fuhao];
  37   3                              LedBuf[2]=LedCode[C_Fuhao];
  38   3                              LedBuf[3]=LedCode[C_Fuhao];
  39   3                              MAN_ON();
  40   3                              AdmitFlag=1; //0
  41   3                              PassWordLock=1;
  42   3                              FFSta=0;
  43   3                      }
  44   2                      else
  45   2                      {//变为自动,并且锁定
  46   3                              MeterSta=STA_AUTO;
  47   3                              PassWordLock=1;
  48   3                              
  49   3                              //更新显示                              
  50   3                              LedH(Temperature);
  51   3                              DPA();
  52   3      
  53   3                              DataTemp=Read(EP_Sv);
  54   3                              InputTemp=DataTemp;
  55   3                              InputLimit=10000;
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 2   

  56   3                              LedL(DataTemp);//设定
  57   3                              DPB();
  58   3                              AdmitFlag=1;//允许上排数据更新
  59   3                              MAN_OFF();
  60   3                      }
  61   2      
  62   2              ///END TODO
  63   2                      ManFlag=0;
  64   2              }
  65   1      
  66   1      
  67   1      /////=============================================上下键控制=================================
  68   1              if((KeySta & 0x06)==0x06)
  69   1              {//依赖密码来决定那种校正
  70   2                      if(InputCnt<10)
  71   2                              InputCnt+=1;
  72   2                      else                                        
  73   2                      {//触发一次校准s
  74   3                              k1=Read(EP_Sr);
  75   3                              if(k1==3000)
  76   3                                      FFSta=3000;//借用FFSta
  77   3                              else if(k1==3001)
  78   3                                      FFSta=3001;
  79   3                      }
  80   2              }
  81   1              else if(KeySta & 0x02)//向上健优先
  82   1              {
  83   2                      if(MeterSta==STA_MAN)
  84   2                      {
  85   3                              Output=100;
  86   3                      }
  87   2                      else if(UpCnt>InputSpeed)//8
  88   2                      {
  89   3                              ///TODO:
  90   3                              if(InputCnt<5)
  91   3                              {
  92   4                                      InputCnt+=1;
  93   4                                      InputSpeed=10;
  94   4                                      InputTemp+=1;
  95   4                              }
  96   3                              else if(InputCnt<25)
  97   3                              {
  98   4                                      InputCnt+=1;
  99   4                                      InputSpeed=2;
 100   4                                      InputTemp+=1;
 101   4                              }
 102   3                              else if(InputCnt<80)
 103   3                              {
 104   4                                      InputCnt+=1;
 105   4                                      InputSpeed=1;
 106   4                                      InputTemp+=11;
 107   4                              }
 108   3                              else
 109   3                              {
 110   4                              //      InputCnt+=1;
 111   4                                      InputSpeed=1;
 112   4                                      InputTemp+=111;
 113   4                              }
 114   3      
 115   3                              while(InputTemp>=InputLimit)
 116   3                                      InputTemp-=InputLimit;
 117   3                              if(MeterSta!=STA_AUTO)
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 3   

 118   3                                      ShowInputTemp();
 119   3                              else if((MeterSta==STA_AUTO)&&(InputTemp!=DataTemp))
 120   3                              {////自动时可以调整设定值
 121   4                                      Setted_Temperature=InputTemp;
 122   4                                      PassWordLock=0;
 123   4                                      Write(EP_Sv,InputTemp);
 124   4                                      PassWordLock=1;
 125   4                                      LedL(Setted_Temperature);
 126   4                                      DPB();
 127   4                                      DataTemp=InputTemp;
 128   4                              }
 129   3      
 130   3                              ///END TODO
 131   3                              UpCnt=0;
 132   3                      }
 133   2              }
 134   1              else if(KeySta & 0x04)
 135   1              {
 136   2                      if(MeterSta==STA_MAN)
 137   2                      {
 138   3                              Output=-100;
 139   3                      }
 140   2                      else if(DownCnt>InputSpeed)
 141   2                      {
 142   3                              ///TODO
 143   3                              
 144   3                              if(InputCnt<5)
 145   3                              {
 146   4                                      InputCnt+=1;
 147   4                                      InputSpeed=10;
 148   4                                      InputTemp-=1;
 149   4                              }
 150   3                              else if(InputCnt<25)
 151   3                              {
 152   4                                      InputCnt+=1;
 153   4                                      InputSpeed=5;
 154   4                                      InputTemp-=1;
 155   4                              }
 156   3                              else if(InputCnt<80)
 157   3                              {
 158   4                                      InputCnt+=1;
 159   4                                      InputSpeed=1;
 160   4                                      InputTemp-=11;
 161   4                              }
 162   3                              else
 163   3                              {
 164   4                              //      InputCnt+=1;
 165   4                                      InputSpeed=1;
 166   4                                      InputTemp-=111;
 167   4                              }
 168   3      
 169   3                              while(InputTemp<0)
 170   3                                      InputTemp+=InputLimit;
 171   3                                      //InputTemp=0;
 172   3      
 173   3                              if(MeterSta!=STA_AUTO)
 174   3                                      ShowInputTemp();
 175   3                              else if((MeterSta==STA_AUTO)&&(InputTemp!=DataTemp))
 176   3                              {////自动时可以调整设定值
 177   4                                      Setted_Temperature=InputTemp;
 178   4                                      PassWordLock=0;
 179   4                                      Write(EP_Sv,InputTemp);
C51 COMPILER V7.50   FUNCTIONS                                                             03/06/2007 20:40:54 PAGE 4   

 180   4                                      PassWordLock=1;
 181   4                                      LedL(Setted_Temperature);
 182   4                                      DPB();
 183   4                                      DataTemp=InputTemp;
 184   4                              }
 185   3      
 186   3                              ///END TODO
 187   3                              DownCnt=0;
 188   3                      }
 189   2              }
 190   1              else
 191   1              {
 192   2                      if(MeterSta==STA_MAN)
 193   2                      {
 194   3                              Output=0;
 195   3                      }
 196   2                      InputCnt=0;
 197   2                      InputSpeed=10;
 198   2              }
 199   1      
 200   1      }
 201          
 202          ////////////////////////////////////////////////////////////
 203          //公用子函数
 204          void Wait(unsigned char x)
 205          {
 206   1              while(x>0)
 207   1              {
 208   2                      _nop_();
 209   2                      x-=1;
 210   2              }
 211   1      }
 212          
 213          //Led显示
 214          void LedH(unsigned int dat)
 215          {
 216   1              char i=0;
 217   1              
 218   1              while(dat>=10000)
 219   1                      dat-=10000;
 220   1              while(dat>=1000)
 221   1              {
 222   2                      dat-=1000;
 223   2                      i+=1;

⌨️ 快捷键说明

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