📄 gsmmodem.lst
字号:
139 **********************************/
140 void Mc35Rst()
141 {
142 1 MRST = 0;
143 1 Delay(15);
144 1 MRST = 1;
145 1 }
146
147 /*********************************
148 ** init the Modem
149 ** ATTENTION: must save some parameter except "hsrv" !
150 *********************************/
151 unsigned char InitModem()
152 {
153 1 uchar i;
154 1 // uchar j;
155 1 uchar status = 1;
156 1 for(i = 0;i<4;i++)
157 1 {//a
158 2 switch(status)
159 2 {//b
160 3
161 3 case 1: //at-----OK
162 3 ModemSend("AT\r");
163 3 Delay(10);
164 3 if( ModemExpect("OK",200))
165 3 {
166 4 i = 0;
167 4 status = 2;
168 4 }
169 3 break;
170 3
171 3 case 2: //atz---OK
172 3 ModemSend("AT&F\r");
173 3 Delay(100); // after send "atz",delay 300 ms at least
174 3 if( ModemExpect("OK",200))
175 3 {
176 4 i = 0;
177 4 status =3;
178 4 }
179 3 break;
C51 COMPILER V7.08 GSMMODEM 12/25/2004 18:50:53 PAGE 4
180 3
181 3 case 3: //atz---OK
182 3 ModemSend("ATE0\r");
183 3 Delay(300); // after send "atz",delay 300 ms at least
184 3 if( ModemExpect("OK",200))
185 3 {
186 4 i = 0;
187 4 status =4;
188 4 }
189 3 break;
190 3 case 4: //at+csq---+CSQ: xx,99
191 3 ModemSend("AT+CSQ\r");
192 3 Delay(100);
193 3 // if(ModemExpect("+CSQ: ",400))
194 3 // {
195 3 if(ModemExpect(",99",400))
196 3 {
197 4 status = 5;
198 4 i = 0;
199 4 }
200 3 // }
201 3 break;
202 3
203 3
204 3 case 5:
205 3 ModemSend("AT+CLIP=1\r"); //ati----I/OK
206 3 Delay(10);
207 3 if( ModemExpect("OK",200))
208 3 {
209 4 i = 0;
210 4 status = 6;
211 4 }
212 3 break;
213 3
214 3 case 6:
215 3 ModemSend("AT+IPR=9600\r");
216 3 Delay(10);
217 3 if( ModemExpect("OK",200))
218 3 {
219 4 i = 0;
220 4 status = 7;
221 4 }
222 3 break;
223 3 case 7:
224 3 ModemSend("AT^SBC=1\r");
225 3 Delay(10);
226 3 if( ModemExpect("OK",200))
227 3 {
228 4 i = 0;
229 4 status = 8;
230 4 }
231 3 break;
232 3 case 8:
233 3 ModemSend("AT^SNFS=4\r");
234 3 Delay(10);
235 3 if( ModemExpect("OK",200))
236 3 {
237 4 i = 0;
238 4 status = 9;
239 4 }
240 3 break;
241 3 case 9:
C51 COMPILER V7.08 GSMMODEM 12/25/2004 18:50:53 PAGE 5
242 3 ModemSend("AT+CFUN=0\r");
243 3 Delay(10);
244 3 if( ModemExpect("OK",200))
245 3 {
246 4 i = 0;
247 4 return 1;
248 4 }
249 3 break;
250 3 }//b
251 2 }//a
252 1 return 0;
253 1 }
254
255 //AT^SMSO OFF
256 //AT+CFUN=0 SLEEP
257
258 uchar login_ack()
259 {
260 1 uchar i;
261 1
262 1 for(i = 0;i<3;i++)
263 1 {
264 2 if(InitModem()) return 1;
265 2 }
266 1 return 0;
267 1 }
268
269
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 748 ----
CONSTANT SIZE = 87 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 16
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -