📄 410rt.lst
字号:
221 5 loca[10]='\0';
222 5 }
223 4 num++;
224 4 break;
225 4 case 9:
226 4 if(temp==0x0a)
227 4 SMS_EN=1; //标识有信息,通知接收
228 4 break;
229 4
230 4 } // the end of inner switch
231 3 break;
232 3 case 1: break;
233 3 case 2:
234 3 addbuffer();
235 3 if( (*(rec_buf+(put_pt - rec_buf + buf_len)%buf_len)=='\x0a')&&
236 3 (*(rec_buf+(put_pt - 1 - rec_buf + buf_len)%buf_len)=='\x0d')&&
237 3 (*(rec_buf+(put_pt - 2 - rec_buf + buf_len)%buf_len)=='K')&&
238 3 (*(rec_buf+(put_pt - 3 - rec_buf + buf_len)%buf_len)=='O'))
239 3 {
240 4 //SMS_EN=0; //不再调用 Read_sms();
241 4 SMS_OK=1;
C51 COMPILER V7.06 410RT 04/05/2008 12:08:22 PAGE 5
242 4 Recving_SMS=0;
243 4 Rec_status=0;
244 4 }
245 3 break;
246 3 case 3:
247 3 break;
248 3 case 4:
249 3 addbuffer();
250 3
251 3 if( (*(rec_buf+(put_pt - rec_buf + buf_len)%buf_len)=='\x0a')&&
252 3 (*(rec_buf+(put_pt - 1 - rec_buf + buf_len)%buf_len)=='\x0d')&&
253 3 (*(rec_buf+(put_pt - 2 - rec_buf + buf_len)%buf_len)=='K')&&
254 3 (*(rec_buf+(put_pt - 3 - rec_buf + buf_len)%buf_len)=='O'))
255 3 {
256 4 Rec_status=0;
257 4 }
258 3 break;
259 3 case 5:
260 3 addbuffer();
261 3 if((*(&rec_buf+(put_pt - &rec_buf + buf_len)%buf_len)=='\x20')&&(*(rec_buf+(put_pt - 1 - rec_buf + buf
-_len)%buf_len)=='>'))
262 3 {
263 4 ALARM=1;
264 4 CSD=1;
265 4 Rec_status=0;
266 4 }
267 3 break;
268 3 case 6:
269 3 addbuffer();
270 3 if( (*(rec_buf+(put_pt - rec_buf + buf_len)%buf_len)=='\x0a')&&
271 3 (*(rec_buf+(put_pt - 1 - rec_buf + buf_len)%buf_len)=='\x0d')&&
272 3 (*(rec_buf+(put_pt - 2 - rec_buf + buf_len)%buf_len)=='K')&&
273 3 (*(rec_buf+(put_pt - 3 - rec_buf + buf_len)%buf_len)=='O'))
274 3 {
275 4 Rec_status=0;
276 4 }
277 3 break;
278 3 } // the end of outer switch
279 2 }
280 1 if (TI0)
281 1 {
282 2 TI0 = 0;
283 2 TRANS_NEXT_BYTE_OK = 1;
284 2 }
285 1 }
286 //read a message to buffer;
287 void Read_sms()
288 {
289 1 if(!IS_sending)
290 1 {
291 2 SMS_EN=0;
292 2 ini_buf(); //初始化buffer
293 2 // SMS_EN=0; // 在读完数据再 清零
294 2 Rec_status=2;
295 2 //loca[6]='R';
296 2 tr_point=loca;
297 2 TRANS_NEXT_BYTE_OK = 1;
298 2 }
299 1 }
300
301 void Process_sms()
302 {
C51 COMPILER V7.06 410RT 04/05/2008 12:08:22 PAGE 6
303 1 unsigned char rr;
304 1 unsigned int i=0;
305 1 SMS_OK=0;
306 1 getbuffer();
307 1 getbuffer();
308 1 do
309 1 {
310 2 rr=getbuffer();
311 2 }while(getbuffer()!='\x0a' || rr!='\x0d');
312 1
313 1 for(i=0;i<6;i++)
314 1 {
315 2 if(getbuffer()!=privacy[i])
316 2 break;
317 2 }
318 1 if(i==6)
319 1 {
320 2 strcpy(content,""); //清空
321 2 i=0;
322 2 rr=getbuffer();
323 2 while(rr!=0x0d)
324 2 {
325 3 content[i++]=rr;
326 3 rr=getbuffer();
327 3 }
328 2 CM_CMD=1;
329 2 }
330 1 DEL_MS=1;
331 1 }
332 //delete a message
333
334 void Del_sms(void)
335 {
336 1
337 1 /*
338 1 loca[8]='2';
339 1 loca[9]='5';
340 1 loca[10]='\r';
341 1 loca[11]='\0';
342 1 */
343 1 if(!IS_sending)
344 1 {
345 2 DEL_MS=0;
346 2 ini_buf(); //clear buffer;
347 2 Rec_status=4;
348 2 loca[6]='D';
349 2 tr_point=loca;
350 2 TRANS_NEXT_BYTE_OK = 1;
351 2 }
352 1 }
353
354 void Send_sms()
355 {
356 1
357 1 if(!IS_sending)
358 1 {
359 2 ini_buf();
360 2 if(!CSD)
361 2 {
362 3 ALARM=0;
363 3 Rec_status=5;
364 3 // tr_point="AT+CMGS=\"13488716723\"\r";
C51 COMPILER V7.06 410RT 04/05/2008 12:08:22 PAGE 7
365 3 strcat(send_buff,pho);
366 3 strcat(send_buff,"\"\r");
367 3 tr_point=send_buff;
368 3 TRANS_NEXT_BYTE_OK = 1;
369 3 }else
370 2 {
371 3 CSD=0;
372 3 ALARM=0; //清零
373 3 Rec_status=6;
374 3 ini_buf();
375 3 //tr_point="abcdefg\x1a";
376 3 strcat(alarms,"\x1a");
377 3 tr_point=alarms;
378 3 TRANS_NEXT_BYTE_OK = 1;
379 3 }
380 2 }
381 1 /*
382 1 ALARM=0;
383 1 tr_point="AT+CMGS=\"13488716723\"\rabcdefghijk\x1a\0";
384 1 TRANS_NEXT_BYTE_OK = 1;
385 1 */
386 1 }
387 //发送信息
388 void transmitte (void)
389 {
390 1 IS_sending=1;
391 1 TRANS_NEXT_BYTE_OK = 0;
392 1 if (*tr_point != '\0')
393 1 {
394 2 SBUF0 = *tr_point;
395 2 tr_point++;
396 2 }
397 1 else
398 1 IS_sending=0;
399 1 }
400
401 void ini_buf()
402 {
403 1 get_pt=rec_buf;
404 1 put_pt=rec_buf;
405 1 }
406
407 void addbuffer()
408 {
409 1 put_pt++;
410 1 put_pt=rec_buf+(put_pt-rec_buf)%buf_len;
411 1 if(put_pt!=get_pt)
412 1 *put_pt=SBUF0;
413 1 else
414 1 {
415 2 put_pt--;
416 2 put_pt=rec_buf + (put_pt + buf_len - rec_buf) % buf_len;
417 2 }
418 1 }
419
420 uchar getbuffer()
421 {
422 1 if(get_pt!=put_pt)
423 1 {
424 2 get_pt++;
425 2 get_pt=rec_buf + (get_pt - rec_buf) % buf_len;
426 2 return *get_pt;
C51 COMPILER V7.06 410RT 04/05/2008 12:08:22 PAGE 8
427 2 }
428 1 else
429 1 return '@';
430 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1767 ----
CONSTANT SIZE = 46 ----
XDATA SIZE = 159 ----
PDATA SIZE = ---- ----
DATA SIZE = 81 4
IDATA SIZE = ---- ----
BIT SIZE = 9 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -