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

📄 gprs.lst

📁 51单片机控制wavecom24系列模块的GPRS传输的C源程序
💻 LST
字号:
C51 COMPILER V7.50   GPRS                                                                  10/01/2006 11:02:26 PAGE 1   


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

line level    source

   1          #include "gprs_funcdef.h"
   2          #include "gprs_vardef.h"
   3          #include "myfunclib.h"
   4          #include "string.h"
   5          
   6          bit Init_Flag=0; 
   7          //--------测试用ip地址和端口号-----------------------------
   8          extern BYTE xdata IP_ADDRESS1;  
   9          extern BYTE xdata IP_ADDRESS2;  
  10          extern BYTE xdata IP_ADDRESS3;  
  11          extern BYTE xdata IP_ADDRESS4;  
  12          
  13          extern BYTE xdata PORT1; 
  14          extern BYTE xdata PORT2;  
  15          extern WORD xdata Send_timer;
  16          //----------------------------------------------------------
  17          
  18          BYTE xdata WAVE_Receive_Num = 0;   //GPRS串口接收到的数据记数
  19          BYTE xdata RECEIVEBUFFER[100];
  20          
  21          void load_ip_port()
  22          {
  23   1              // 装入IP地址
  24   1          IP_Head[16]=IP_ADDRESS1;
  25   1          IP_Head[17]=IP_ADDRESS2;
  26   1              IP_Head[18]=IP_ADDRESS3;
  27   1              IP_Head[19]=IP_ADDRESS4;
  28   1                                      
  29   1              
  30   1              //装入端口号
  31   1           UDP_Head[2]=PORT1;
  32   1           UDP_Head[3]=PORT2;
  33   1      }
  34          
  35          
  36          //***************************************************
  37          //WAVECOM 数据接收子程序:串口0中断服务程序
  38          //**************************************************
  39          void  Serial0_WAVECOM(void) interrupt 4
  40          {   
  41   1              if(exitData || enterPhone)
  42   1              {
  43   2                      if (RI) 
  44   2                      {
  45   3                              RI = 0;
  46   3                              URAT0Revbuffer[URAT0writeBuffer++] = SBUF;
  47   3                      }
  48   2                      if(TI)
  49   2                      {
  50   3                              TI = 0;
  51   3                              if(URAT0SWriteBuffer != URAT0SWreadBuffer)
  52   3                              {
  53   4                                      SBUF = URAT0SendBuffer[URAT0SWreadBuffer++];
  54   4                              }
  55   3                              else
C51 COMPILER V7.50   GPRS                                                                  10/01/2006 11:02:26 PAGE 2   

  56   3                              {
  57   4                                      URAT0SWriteBuffer = URAT0SWreadBuffer = 0;
  58   4                                      sendOver = 1;
  59   4                              }
  60   3                      }
  61   2              }//GPRS mode.
  62   1              else
  63   1              {
  64   2                      if (RI) 
  65   2                      {        
  66   3                              RI=0;           
  67   3                              if(RECEIVE_FLAG==0)
  68   3                              {
  69   4                                      if(SBUF==0x7E)
  70   4                                      {
  71   5                                              RECEIVE_FLAG=1;
  72   5                                              RECEIVEBUFFERPOINT=RECEIVEBUFFER;
  73   5                                              WAVE_Receive_Num = 0;
  74   5                                      }
  75   4                      }
  76   3                              else
  77   3                              {
  78   4                                      if(SBUF==0x7E)
  79   4                                      { 
  80   5                                              RECEIVE_FLAG=0;                                                                                 
  81   5                                              if(RECEIVEBUFFERPOINT!=RECEIVEBUFFER)     //排除连续收到两个7E,数据长度为0的错误情况
  82   5                                              {       
  83   6                                                      PPP_Rec_Complete = 1;
  84   6                                          }
  85   5                                      }
  86   4                                      else 
  87   4                                      {
  88   5                                              if(PADDING_Flag==1)
  89   5                                              {
  90   6                                                      *RECEIVEBUFFERPOINT=SBUF;
  91   6                                                      if((*RECEIVEBUFFERPOINT) == 0x5E)
  92   6                                                      {
  93   7                                                              *RECEIVEBUFFERPOINT = 0x7E;
  94   7                                                      }
  95   6                                                      else if((*RECEIVEBUFFERPOINT) == 0x5D)
  96   6                                                      {
  97   7                                                              *RECEIVEBUFFERPOINT = 0x7D;
  98   7                                                      }
  99   6                                                      else
 100   6                                                      {
 101   7                                                              *RECEIVEBUFFERPOINT^=0x20;
 102   7                                                      }                               
 103   6                                              PADDING_Flag=0;
 104   6                                              RECEIVEBUFFERPOINT++;
 105   6                                                      WAVE_Receive_Num++;
 106   6                                      }
 107   5                                      else
 108   5                                      {
 109   6                                              if(SBUF==0x7D)
 110   6                                                      PADDING_Flag=1;
 111   6                                              else
 112   6                                              {
 113   7                                                      *RECEIVEBUFFERPOINT=SBUF;
 114   7                                                      RECEIVEBUFFERPOINT++;
 115   7                                                              WAVE_Receive_Num++;
 116   7                                              }
 117   6                                      }
C51 COMPILER V7.50   GPRS                                                                  10/01/2006 11:02:26 PAGE 3   

 118   5                                      }
 119   4                              }
 120   3                      }
 121   2              }        
 122   1      }
 123          
 124          /////////////////////////////////////////////////////////////
 125          //timer 0 interrupt
 126          ////////////////////////////////////////////////////////////
 127          void ISR_Timer0(void) interrupt 1  
 128          {       
 129   1          TH0=0;
 130   1              TL0=0;
 131   1              if(Timer0_Counter<10){          //256                   //Wait  1000us   20*50us
 132   2                      Timer0_Counter++;
 133   2              }
 134   1              else{  
 135   2                      Timer0_Counter = 0;
 136   2                      if(waitTimer)
 137   2                              waitTimer--;
 138   2      
 139   2              if(Link_Timer)                          //if Link_Timer==0 but net not ok,connect again         
 140   2                      {
 141   3                            Link_Timer--;             
 142   3              } 
 143   2              if(Send_timer)
 144   2              {
 145   3                    Send_timer--;
 146   3              }
 147   2          }
 148   1      }
 149          
 150          ////////////////////////////////////////////////////////////////////
 151          //联网从此函数开始
 152          //该函数执行的条件,是没有联网和联网超时
 153          ////////////////////////////////////////////////////////////////////
 154          void InitAndConnect(void)
 155          {
 156   1        unsigned char xdata csq;
 157   1      
 158   1              if(!GPRS_OK  && Link_Timer == 0)   //如果没有联网而且联网时间已超时,则开始重新联网
 159   1              {       
 160   2                      ES=1;
 161   2                      csq = 99;
 162   2                      while(csq > 31)                      //读取信号强度
 163   2                      {
 164   3                              csq = GetCSQ();                 
 165   3                      }
 166   2                      if(csq != 00)
 167   2                      {       
 168   3                              exitData = 0;
 169   3                              TestAndConnect();                //拨号去联网
 170   3                      }                       
 171   2              }
 172   1      }
 173          void TestAndConnect()
 174          {
 175   1              UINT i;
 176   1      
 177   1              ES=1;                           //允许串

⌨️ 快捷键说明

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