📄 m32.lst
字号:
C51 COMPILER V7.50 M32 04/04/2007 15:01:44 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE M32
OBJECT MODULE PLACED IN m32.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE m32.c BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 #include <w77e58.h>
2 #include "global.h"
3 #include "io.h"
4 #include "timer.h"
*** WARNING C258 IN LINE 4 OF TIMER.H: 'd': mspace on parameter ignored
*** WARNING C258 IN LINE 5 OF TIMER.H: 'd': mspace on parameter ignored
5 #include "serial.h"
6 #include "m32.h"
7
8
9
10 extern bit GPSReady;
11 bit AlarmFlag;
12
13 extern bit GPSav; //1 = A
14 bit GPSTimerReq;
15 extern UINT16 idata GPSTimer30;
16
17 #define _1_SEC 35
18 #define _2_SEC 70
19 #define _5_SEC 150
20 #define _10_SEC 300
21 #define _30_SEC 900
22
23
24
25 //用户信息编码方式
26 #define GSM_7BIT 0
27 #define GSM_8BIT 4
28 #define GSM_UCS2 8
29
30
31
32 char xdata SCA[16]; // 短消息服务中心号码(SMSC地址)
33 char xdata TPA[16]; // 目标号码或回复号码(TP-DA或TP-RA)
34 char xdata TP_PID; // 用户信息协议标识(TP-PID)
35 char xdata TP_DCS; // 用户信息编码方式(TP-DCS)
36 char xdata TP_SCTS[16]; // 服务时间戳字符串(TP_SCTS), 接收时用到
37 char xdata TP_UD[161]; // 原始用户信息(编码前或解码后的TP-UD)
38 int xdata index; // 短消息序号,在读取时用到
39 int xdata PhoneNumber; //存电话号码用
40
41
42
43 char xdata cmd[16]; // 命令串
44 char xdata pdu[256]; // PDU串
45 char xdata ans[256]; // 应答串
46
47 char idata gsm_task;
48 //int aLength;
49 extern uchar idata SysTimer;
50 extern uchar xdata JWDMode;
51 extern UINT32 xdata Speed;
52 extern UINT32 xdata LonDeg,LonMin1,LonMin2,LatDeg,LatMin1,LatMin2;
53 extern UINT32 xdata xYear,xMonth,xDay;
C51 COMPILER V7.50 M32 04/04/2007 15:01:44 PAGE 2
54 extern UINT32 xdata xHour,xMin,xSec;
55
56
57 int gsmSearchPhone(uchar* flag);
58
59 int gsmString2Bytes(uchar* pSrc, uchar* pDst, int nSrcLength);
60 int gsmEncodePdu(char xdata* pDst); //pDst=pdu;
61 //void gsmGreateSmsHD(void); //SMS header
62
63
64 void ClearBuf(uchar* Buff,int size)
65 {
66 1 int xdata i;
67 1 for(i=0;i<size;i++)
68 1 {
69 2
70 2 Buff[i]=0;
71 2 }
72 1
73 1 }
74
75
76
77 void ATSend(uchar* puts)
78 {
79 1
80 1 for (;*puts!=0;puts++) //遇到停止符0结束
81 1 {
82 2 putbyte(*puts);
83 2 getUartWait();
84 2 //getbyte();
85 2 //putbyte1(getbyte());
86 2
87 2 }
88 1 ClearBuf(ans,256);
89 1
90 1 }
91
92
93 void gsmInitPhoneBook(void)
94 {
95 1
96 1 ATSend("AT+CPBS=\"SM\"\r"); //SIM 卡作为电话簿存储体。
97 1 PhoneNumber = 1;
98 1
99 1
100 1 }
101
102
103
104 #if 1
105 BOOL gsmSavePhone(uchar* phone,uchar* flag)
106 {
107 1
108 1 int xdata n;
109 1 uchar xdata* ptr;
110 1 ClearBuf(ans,256);
111 1 sprintf(ans,"AT+CPBW=");
112 1
113 1 #if 1
114 1 sprintf(cmd,"%d",PhoneNumber);
115 1 strcat(ans,cmd);
C51 COMPILER V7.50 M32 04/04/2007 15:01:44 PAGE 3
116 1 #endif
117 1
118 1 strcat(ans,",\"");
119 1 strcat(ans,phone);
120 1 strcat(ans,"\",129,\"");
121 1 strcat(ans,flag);
122 1 strcat(ans,"\"\r");
123 1 putstring1(ans);
124 1 putstring1("\r\n");
125 1
126 1 ATSend(ans);
127 1
128 1 ReadSerail(ans, 128, &n,5);
*** WARNING C214 IN LINE 128 OF M32.C: 'Argument': conversion: pointer to non-pointer
129 1 if((ptr=strstr(ans,"+CME ERROR:"))== NULL)
130 1 {
131 2
132 2 return TRUE;
133 2 }
134 1 else
135 1 {
136 2 return FALSE;
137 2 }
138 1
139 1
140 1 }
141 #endif
142
143
144 #if 1
145 BOOL gsmDeletePhone(int index)
146 {
147 1 int xdata i,n;
148 1 sprintf(cmd,"AT+CPBW=");
149 1 sprintf(ans,"%d",index);
150 1 strcat(cmd,ans);
151 1 strcat(cmd,"\r\n");
152 1
153 1 ATSend(cmd);
154 1 ReadSerail(ans, 120, &n,5);
*** WARNING C214 IN LINE 154 OF M32.C: 'Argument': conversion: pointer to non-pointer
155 1 if((strstr(ans,"OK")) != NULL) return TRUE;
156 1 return FALSE;
157 1
158 1 }
*** WARNING C280 IN LINE 147 OF M32.C: 'i': unreferenced local variable
159 #endif
160
161 #if 1
162 int gsmSearchPhone(uchar* flag)
163 {
164 1
165 1 int xdata n;
166 1 uchar xdata* ptr;
167 1 ClearBuf(ans,256);
168 1 sprintf(ans,"AT+CPBF=\"");
169 1 strcat(ans, flag);
170 1 strcat(ans,"\"\r\n");
171 1 ATSend(ans);
172 1 ReadSerail(ans, 256, &n,5);
*** WARNING C214 IN LINE 172 OF M32.C: 'Argument': conversion: pointer to non-pointer
173 1 if((ptr=strstr(ans,"+CPBF: ")) != NULL)
C51 COMPILER V7.50 M32 04/04/2007 15:01:44 PAGE 4
174 1 {
175 2 //putstring1(ptr);
176 2 //putstring1("\r\n");
177 2 ptr +=6;
178 2 sscanf(ptr, "%d", &n);
179 2
180 2 return n;
181 2
182 2 }
183 1 else
184 1 {
185 2 return 0;
186 2 }
187 1 }
188 #endif
189
190
191 uchar* gsmCheckRightNumber(uchar* text,BOOL phone) //phone=1,get phone number to SCA;else cmp SCA an
-d TPA.
192 {
193 1 int xdata i,n;
194 1 uchar xdata Number[16];
195 1 uchar xdata * ptr;
196 1
197 1 sprintf(ans,"AT+CPBF=\"");
198 1 strcat(ans, text);
199 1 strcat(ans,"\"\r\n");
200 1 strcpy(cmd,ans);
201 1 putstring1("cmd:\r\n");
202 1 putstring1(cmd);
203 1 putstring1("\r\n");
204 1 i=5;
205 1 while(i--)
206 1 {
207 2
208 2 ATSend(cmd);
209 2 ReadSerail(ans, 256, &n,5);
*** WARNING C214 IN LINE 209 OF M32.C: 'Argument': conversion: pointer to non-pointer
210 2 if((ptr=strstr(ans,"+CPBF: ")) != NULL) break;
211 2 else
212 2 if(strstr(ans,"RING") != NULL) return 0;;
213 2
214 2 }
215 1
216 1 if(i==0)return 0;
217 1
218 1 while(1)
219 1 {
220 2 ATSend(cmd);
221 2 ReadSerail(ans, 256, &n,5);
*** WARNING C214 IN LINE 221 OF M32.C: 'Argument': conversion: pointer to non-pointer
222 2 putstring1("ans=:\r\n");
223 2 putstring1(ans);
224 2 putstring1("\r\n");
225 2 if((ptr=strstr(ans,"+CPBF: ")) != NULL)
226 2 {
227 3 ptr +=6; //skip [+CPBF ]
228 3 if((ptr=strstr(ptr,",\"")) != NULL)
229 3 {
230 4 if(strncpy(Number,ptr,16) != NULL)
231 4 {
232 5 for(i=0;i<16;i++)
C51 COMPILER V7.50 M32 04/04/2007 15:01:44 PAGE 5
233 5 {
234 6 if((Number[i]=='\"') && (Number[i+1]==','))
235 6 {
236 7 Number[i]=0; //第二个"后面清0;
237 7
238 7 Number[0]=TPA[0];
239 7 Number[1]=TPA[1];
240 7
241 7 putstring1("Number=:\r\n");
242 7 putstring1(Number);
243 7 putstring1("\r\n");
244 7
245 7 putstring1("TPA=:\r\n");
246 7 putstring1(TPA);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -