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

📄 zijian_task.lst

📁 c8051f020实现4个 产UART 口
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE ZIJIAN_TASK
OBJECT MODULE PLACED IN .\out\ZiJian_task.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ZiJian_task.c LARGE OPTIMIZE(SIZE) REGFILE(.\out\mbtest.ORC) BROWSE INCDIR(
                    -C:\Keil\C51\LIB\;D:\TEST_C020\MC_55_C\) DEBUG OBJECTEXTEND OBJECT(.\out\ZiJian_task.obj)

line level    source

   1          //  处理床体F76  和地震仪的任务==================================
   2          //  处理床体F76  和地震仪的任务==================================
   3          //  处理床体F76  和地震仪的任务==================================
   4          //  处理床体F76  和地震仪的任务==================================
   5          //  处理床体F76  和地震仪的任务==================================
   6          //  处理床体F76  和地震仪的任务==================================
   7          //  处理床体F76  和地震仪的任务==================================
   8          //  处理床体F76  和地震仪的任务==================================
   9          //  处理床体F76  和地震仪的任务==================================
  10          
  11          
  12          
  13          
  14          
  15          #include  "all.h"
  16          
  17           //对码命令
  18          code uchar DuiMa_Command[8]={0XEE,0XEE,2,0,2,0XAB};   //对码命令
  19          
  20          code uchar DuiMaBoard_ZiJian_Command[8]={0XEE,0XEE,99,0,99,0XAB};   //对码命令
  21          //返回 sum=99;
  22          //       ShangZhuang_message(99, &sum, 1);
  23          
  24          
  25          code uchar DuiMa_Clear_Command[8]={0XEE,0XEE,3,0,3,0XAB};   //清除对码命令
  26          
  27          bit Xin_Status_B;   //新自检 状态标志
  28          
  29                                                                           
  30          void  Ying_da_error(uchar);
  31          void  Ying_da_ok(uchar);
  32          //void   F76_Attand_485(void) ;   
  33          
  34          uchar    ZiJian_ChuangTi_Once() ;
  35          
  36          uchar   ZiJian_DiZhenYi_Once() ;
  37          
  38          /**********************************************************************
  39          **函数原型:   void Attand_485(void)
  40          **入口参数:     Xin_F76_RX_B=1
  41          **出口参数:   无
  42          **返 回 值:   无
  43          **说    明:  处理床体F76  和地震仪的任务
  44          ************************************************************************/
  45          
  46          
  47          uchar zi_s_cnt;
  48          uchar zi_M_cnt;   
  49          bit       En_zijian_B=0;   //强行自检位
  50          
  51          //自检任务
  52           void ZiJian_ATAND (void) _task_ ZIJIAN  {
  53   1              while(1) {
  54   2                              os_wait2(K_TMO,2);
C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 2   

  55   2      
  56   2                         
  57   2                               
  58   2                              Dog_ZIJIAN_cnt=0;   //看门狗计数器
  59   2      
  60   2                            if( En_zijian_B)   {    //强行自检位)
  61   3                                   
  62   3                                      goto Ziiiiiiii;
  63   3                              }
  64   2                              En_zijian_B=0;
  65   2                              
  66   2                            if(Second_ZiJian==0xff)    {   //自检计时
  67   3                                       Second_ZiJian=0;
  68   3                                        if(++zi_s_cnt>=60)   {   //分钟
  69   4                                                    zi_s_cnt=0;                                                                                         
  70   4                                                         if(Para_all_True.ZiJian_Time!=0)  {
  71   5                                                                if(++zi_M_cnt>=Para_all_True.ZiJian_Time)   {
  72   6                      Ziiiiiiii:                                                 
  73   6                                                                        zi_M_cnt=0;
  74   6                                                                                              if(ZiJian_ChuangTi_Once()==0) 
  75   6                                                                                                        ZiJian_ChuangTi_Once();
  76   6                                                                                                        
  77   6                                                                                              if(ZiJian_DiZhenYi_Once()==0)
  78   6                                                                                                        ZiJian_DiZhenYi_Once();               
  79   6                                                                                              if(En_zijian_B==0)
  80   6                                                                                                        Xin_Status_B=1;   //让KEY_232_ATTAND进行发送
  81   6                                                                                               En_zijian_B=0;   //强行自检位
  82   6                                                                                               Para_all_True.Change_Flag=1;
  83   6                                                                         }
  84   5                                                         }    
  85   4                                                         else ;  //等于0 则不自检
  86   4                                                                                                
  87   4                                        }                              
  88   3      
  89   3                              }
  90   2                            //  F76_Attand_485() ;   
  91   2       
  92   2              }
  93   1       }
  94          
  95          
  96          
  97          
  98          /**********************************************************************
  99          **函数原型:   void Attand_485(void)
 100          **入口参数:     Xin_F76_RX_B=1
 101          **出口参数:   无
 102          
 103          **返 回 值:    1:  成功进行了一次自检
 104          
 105          **说    明:  床体自检一次子程序。
 106          
 107          上位机指令格式
 108          '@'    '2'    '1'    '0'    0dH
 109          床体回复:
 110          1当床体正常工作,压力正常,正确接收到指令时候通讯格式:
 111          '@'    'O'     'K'     '.'     0dH
 112          OK. :即为工作正常
 113          
 114          2当床体正常工作,压力不正常,正确接收到指令时候通讯格式:
 115          '@'     'P'     'N'     'O'     0dH
 116          PNO:即为压力不正常。
C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 3   

 117          
 118          3当床体正常工作,压力正常,不能正确接收到指令时候通讯格式:
 119          如收到的指令是错误的,床体将不发送任何信息和动作。
 120          4当床体正常工作,压力不正常,不能正确接收到指令时候通讯格式:
 121          同第3条。
 122          5当床体不正常工作
 123          当床体在待机工作情况时,将不发送任何信息,如果床体在运行过程中,出现停止,而影响设备的运行,将发送信息,其
             -通讯格式为:
 124          '@'    'N'     'O'     '. '    0dH
 125          NO. :即为工作不正常。
 126          
 127          
 128          ************************************************************************/
 129          
 130          code  char ChuangTi_ZiJian_Command_1[8]="@210\r";   //床体自检自检命令
 131          
 132          
 133          uchar    ZiJian_ChuangTi_Once()  {   //f76
 134   1      
 135   1                    bit okbb=0;
 136   1      
 137   1                    MoveByte(F76_TX_Buff, (uchar *)ChuangTi_ZiJian_Command_1, 8);
 138   1                     Xin_DiZh_RX_B=0;
 139   1      
 140   1                      
 141   1                      // FA_f76_Buff();
 142   1                       F76_TX_Len=5;  // DiZh_Tx_Buff[3]+6;           
 143   1                       F76_TX_cnt=0;                 
 144   1                       if(bUartBusy==0){      //判断发送中断是否处于激活状态,若没有激活则:
 145   2                                      SCON1|=2;  //TI=1;                      //激活MCU的串口发送程序                 
 146   2                                      bUartBusy=1;    //置发送程序已经激活的标志
 147   2                       }
 148   1                       //FA_F76_Buff();
 149   1      
 150   1                       okbb=0;
 151   1                       os_wait2(K_TMO,60);    
 152   1                       if(Xin_F76_RX_B)  {
 153   2                                     Xin_F76_RX_B=0;
 154   2                                      if(strstr(DiZh_Rx_Buff,"@OK.\r")!=0) {                    //如果收到确ok        
 155   3                                                    okbb=1;
 156   3                                                   Para_all_True.ChuangTi_status[0]=1;           // 1:床体正常工作
 157   3                                                   Para_all_True.ChuangTi_status[1]=1;           // 压力正常
 158   3                                                   Para_all_True.ChuangTi_status[2]=1;
 159   3                                                   Para_all_True.Is_ChuangTi_Ok=1;                // 正常
 160   3                                              
 161   3                                       }
 162   2                                       else if(  strstr(DiZh_Rx_Buff,"@PNO\r")!=0 ) {
 163   3                                                     okbb=1;
 164   3                                                           Para_all_True.ChuangTi_status[0]=1;    //1:床体正常工作
 165   3                                                   Para_all_True.ChuangTi_status[1]=0;          // 压力不正常
 166   3                                                   Para_all_True.ChuangTi_status[2]=0;
 167   3                                                   Para_all_True.Is_ChuangTi_Ok=0;              //不正常
 168   3      
 169   3                                       }
 170   2                                       else if(  strstr(DiZh_Rx_Buff,"@NO.\r")!=0 )  {
 171   3                                                     okbb=1;
 172   3                                                    Para_all_True.ChuangTi_status[0]=0;    //1:床体不正常工作
 173   3                                                   Para_all_True.ChuangTi_status[1]=0;          // 压力不正常
 174   3                                                   Para_all_True.ChuangTi_status[2]=0;
 175   3                                                   Para_all_True.Is_ChuangTi_Ok=0;              //不正常
 176   3      
 177   3                                       }
C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 4   

 178   2                                       else  {
 179   3                                                  return(0);   //应答出错
 180   3                                       }
 181   2                      }       
 182   1                    else {
 183   2                                Para_all_True.ChuangTi_status[0]=0;    //1:床体不正常工作
 184   2                           Para_all_True.ChuangTi_status[1]=0;          // 压力不正常
 185   2                           Para_all_True.ChuangTi_status[2]=0;
 186   2                           Para_all_True.Is_ChuangTi_Ok=0;              //不正常
 187   2                           return(0);   //没有应答
 188   2                      } 
 189   1      
 190   1                       
 191   1                      if(okbb==1)  {
 192   2                                  Para_all_True.DiZhenYi_status[0]=1;  //正常
 193   2                                  Para_all_True.Is_DiZhenYi_Ok=1;   //正常
 194   2                      }
 195   1                      else  {
 196   2                               Para_all_True.DiZhenYi_status[0]=0;  //不正常
 197   2                               Para_all_True.Is_DiZhenYi_Ok=0;     //不正常
 198   2      
 199   2                      }
 200   1                       return(1);
 201   1      
 202   1      }
 203          
 204          
 205          /*
 206          
 207           3字节数据(Byte1Byte2Byte3)
 208            Byte1:  0:床体不正常工作,1:床体正常工作
 209          Byte2:  0:压力不正常      1:压力正常
 210          Byte3:  (备用)
 211          
 212          
 213          
 214          */
 215          
 216          
 217          
 218          
 219          
 220          
 221          
 222          
 223          
 224          /**********************************************************************
 225          **函数原型:   void Attand_485(void)
 226          **入口参数:     Xin_F76_RX_B=1
 227          **出口参数:   无
 228          **返 回 值:   1:成功进行了一次自检
 229          **说    明:  地震仪自检一次子程序。
 230          
 231          收到上位机命令(4字节):ZJ+空格+回车
 232          强震仪进行自检,如无故障向上位机发送(4字节):TU+空格+回车
 233                          如有故障向上位机发送(4字节):FS+空格+回车
 234          
 235                          
 236          
 237          ************************************************************************/
 238          
 239          code  char Dizh_ZiJian_Command[8]="ZJ \r";   //地震仪自检命令
C51 COMPILER V7.50   ZIJIAN_TASK                                                           06/10/2007 23:11:23 PAGE 5   

 240          code  char Dizh_ZiJian_OK[8]="TU \r";   //地震仪自检OK

⌨️ 快捷键说明

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