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

📄 main.lst

📁 监控仪 监控仪 监控仪
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   MAIN                                                                  07/28/2008 18:17:59 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c OPTIMIZE(4,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //#include <reg51.h>
   2          
   3          #include<ABSACC.H>
   4          #include<intrins.h>
   5          #include<math.h>
   6          #include <ATmel89X55.H>
   7          
   8          #define QIDONG  0xEF
   9          #define TINGJI  0xF7
  10          #define ZIJIAN  0xFD
  11          #define XIAOYIN  0xFB
  12          #define SHIJIAN  0xFE
  13          ///////////////////0603
  14          #define QIDONG1  0xCF
  15          #define TINGJI1  0xD7
  16          #define ZIJIAN1 0xDD
  17          #define XIAOYIN1  0xDB
  18          #define SHIJIAN1  0xDE
  19          
  20          
  21          Display_Acord_Value(unsigned int address,int value,bit Test_bit );
  22          
  23          unsigned char read(unsigned int address);//read E2prom
  24          void write(unsigned int address,unsigned char dd);
  25          
  26          #define M  18//speed test ,one cycle contain M pulses
  27          
  28          /////////////////////////
  29          /////////////////////////////以下为2008.05.30在潍坊监控仪基础上为柳州监控仪编写软件
  30          ////////////////////////////添加变量,并实现功能(特点为530开头)
  31          int  Tem_Kongyaji_530;
  32          int  Pre_Kongyaji_530;
  33          int  Pre_Jinqiguan_530;
  34          int  Pre_Chuqiguan_530;
  35          bit  Bit_Motor_TemPre;//显示发动机油温或者显示空压机油温、油压;TONGGUO采集键盘状态确定
  36          unsigned char idata Para_Setting_TemOil_Kongyaji530=105;//空压机油温报警值
  37          unsigned int idata Para_Setting_PreOil_Kongyaji530=400;//空压机油压报警值
  38          bit   Bit_Alarm_TemOil_Kongyaji530;//////空压机报警标志
  39          bit   Bit_Alarm_PreOil_Kongyaji530;
  40          
  41          bit Bit_Sign_Display_ChuguanJinqiguan;////根据启动按钮按下与否,在0x8004显示进气管或储气罐大气压力
  42          
  43          
  44          
  45          
  46          
  47          
  48          
  49          
  50          ////////////////////////////////////////////////para setting参数设定,具体值
  51          unsigned char idata Para_Setting_Gear;//飞轮齿数
  52          unsigned char idata Para_Setting_StartTime;//启动按钮启动确认时间
  53          unsigned char idata Para_Setting_StopTime;//停机按钮停机时按键有效时间
  54          unsigned char idata Para_Setting_KeepTime;//时间显示保持时间
  55          unsigned int idata Para_Setting_AddTimeZero;//总累计时间清零阈值
C51 COMPILER V7.50   MAIN                                                                  07/28/2008 18:17:59 PAGE 2   

  56          unsigned char idata Para_Setting_TemWater;//水温报警值
  57          unsigned char idata Para_Setting_TemOil;//油温报警值
  58          unsigned int idata Para_Setting_PreOil;//油压报警值
  59          unsigned int idata Para_Setting_Speed;//转速报警值
  60          unsigned int  idata Para_Setting_ReferenceSpeed_StopStart;//启动或停机转速阈值设定
  61          unsigned char idata Para_Setting_Stop_SureTime;//停机按下后继续送继电器确认停机时间
  62          
  63          
  64          unsigned char idata Para_Setting_WaterTem_K;//水温k
  65          unsigned char idata Para_Setting_WaterTem_b;//水温b
  66          
  67          //unsigned char idata Para_Setting_WaterTem_b;//水温b
  68          unsigned char idata Para_Setting_OilTem_K;//水温k
  69          unsigned char idata Para_Setting_OilTem_b;//水温b
  70          
  71          
  72          
  73          
  74          
  75          
  76          ///////////////////some fixed paremeters
  77          unsigned char idata CPU_NO;
  78          ////unsigned char idata Para_Tem_Oil;
  79          //unsigned char idata Para_Tem_water;
  80          //unsigned char idata Para_Speed_Divide;
  81          //unsigned char idata Para_Speed_Alarm_Percent;
  82          //unsigned int idata Para_Speed_Standard;
  83          //unsigned char idata Para_Speed_Percent; 
  84          //unsigned int idata Para_Pre_Oil;
  85          //unsigned char idata Para_Pre_Oil_Zoom_k;
  86          //char idata Para_Pre_Oil_Shift_b;
  87          /////////////////////////for set from up device
  88          /*
  89          unsigned char idata CPU_NO1;
  90          unsigned char idata Para_Tem_Oil1;
  91          unsigned char idata Para_Tem_water1;
  92          unsigned char idata Para_Speed_Divide1;
  93          unsigned char idata Para_Speed_Alarm_Percent1;
  94          unsigned int idata Para_Speed_Standard1;
  95          unsigned char idata Para_Speed_Percent1; 
  96          unsigned int idata Para_Pre_Oil1;
  97          unsigned char Para_Pre_Oil_Zoom_k1;
  98          char Para_Pre_Oil_Shift_b1;
  99          */
 100          
 101          bit Recieve_Para_Start=0;//for serious 
 102          bit Recieve_Para_Stop=0;
 103          
 104          
 105          
 106          ////////////for stop motor(beyond speed)
 107          bit Bit_Start_Stop=0;
 108          unsigned int  Count_Start_Stop=0;
 109          
 110          /////////////////////////////
 111          unsigned int idata Code_Input;//密码输入
 112          unsigned char idata  key_out;////////读键盘临时用
 113          unsigned char idata Times_TimeButton=0;//在正式设置参数时,  记录读取键盘的次数
 114          unsigned char idata Mode_Code_SettingPara=0;//设定参数时,模式选择码
 115          unsigned char idata Temp_Output;//输出用
 116          
 117           int idata Temp_Adjust;//设定参数时,临时变量  用来增减
C51 COMPILER V7.50   MAIN                                                                  07/28/2008 18:17:59 PAGE 3   

 118          
 119          int idata  Tem_Oil[5];//-20--150;the last byte is average value
 120          int idata Tem_Water[5];///-20--150
 121          int idata Pre_Oil[5];//0-1200kpa
 122          int idata Voltage_28v[5];
 123          unsigned int   Speed;//300--9999
 124          
 125          unsigned int idata Speed_Count=0;//for test speed
 126          unsigned int idata Capture_Count=0;
 127          unsigned int idata Display_Count=0;
 128          unsigned int idata Alarm_Count=0;
 129          
 130          unsigned int idata GetKey_Count=0;
 131          
 132          unsigned int Test_Count=0;
 133          
 134          
 135          //////////////////////////////////
 136          unsigned int  idata  GetKey_Count_ForUse=0;//for get key timer启动、
 137          unsigned int idata GetKey_Count_ForUse_Stop=0;//停机等按钮的定时器
 138          unsigned int   Count_DisplayTime_5s=0;/////时间显示定时器5s
 139          unsigned int Count_RunningTime=0;//油机运行时间累加
 140          unsigned int idata Count__Stop_Sure=0;//停机确认后送继电器的时间
 141          unsigned int Count_SettingPara=0;//停机设置参数时,软件定时器   是否按住消声按键10秒
 142          unsigned int Count_NoOperation_Exit=0;   //在设定参数时,10秒无操作离开设定模式    计时器
 143          
 144          //bit Bit_Sign_Alarm_Stop=0;//一报警就停机标志
 145          
 146          unsigned char Byte_Sign_First_Alarm_StartStop=0;
 147          unsigned int idata      Count_Alarm_Stop_Send=0;//报警就停机定时器
 148          
 149          unsigned int idata Count_NoKey=0;//没有键盘操作的定时器
 150          
 151          
 152          unsigned int idata Count_Start_Machine_15s=0;//刚刚启动时,15秒内不做保护   只进行停机和检测 ,没有报警
 153          
 154          unsigned char idata  E2prom=0;//for E2prom write; if time over ,has problem in E2prom 
 155                    ////////////////////////////////////////////*********************
 156            unsigned int idata Time_Minutes_Running=0;//now running time--minutes当前油机的运行分钟数   
 157            unsigned int idata Time_Hours_Running=0;  //now running time--hours  当前油机的运行小时数
 158          
 159            unsigned int idata Time_Minutes_Add;  /////add time minute油机运行累计分钟数
 160            unsigned int idata Time_Hours_Add;    /////add time Hour油机运行累计小时数
 161          
 162            bit Sign_Alarm_Speed=0;   //stand for if alarm dispaly
 163            bit Sign_Alarm_Water=0;
 164            bit Sign_Alarm_OilPre=0;
 165            bit Sign_Alarm_OilTem=0;
 166            bit Sign_Tem_Oil=0;  // stand for if beyond thold
 167            bit Sign_Tem_Water=0;
 168            bit Sign_Pre_Oil=0;
 169            bit Sign_Speed=0;
 170            //////////////////////////////////////
 171            bit Bit_Stop_Sure=0;//停机确认位(按下1s)
 172            bit Bit_Sign_DisplayTime=0;//时间按钮按下标志
 173            bit Bit_Sign_DisplayTime_OilPre=0;///时间显示时,标志位(不显示油压)
 174            bit Bit_Sign_SettingPara=0;//在停机设置参数时,是否按住消声按钮的标志
 175            bit Bit_Sign_Running=0;//检测是否运行的标志(根据转速500)
 176            bit Bit_Sign_SettingParaDisplay=0;//在停机的状态下按住停机键,就进行设定显示  标志
 177            bit Bit_Sign_InputCode=0;//在设置参数时,能否进行密码输入的标志
 178            bit Bit_Sign_SettingPara_Sure=0;//在设置参数时,确认能否进入密码输入的标志
 179          
C51 COMPILER V7.50   MAIN                                                                  07/28/2008 18:17:59 PAGE 4   

 180            bit Bit_Sign_Modify=0;//进入正式修改参数时,是否修改的标志
 181            bit Bit_Sign_First_ReadPara=1;//第一次取出要修改的参数
 182          
 183          
 184            bit Bit_Exit_SettingPara_Normal=0;//在正式设定参数时,是否离开的标志
 185              bit Bit_Sign_DisplaySetting_Sure=0;//确定显示参数设定和只能设定参数的标志
 186          
 187          bit Bit_Sign_Alarm_NoKeyBoard=0;//有警报时,不能进行停机、启动操作
 188          
 189            bit Bit_Sign_SettingPara_Normal=0;////在设置参数时,确认能否进入最终正式设定状态的标志
 190          
 191            bit Bit_Can_TimeStart=0;//设置参数时  是否按住消声
 192                           
 193          
 194            bit Get_Key_bit=0;//fot get key 
 195          
 196            bit idata Signed_Test=0;//for stand for if test system
 197            bit Signed_Test_CPU=1;
 198            bit Signed_Test_24v=1;
 199            bit Signed_Test_5v=1;
 200            float idata Value_Test_24v;
 201            //float idata Value_Test_5v;
 202          
 203          
 204           // unsigned char Temp_Pre_Oil;
 205           // unsigned char Temp_Tem_Oil;
 206           // unsigned char Temp_Tem_Water;
 207          
 208            unsigned char Key;//for get key 
 209          
 210          
 211            bit data Signed_Sound_Off=0;//for sound
 212           // bit Signed_Sound_Off_Back=0;
 213          ////////////////////////////////
 214          
 215          unsigned char  Byte_Sign_DisplayTime=1;////时间显示标志按钮按下次数
 216                          
 217          
 218          
 219          
 220           //////////////////////////以下为AD转换所用
 221          sbit CLOCK= P1^1;
 222          sbit D_IN =P1^3;
 223          sbit D_OUT= P1^0;
 224          sbit _CS= P1^2;
 225          
 226          //==========AD采样模块============//
 227          
 228          //TLC1543 A/D用转换用
 229          #define uint unsigned int
 230          #define uchar  unsigned char
 231          
 232          
 233          //========================新版本=======================
 234          uint read1543(uchar port)       //从TLC1543读取采样值,形参port是采样的通道号
 235          {
 236   1      uint data ad;uint data i;
 237   1      uchar data al=0,ah=0;
 238   1      
 239   1      CLOCK=0;
 240   1      _CS=0;
 241   1      port<<=4;
C51 COMPILER V7.50   MAIN                                                                  07/28/2008 18:17:59 PAGE 5   

 242   1      for (i=0;i<4;i++) //把通道号打入1543
 243   1      {
 244   2              D_IN=(bit)(port&0x80);CLOCK=1;CLOCK=0;
 245   2              port<<=1;
 246   2      }
 247   1              
 248   1      for (i=0;i<6;i++) //填充6个CLOCK
 249   1      {
 250   2      CLOCK=1;CLOCK=0;
 251   2      }
 252   1      
 253   1      _CS=1;_nop_();_nop_();_CS=0; //等待AD转换
 254   1      
 255   1      for (i=0;i<2;i++) //取D9,D8
 256   1      {
 257   2              D_OUT=1;
 258   2              CLOCK=1;
 259   2              ah<<=1;
 260   2              if (D_OUT) ah|=0x01;
 261   2              CLOCK=0;
 262   2      }       
 263   1      
 264   1      for (i=0;i<8;i++) //取D7--D0
 265   1      {
 266   2              D_OUT=1;
 267   2              CLOCK=1;
 268   2              al<<=1;
 269   2              if (D_OUT) al|=0x01;
 270   2              CLOCK=0;
 271   2      }       
 272   1      
 273   1      _CS=1;
 274   1      
 275   1      ad=(uint)ah;ad<<=8;ad|=al; //得到AD值
 276   1      return (ad);
 277   1      }
 278          
 279          void init()
 280          {
 281   1      /*
 282   1        TMOD= 0;//initial timer
 283   1        TCON= 0;
 284   1        TH0=0xF0;
 285   1        TL0=0x0C;
 286   1      */
 287   1      
 288   1        Speed_Count=0;//for test speed
 289   1        Capture_Count=0;

⌨️ 快捷键说明

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