📄 gsmmodem.ls1
字号:
389 ; extern void _EXP_Buff_Clear(void);
390 ;
391 ; //sbit PD = P1_3; //switch mc35 off at least 3.5 s
392 ; sbit MRST = P1^4; //reset mc35 at least 100 ms. can't use P1_4.
393 ; sbit MESL = P1^6; //reset ichip return from seril net mode. at least 5 s.
394 ; sbit CRST = P1^7; //rest ichip. at least 10 ms.
395 ; sbit CPOW = P3^2; //rest ichip. at least 10 ms.
396 ;
397 ; /*******************************
398 ; ** output string through expcom
399 ; ********************************/
400 ; void ModemSend(uchar *String)
401
---- 402 RSEG ?PR?_ModemSend?GSMMODEM
0000 403 L?0087:
404 USING 0
0000 7BFF 405 MOV R3,#0FFH
0002 7A00 F 406 MOV R2,#HIGH (?SC_4)
0004 7900 F 407 MOV R1,#LOW (?SC_4)
0006 408 _ModemSend:
409 USING 0
410 ; SOURCE LINE # 61
411 ;---- Variable 'String?040' assigned to Register 'R1/R2/R3' ----
412 ; {
413 ; SOURCE LINE # 62
414 ; _EXP_Puts(String);
415 ; SOURCE LINE # 63
0006 020000 F 416 LJMP __EXP_Puts
417 ; END OF _ModemSend
A51 MACRO ASSEMBLER GSMMODEM 12/01/2004 14:12:52 PAGE 8
418
419 ; }
420 ;
421 ; /*******************************
422 ; ** return 1: match success.
423 ; ** return 0: match error.
424 ; *******************************/
425 ; unsigned char ModemExpect(uchar *ExpectString,uint timeout) /* timeout * 10 ms */
426
---- 427 RSEG ?PR?_ModemExpect?GSMMODEM
0000 428 L?0083:
429 USING 0
0000 430 L?0084:
0000 7A00 F 431 MOV R2,#HIGH (?SC_13)
0002 7900 F 432 MOV R1,#LOW (?SC_13)
0004 433 L?0085:
0004 7BFF 434 MOV R3,#0FFH
0006 435 L?0086:
0006 7D90 436 MOV R5,#090H
0008 7C01 437 MOV R4,#01H
000A 438 _ModemExpect:
439 USING 0
440 ; SOURCE LINE # 70
000A 8C00 F 441 MOV timeout?142,R4
000C 8D00 F 442 MOV timeout?142+01H,R5
000E 8B00 F 443 MOV ExpectString?141,R3
0010 8A00 F 444 MOV ExpectString?141+01H,R2
0012 8900 F 445 MOV ExpectString?141+02H,R1
446 ; {
447 ; SOURCE LINE # 71
448 ; uchar idata MatchPosition = 0;
449 ; SOURCE LINE # 72
0014 E4 450 CLR A
0015 7800 F 451 MOV R0,#LOW (MatchPosition?143)
0017 F6 452 MOV @R0,A
453 ; uchar idata StringLenth;
454 ; StringLenth = strlen(ExpectString);
455 ; SOURCE LINE # 74
0018 120000 F 456 LCALL _strlen
001B 7800 F 457 MOV R0,#LOW (StringLenth?144)
001D A607 458 MOV @R0,AR7
459 ; TempCount = GET_COUNT();
460 ; SOURCE LINE # 75
001F 120000 F 461 LCALL GET_COUNT
0022 7800 F 462 MOV R0,#LOW (TempCount)
0024 120000 F 463 LCALL ?C?LSTIDATA
0027 464 ?C0002:
465 ; while( MatchPosition < StringLenth)
466 ; SOURCE LINE # 76
0027 7900 F 467 MOV R1,#LOW (MatchPosition?143)
0029 E7 468 MOV A,@R1
002A C3 469 CLR C
002B 7800 F 470 MOV R0,#LOW (StringLenth?144)
002D 96 471 SUBB A,@R0
002E 504B 472 JNC ?C0003
473 ; {
474 ; SOURCE LINE # 77
475 ; if( GET_COUNT() - TempCount > timeout) return 0;
476 ; SOURCE LINE # 78
0030 120000 F 477 LCALL GET_COUNT
0033 7800 F 478 MOV R0,#LOW (TempCount)
0035 120000 F 479 LCALL ?C?LLDIDATA0
0038 120000 F 480 LCALL ?C?LSUB
003B A804 481 MOV R0,AR4
003D A905 482 MOV R1,AR5
003F AA06 483 MOV R2,AR6
A51 MACRO ASSEMBLER GSMMODEM 12/01/2004 14:12:52 PAGE 9
0041 AB07 484 MOV R3,AR7
0043 AE00 F 485 MOV R6,timeout?142
0045 AF00 F 486 MOV R7,timeout?142+01H
0047 E4 487 CLR A
0048 FC 488 MOV R4,A
0049 FD 489 MOV R5,A
004A D3 490 SETB C
004B 120000 F 491 LCALL ?C?ULCMP
004E 4003 492 JC ?C0004
0050 7F00 493 MOV R7,#00H
0052 22 494 RET
0053 495 ?C0004:
496 ; if(_EXP_GetTest())
497 ; SOURCE LINE # 79
0053 120000 F 498 LCALL _EXP_GetTest
0056 EF 499 MOV A,R7
0057 60CE 500 JZ ?C0002
501 ; {
502 ; SOURCE LINE # 80
503 ; if(_EXP_Get() == ExpectString[MatchPosition]) MatchPosition++;
504 ; SOURCE LINE # 81
0059 120000 F 505 LCALL _EXP_Get
005C AB00 F 506 MOV R3,ExpectString?141
005E AA00 F 507 MOV R2,ExpectString?141+01H
0060 A900 F 508 MOV R1,ExpectString?141+02H
0062 7800 F 509 MOV R0,#LOW (MatchPosition?143)
0064 E6 510 MOV A,@R0
0065 F582 511 MOV DPL,A
0067 758300 512 MOV DPH,#00H
006A 120000 F 513 LCALL ?C?CLDOPTR
006D B50705 514 CJNE A,AR7,?C0007
0070 7800 F 515 MOV R0,#LOW (MatchPosition?143)
0072 06 516 INC @R0
0073 80B2 517 SJMP ?C0002
0075 518 ?C0007:
519 ; else MatchPosition = 0; /* mat
ch error,start again */
520 ; SOURCE LINE # 82
0075 E4 521 CLR A
0076 7800 F 522 MOV R0,#LOW (MatchPosition?143)
0078 F6 523 MOV @R0,A
524 ; }
525 ; SOURCE LINE # 83
526 ; }
527 ; SOURCE LINE # 84
0079 80AC 528 SJMP ?C0002
007B 529 ?C0003:
530 ; return 1;
531 ; SOURCE LINE # 85
007B 7F01 532 MOV R7,#01H
533 ; }
534 ; SOURCE LINE # 86
007D 535 ?C0005:
007D 22 536 RET
537 ; END OF _ModemExpect
538
539 ;
540 ;
541 ; /*******************************
542 ; ** restet MC35 and CO110
543 ; ** return 1: rest success,support at command.
544 ; ** return 0: rest error,can't support at command.
545 ; ********************************/
546 ; unsigned char ModuleRst()
547
---- 548 RSEG ?PR?ModuleRst?GSMMODEM
A51 MACRO ASSEMBLER GSMMODEM 12/01/2004 14:12:52 PAGE 10
0000 549 ModuleRst:
550 USING 0
551 ; SOURCE LINE # 94
552 ; {
553 ; SOURCE LINE # 95
554 ; uchar i;
555 ;
556 ; MRST = 0;
557 ; SOURCE LINE # 98
0000 C294 558 CLR MRST
559 ; CRST = 0;
560 ; SOURCE LINE # 99
0002 C297 561 CLR CRST
562 ; Delay(15);
563 ; SOURCE LINE # 100
0004 7F0F 564 MOV R7,#0FH
0006 7E00 565 MOV R6,#00H
0008 120000 F 566 LCALL _Delay
567 ; MRST = 1;
568 ; SOURCE LINE # 101
000B D294 569 SETB MRST
570 ; CRST = 1;
571 ; SOURCE LINE # 102
000D D297 572 SETB CRST
573 ; for(i = 0;i<3;i++)
574 ; SOURCE LINE # 103
000F E4 575 CLR A
0010 F500 F 576 MOV i?245,A
0012 577 ?C0009:
578 ; {
579 ; SOURCE LINE # 104
580 ; Delay(150);
581 ; SOURCE LINE # 105
0012 7F96 582 MOV R7,#096H
0014 7E00 583 MOV R6,#00H
0016 120000 F 584 LCALL _Delay
585 ; ModemSend(ESC_SEQUENCE) ; //send "+++"
586 ; SOURCE LINE # 106
0019 7BFF 587 MOV R3,#0FFH
001B 7A00 F 588 MOV R2,#HIGH (?SC_0)
001D 7900 F 589 MOV R1,#LOW (?SC_0)
001F 120000 F 590 LCALL _ModemSend
591 ; Delay(150);
592 ; SOURCE LINE # 107
0022 7F96 593 MOV R7,#096H
0024 7E00 594 MOV R6,#00H
0026 120000 F 595 LCALL _Delay
596 ; _EXP_Buff_Clear(); //clear expcom receive buff
er.
597 ; SOURCE LINE # 108
0029 120000 F 598 LCALL _EXP_Buff_Clear
599 ; ModemSend(ATI_MCM);
600 ; SOURCE LINE # 109
002C 120000 F 601 LCALL L?0087
602 ; Delay(10);
603 ; SOURCE LINE # 110
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -