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

📄 sms.lst

📁 GSM通讯的C语言源程序代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  SMS                                                                    04/12/2009 00:20:03 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE SMS
OBJECT MODULE PLACED IN .\sms.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\sms.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //-----------------------------------*/
   2          #define SMS_GLOBAL
   3          #include "includes.h"
*** ERROR 318 IN LINE 21 OF includes.h: can't open file 'c8051f020.h'
*** ERROR C202 IN LINE 11 OF MAIN.H: 'P1': undefined identifier
   4          //===================================
   5          uchar SmsInit(void)
   6          {
   7   1        static uchar InitFail = 10,index = 0,Res = 0,TimeOut = 0;
   8   1        static bit SendFlag = 1;
   9   1        if(SendFlag)
  10   1        {
  11   2        	mComLen = 0;
  12   2          while(ModemCommand[index][mComLen] != '\r') 
  13   2      	{
  14   3            SmsTxBuffer[mComLen++]  = ModemCommand[index][mComLen];
  15   3          }
  16   2      	SmsTxBuffer[mComLen++] = '\r';
  17   2          SBUF0 = SmsTxBuffer[0];
*** ERROR C202 IN LINE 17 OF .\SMS.C: 'SBUF0': undefined identifier
  18   2          mComSlot = 1;
  19   2          Tim100MS = 0;
  20   2      	SendFlag = 0;
  21   2        }
  22   1        else
  23   1        {
  24   2        	if(Tim100MS)
  25   2      	{
  26   3      		Tim100MS = 0;
  27   3      	    mComLen = 0;
  28   3       		Res = Waitfor(OK);
  29   3      		if( !Res)
  30   3      		{
  31   4      			if(TimeOut++ > 60)
  32   4      			{
  33   5      			 	if(InitFail-- ==0)
  34   5      			  	{
  35   6      				 	SmsInitState = 0x11;
  36   6      					InitFail = 10;
  37   6      			   		return(FALSE);
  38   6      			  	}
  39   5      				else
  40   5      				{
  41   6      					ModemInit();
  42   6      					index = 0; 
  43   6      					TimeOut = 0;
  44   6      		    		SendFlag = 1; 
  45   6      				}
  46   5      			}
  47   4      		}
  48   3      		else
  49   3      		{
  50   4      			if(index ++ >= MODEMCOMMANDCON - 1)
  51   4      			{
  52   5      				SmsInitState = 0xAA;
C51 COMPILER V6.12  SMS                                                                    04/12/2009 00:20:03 PAGE 2   

  53   5      				SmsPointerInit();
  54   5      			    SmsBindBuff(InputBuffer);
  55   5      			    Comm0EvtPointer = ProcSmsReceive; 
  56   5      			    SmsReceiveStatus = 0; 
  57   5      			    return(TRUE);
  58   5      			}
  59   4      			else
  60   4      			{
  61   5      			    SendFlag = 1; 
  62   5      			}
  63   4      		} 
  64   3      	}
  65   2        }
  66   1      }
  67          //-------------------------------------
  68          void ProcSmsReceive(void)
  69          {
  70   1        if(RxSmsSize == 0) {
  71   2          switch (cData) {
  72   3            case '>':
  73   3            	SmsReceiveStatus |= SendSmsBZ;
  74   3            	break;
  75   3            case '+':
  76   3              SmsBuffer[RxSmsSize++] = cData;
  77   3      	    RxDataTypeFlag = 1;
  78   3              break;
  79   3            case '0':
  80   3            	SmsReceiveStatus |= RxOkBZ;
  81   3            	break;
  82   3            case '2':
  83   3              SmsReceiveStatus |= RxRingBZ;
  84   3            	break;
  85   3            default :
  86   3              break;
  87   3          }
  88   2        }
  89   1        else { 
  90   2          switch (RxDataTypeFlag) {
  91   3            case 1 :
  92   3            	SmsBuffer[RxSmsSize++] = cData;
  93   3            if(cData == 0x0a) {     
  94   4                if(!memcmp(InputBuffer,CMT,4)) {
  95   5      	  	  	RxSmsSize2 = 0;
  96   5      	      	RxDataTypeFlag = 2;
  97   5      	      }
  98   4      	  else if(!memcmp(InputBuffer,CSCA,5)) {
  99   5      	    SmsReceiveStatus |= RxCscaOkBZ;
 100   5      	    RxSmsSize = 0;
 101   5      	    RxDataTypeFlag = 0 ;
 102   5      	  }
 103   4      	  else if(!memcmp(InputBuffer,CCLK,5)) {
 104   5      	    SmsReceiveStatus |= RxCclkOkBZ;
 105   5      	    memcpy(TimeBuff,&InputBuffer[8],17);
 106   5      	    RxSmsSize = 0;
 107   5      	    RxDataTypeFlag = 0 ;
 108   5      	  }
 109   4      	  else if(!memcmp(InputBuffer,CSQ,4)) {
 110   5      	    SmsReceiveStatus |= RxCsqOkBZ;
 111   5      	    memcpy(CsqBuff,&InputBuffer[6],4); 
 112   5      	    RxSmsSize = 0;
 113   5      	    RxDataTypeFlag = 0 ;
 114   5      	  }
C51 COMPILER V6.12  SMS                                                                    04/12/2009 00:20:03 PAGE 3   

 115   4      	  else if(!memcmp(InputBuffer,CNMA,5)) {
 116   5      	    SmsReceiveStatus |= RxCnmaOkBZ;
 117   5      	    RxSmsSize = 0;
 118   5      	    RxDataTypeFlag = 0 ;
 119   5      	  }
 120   4      	  else if(!memcmp(InputBuffer,CLIP,5)) {  
 121   5      	    memcpy(ClipTelNumber,&InputBuffer[8],11);
 122   5      	    SmsReceiveStatus |= RxRingBZ;
 123   5              RxClipBZ = 1; 
 124   5      	    RxSmsSize = 0;
 125   5      	    RxDataTypeFlag = 0 ;
 126   5      	  }
 127   4      	  else if(!memcmp(InputBuffer,CMGS,3)) {
 128   5              RxCmgsBZ = 1;
 129   5      	    RxSmsSize = 0;
 130   5      	    RxDataTypeFlag = 0 ;
 131   5      	  }
 132   4      	  else {
 133   5      	    RxSmsSize = 0;
 134   5      	    RxDataTypeFlag = 0;
 135   5      	  } 
 136   4      	}
 137   3      	break;
 138   3          case 2:
 139   3            SmsBuffer[RxSmsSize2++] = cData;
 140   3            if(cData == 0x0a) {  
 141   4              RxSmsSize = 0;
 142   4      	    RxCmtOkBZ = 1; 
 143   4      	    RxDataTypeFlag = 0;
 144   4      	  }
 145   3      	break;
 146   3          default :
 147   3            RxSmsSize = 0;
 148   3            RxDataTypeFlag = 0 ;
 149   3          break;
 150   3          }
 151   2        }
 152   1      }    
 153          //-------------------------------------*/
 154          void SmsBindBuff(uchar *lpInputBuffer)
 155          {
 156   1      	SmsBuffer = lpInputBuffer;
 157   1      }
 158          //-------------------------------------*/
 159          void SmsPointerInit(void)
 160          {
 161   1      	InputBuffNoEmptyBZ = FALSE;
 162   1      	InputBuff1NoEmptyBZ = FALSE;
 163   1      }
 164          //--------------------------------------------------
 165          uchar SmsChuLi(uchar xdata *SmsChuLBbuffer)
 166          {
 167   1        uchar tmp;
 168   1      
 169   1          String2Bytes(SmsChuLBbuffer,&tmp,2); 
 170   1          tmp = (tmp - 1) * 2; 
 171   1          SmsChuLBbuffer += 4;  
 172   1          SerializeNumbers(SmsChuLBbuffer, SmsCode.SCA, tmp); 
 173   1          SmsChuLBbuffer += tmp; 
 174   1          String2Bytes(SmsChuLBbuffer, &tmp, 2);
 175   1          SmsChuLBbuffer += 2;
 176   1          String2Bytes(SmsChuLBbuffer, &tmp, 2);
C51 COMPILER V6.12  SMS                                                                    04/12/2009 00:20:03 PAGE 4   

 177   1          if(tmp & 1) tmp += 1; 
 178   1          SmsChuLBbuffer += 4; 
 179   1          SerializeNumbers(SmsChuLBbuffer, SmsCode.TPA, tmp); 
 180   1          SmsChuLBbuffer += tmp;       
 181   1          String2Bytes(SmsChuLBbuffer, &SmsCode.TP_PID, 2);  
 182   1          SmsChuLBbuffer += 2;      
 183   1          String2Bytes(SmsChuLBbuffer, &SmsCode.TP_DCS, 2);    
 184   1          SmsChuLBbuffer += 2;      
 185   1          SerializeNumbers(SmsChuLBbuffer, SmsCode.TP_SCTS, 14);     
 186   1          SmsChuLBbuffer += 14;      
 187   1          String2Bytes(SmsChuLBbuffer, &tmp, 2); 
 188   1      	SmsCode.TP_UDLEN = tmp;
 189   1          SmsChuLBbuffer += 2;       
 190   1          if(SmsCode.TP_DCS == GSM_UCS2)
 191   1          {
 192   2              String2Bytes(SmsChuLBbuffer, SmsCode.TP_UD, tmp * 2); 
 193   2      		if(((SmsCode.TP_UD[1] == 0x2A) || (SmsCode.TP_UD[1] == 0x0A))&& ((SmsCode.TP_UD[19] == 0x23) || (SmsCode
             -.TP_UD[19] == 0x03)))
 194   2      		{
 195   3      			for(tmp=1;tmp<9;tmp++)
 196   3      			{
 197   4            			UnCode_Data[tmp-1] = SmsCode.TP_UD[tmp*2];
*** ERROR C213 IN LINE 197 OF .\SMS.C: left side of asn-op not an lvalue
 198   4       				UnCode_Data[tmp-1] = UnCode_Data[tmp-1] << 8 ;
*** ERROR C193 IN LINE 198 OF .\SMS.C: '<<': bad operand type
 199   4      				UnCode_Data[tmp-1] = UnCode_Data[tmp-1] + SmsCode.TP_UD[tmp*2 + 1];
*** ERROR C213 IN LINE 199 OF .\SMS.C: left side of asn-op not an lvalue
 200   4      				GB2312_Data[tmp-1] = UnicodetoGB2312(UnCode_Data[tmp-1]);
*** ERROR C213 IN LINE 200 OF .\SMS.C: left side of asn-op not an lvalue
 201   4      				return(TRUE);
 202   4      			}
 203   3      		} 
 204   2      		else{
 205   3      		  return(FALSE);
 206   3      		}
 207   2          }
 208   1      	else
 209   1      	{
 210   2      		return(FALSE);
 211   2      	}
 212   1      }
 213          //=====================================================================================
 214          void ProcSmsSend2(void)
 215          {            
 216   1          uchar nLength,i;
 217   1      	uchar code tmp[] = "6210529F63A56536FF1A";
 218   1          uchar nDstLength;   
 219   1          uchar buf[20];  
 220   1      //******************************************************************************************
 221   1            buf[0] = 0x00;
*** ERROR C213 IN LINE 221 OF .\SMS.C: left side of asn-op not an lvalue
 222   1            nDstLength = Bytes2String(buf, SmsTxBuffer2, 1); 
 223   1      //******* ***************************************************************************   
 224   1          nLength = strlen(SmsCode.TPA);
 225   1          buf[0] = 0x11;      
*** ERROR C213 IN LINE 225 OF .\SMS.C: left side of asn-op not an lvalue
 226   1          buf[1] = 0;      
*** ERROR C213 IN LINE 226 OF .\SMS.C: left side of asn-op not an lvalue
 227   1          buf[2] = (uchar)nLength;  
*** ERROR C213 IN LINE 227 OF .\SMS.C: left side of asn-op not an lvalue
 228   1          buf[3] = 0x91;         
*** ERROR C213 IN LINE 228 OF .\SMS.C: left side of asn-op not an lvalue
C51 COMPILER V6.12  SMS                                                                    04/12/2009 00:20:03 PAGE 5   

 229   1          nDstLength += Bytes2String(buf, &SmsTxBuffer2[nDstLength], 4);  
 230   1          nDstLength += InvertNumbers(SmsCode.TPA, &SmsTxBuffer2[nDstLength], nLength); 
 231   1          nLength = strlen(SmsCode.TP_UD);    
 232   1          buf[0] = SmsCode.TP_PID;     
*** ERROR C213 IN LINE 232 OF .\SMS.C: left side of asn-op not an lvalue
 233   1          buf[1] = 0x08;       
*** ERROR C213 IN LINE 233 OF .\SMS.C: left side of asn-op not an lvalue
 234   1          buf[2] = 0;      
*** ERROR C213 IN LINE 234 OF .\SMS.C: left side of asn-op not an lvalue
 235   1      	buf[3] = SmsCode.TP_UDLEN + 10; 
*** ERROR C213 IN LINE 235 OF .\SMS.C: left side of asn-op not an lvalue
 236   1          nDstLength += Bytes2String(buf, &SmsTxBuffer2[nDstLength], 4);       
 237   1      	for(i=0;i<20;i++)
 238   1      	{
 239   2      		SmsTxBuffer2[i+nDstLength] = tmp[i];
*** ERROR C213 IN LINE 239 OF .\SMS.C: left side of asn-op not an lvalue
 240   2      	}
 241   1      	nDstLength = nDstLength + 20;
 242   1          if(SmsCode.TP_DCS == GSM_UCS2) {
 243   2              nDstLength += Bytes2String(SmsCode.TP_UD, &SmsTxBuffer2[nDstLength], SmsCode.TP_UDLEN);  
 244   2          }
 245   1      SmsTxBuffer2[nDstLength++] = 0x1a;
*** ERROR C213 IN LINE 245 OF .\SMS.C: left side of asn-op not an lvalue
 246   1      }
 247          //------------------------------------
 248          void ProcSmsSend1(void)

⌨️ 快捷键说明

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