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

📄 recframe.lst

📁 用于GPRS远程电力抄表系统中采集器端的程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   RECFRAME                                                              07/19/2006 10:05:15 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE RECFRAME
OBJECT MODULE PLACED IN recframe.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE recframe.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "recframe.h"
   2          #include "recframeown.h"
   3          #include "time.h"
   4          
   5          
   6          /*********************************************************************
   7          * 函 数 名: StatSwitch
   8          * 功能描述: 判断每一个接收字节,进行状态转移,置标识位
   9          * 函数说明: 帧头68H,帧尾16H
  10          * 调用函数: 无
  11          * 全局变量:无
  12          * 输 入: 无
  13          * 返 回: 无
  14          * 设 计 者:zy
  15          ***********************************************************************/
  16          void StatSwitch()
  17          {
  18   1              register uchar i,ch;
  19   1              static uchar RecCount,RecState,dl,count, DataLen,cs;
  20   1      
  21   1              ch=SBUF;
  22   1          if(s_end==0) //数据没有发送完,返回
  23   1                      return;
  24   1              RecBuf[RecCount]=ch; //将接收到的字节存入缓冲区
  25   1          RecCount++;
  26   1      
  27   1              switch(RecState)
  28   1                      {
  29   2                              case RS_WAIT:
  30   2                                      if(ch==FRAME_START_CHAR) 
  31   2                                      {
  32   3                                          RecState++;
  33   3                                          count=1;
  34   3                                      }
  35   2                                      else
  36   2                                          RecCount=0; 
  37   2                                              
  38   2                                      break;
  39   2      
  40   2                              case RS_HEADER:
  41   2                                      count++;
  42   2                                  if(count==2)
  43   2                                  {
  44   3                                              if(RecBuf[1]==add[0])
  45   3                                                      hcode=1;
  46   3                                              else if(RecBuf[1]==0)
  47   3                                                      hcode=0;
  48   3                                              else 
  49   3                                              {
  50   4                                                      RecCount=0;
  51   4                              RecState=RS_WAIT;
  52   4                                                      break;
  53   4                                              }
  54   3                                      }
  55   2                                      if(count==3)
C51 COMPILER V7.50   RECFRAME                                                              07/19/2006 10:05:15 PAGE 2   

  56   2                                  {
  57   3                                              if(RecBuf[2]==add[1])
  58   3                                                      mcode=1;
  59   3                                              else if(RecBuf[2]==0)
  60   3                                                      mcode=0;
  61   3                                              else 
  62   3                                              {
  63   4                                                      RecCount=0;
  64   4                              RecState=RS_WAIT;
  65   4                                                      break;
  66   4                                              }
  67   3                                      }
  68   2      
  69   2                                      if(count==4)
  70   2                                       {
  71   3                                              if(RecBuf[3]==add[2])
  72   3                                                      lcode=1;
  73   3                                              else if(RecBuf[3]==0)
  74   3                                                      lcode=0;
  75   3                                              else 
  76   3                                              {
  77   4                                                      RecCount=0;
  78   4                              RecState=RS_WAIT;
  79   4                                                      break;
  80   4                                              }
  81   3                                              if((add_flag!=0)&&(add_flag!=4)&&(add_flag!=6)&&(add_flag!=7))
  82   3                                              {
  83   4                                                      RecCount=0;
  84   4                              RecState=RS_WAIT;
  85   4                                                      break;
  86   4                                              }
  87   3                                      }
  88   2      
  89   2      
  90   2                                      if(count==5)
  91   2                                  {
  92   3                                              if(RecBuf[4]!=FRAME_START_CHAR)     //若不是帧起始字符,返回到等待状态
  93   3                                              {
  94   4                                                      RecCount=0;
  95   4                              RecState=RS_WAIT;
  96   4                                                      break;
  97   4                                              }
  98   3                                      }  
  99   2      
 100   2                      if(count==6)
 101   2                                  {
 102   3                                              fc_flag=0;
 103   3                                              switch(RecBuf[5])
 104   3                                              {
 105   4                                                  case 0:
 106   4                                                              sinit=1;
 107   4                                                              break;
 108   4                                                      case 1:                                        
 109   4                                                              ctime=1;
 110   4                                                              dl=6;                                                   
 111   4                                                              break;
 112   4                                                      case 2:
 113   4                                                              wport=1;
 114   4                                                          dl=4;
 115   4                                                              break;
 116   4                                                      case 3:
 117   4                                                              rport=1;
C51 COMPILER V7.50   RECFRAME                                                              07/19/2006 10:05:15 PAGE 3   

 118   4                                                          dl=0;
 119   4                                                              break;
 120   4                                                      case 4:

⌨️ 快捷键说明

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