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

📄 5112udp.lst

📁 一个嵌入式系统通过GPRS进行数据传输的程序,协议芯片为5112,程序中描述了通过单片机上网及通过UDP数据传输的过程
💻 LST
📖 第 1 页 / 共 5 页
字号:
 800          //
 801          ///////////////////////////////
 802          void resetconnect(void)
 803          {
 804   1      //      unsigned char  temp;
 805   1      //      unsigned char *p;
 806   1              send_ctr_com0_buf[0]=0x7e;
 807   1              send_ctr_com0_buf[1]=0x31;
 808   1              send_ctr_com0_buf[2]=0x00;
 809   1              send_ctr_com0_buf[3]=0x04;
 810   1              send_ctr_com0_buf[4]=0x0c;
 811   1              send_ctr_com0_buf[5]=0x7e;
 812   1              send_data0=0;
 813   1              send_ctr_com0_len=6;
 814   1              send_com0_cnt=0;
 815   1              send_com0_finish=0;
 816   1              TI=1;
 817   1              ack=0;
 818   1              settimer(9);
 819   1              while ( !ack )
 820   1              {
 821   2              ;
 822   2              }
 823   1              killtimer(9);
 824   1              send_ctr_com0_buf[0]=0x7e;
 825   1              send_ctr_com0_buf[1]=0x33;
 826   1              send_ctr_com0_buf[2]=0x00;
 827   1              send_ctr_com0_buf[3]=0x0b;
 828   1              send_ctr_com0_buf[4]=0x1f;//my port = 8000
 829   1              send_ctr_com0_buf[5]=0x40;
 830   1              send_ctr_com0_buf[6]=sockset[0];
 831   1              send_ctr_com0_buf[7]=sockset[1];
 832   1              send_ctr_com0_buf[8]=sockset[2];
 833   1              send_ctr_com0_buf[9]=sockset[3];
 834   1              send_ctr_com0_buf[10]=sockset[4];
 835   1              send_ctr_com0_buf[11]=sockset[5];
 836   1              send_ctr_com0_buf[12]=0x7e;
 837   1              ack=0;
 838   1              send_data0=0;
 839   1              send_ctr_com0_len=13;
 840   1              send_com0_cnt=0;
 841   1              send_com0_finish=0;
 842   1              TI=1;                                           //set socket
 843   1              settimer(9);
 844   1              while ( !ack )
 845   1              {
 846   2              ;
 847   2              }
 848   1              killtimer(9);
 849   1              ack=0;
 850   1      }
 851          ///////////////////////////////
 852          //
 853          //NAME: conver
 854          //DESCRIPTION: conver chk or send id or eid from unsigned int to send format
 855          //CALL:
 856          //INPUT:
 857          //OUTPUT:*p[0]=data len,p[1~len]=data,p[len+1,+2]=add
 858          //
C51 COMPILER V7.20   5112UDP                                                               08/18/2004 10:31:57 PAGE 15  

 859          ///////////////////////////////
 860          unsigned char * conver(unsigned int dt)
 861          {
 862   1              unsigned char *p;
 863   1              unsigned char data convbuf[9];
 864   1              unsigned char data ch,addr,s55;
 865   1              unsigned int chk;
 866   1              ch=(unsigned char )(dt & 0xff);
 867   1              s55=0;
 868   1              chk=0;
 869   1              if (( ch == 0x55 )|( ch == 0x56 ))
 870   1              {
 871   2                      convbuf[5]=0x56;
 872   2                      chk=0x56;
 873   2                      convbuf[6]=ch ^ 0x20;
 874   2                      chk=chk+convbuf[6];
 875   2                      addr=4;
 876   2                      s55++;
 877   2              }
 878   1              else
 879   1              {       chk=ch;
 880   2                      if (( ch == 0x7d )|( ch == 0x7e ))
 881   2                      {
 882   3                              convbuf[5]=0x7d;
 883   3                              convbuf[6]=ch ^ 0x20;
 884   3                              addr=4;
 885   3                      }
 886   2                      else
 887   2                      {
 888   3                              convbuf[6]=ch;
 889   3                              addr=5;
 890   3                      }
 891   2              }
 892   1              ch=(unsigned char )(dt>>8);
 893   1      
 894   1              addr--;
 895   1              if (( ch == 0x55 )|( ch == 0x56 ))
 896   1              {
 897   2                      convbuf[addr]=0x56;
 898   2                      chk=chk+0x56;
 899   2                      convbuf[addr+1]=ch ^ 0x20;
 900   2                      chk=chk+convbuf[addr+1];
 901   2                      s55++;
 902   2              }
 903   1              else
 904   1              {       chk=chk+ch;
 905   2                      if (( ch == 0x7d )|( ch == 0x7e ))
 906   2                      {
 907   3                              convbuf[addr]=0x7d;
 908   3                              convbuf[addr+1]=ch ^ 0x20;
 909   3      
 910   3                      }
 911   2                      else
 912   2                      {
 913   3                              addr++;
 914   3                              convbuf[addr]=ch;
 915   3                      }
 916   2              }
 917   1              addr--;
 918   1              ch=2-s55;
 919   1              for( s55 = 0 ; s55 < ch ; s55++ )
 920   1              {
C51 COMPILER V7.20   5112UDP                                                               08/18/2004 10:31:57 PAGE 16  

 921   2                      convbuf[addr]=0;
 922   2                      addr--;
 923   2              }
 924   1              convbuf[8]=chk & 0xff;
 925   1              chk=chk>>8;
 926   1              convbuf[7]=chk & 0xff;
 927   1              convbuf[addr]=6-addr;
 928   1              p=&convbuf[addr];
 929   1              return(p);
 930   1      }
 931          ///////////////////////////////
 932          //
 933          //NAME: hangup
 934          //DESCRIPTION: break internet
 935          //CALL:
 936          //INPUT:
 937          //OUTPUT:
 938          //
 939          ///////////////////////////////
 940          void hangup(void)
 941          {
 942   1              send_ctr_com0_buf[0]=0x7e;
 943   1              send_ctr_com0_buf[1]=0x31;
 944   1              send_ctr_com0_buf[2]=0x00;
 945   1              send_ctr_com0_buf[3]=0x04;
 946   1              send_ctr_com0_buf[4]=0x10;
 947   1              send_ctr_com0_buf[5]=0x7e;
 948   1              send_data0=0;
 949   1              send_ctr_com0_len=6;
 950   1              send_com0_finish=0;
 951   1              ack=0;
 952   1              send_com0_cnt=0;
 953   1              TI=1;
 954   1              settimer(9);
 955   1              while ( !ack )
 956   1              {
 957   2              ;
 958   2              }
 959   1              killtimer(9);
 960   1              ack=0;
 961   1              phy_err=0;
 962   1              settimer(12);
 963   1              DSP_RCV=1;
 964   1              DSP_SEND=0;
 965   1              while( ! phy_err )
 966   1              {
 967   2                      wait(100);
 968   2                      wait(100);
 969   2                      DSP_RCV=~DSP_RCV;
 970   2                      DSP_SEND=~DSP_RCV;
 971   2              }
 972   1              DSP_RCV=1;
 973   1              DSP_SEND=1;
 974   1              phy_err=0;
 975   1              killtimer(12);
 976   1      }
 977          ///////////////////////////////
 978          //
 979          //NAME: call
 980          //DESCRIPTION: call isp num
 981          //CALL:
 982          //INPUT:
C51 COMPILER V7.20   5112UDP                                                               08/18/2004 10:31:57 PAGE 17  

 983          //OUTPUT:call ok =1; call error =0;
 984          //
 985          ///////////////////////////////
 986          bit call(void)
 987          {
 988   1              unsigned char  recall,i;
 989   1              settimer(2);
 990   1              run=0;
 991   1              recall=0;
 992   1              ack=0;
 993   1              while(1)
 994   1              {
 995   2                      send_ctr_com0_buf[0]=0x7e;
 996   2                      send_ctr_com0_buf[1]=0x31;
 997   2                      send_ctr_com0_buf[2]=0x00;
 998   2                      send_ctr_com0_buf[3]=0x04;
 999   2                      send_ctr_com0_buf[4]=0x01;
1000   2                      send_ctr_com0_buf[5]=0x7e;
1001   2                      send_data0=0;
1002   2                      send_ctr_com0_len=6;
1003   2                      send_com0_finish=0;
1004   2                      ack=0;
1005   2                      ppp_err=0;
1006   2                      ppp_ok=0;
1007   2                      send_com0_cnt=0;
1008   2                      TI=1;
1009   2                      settimer(9);
1010   2                      while ( !ack )
1011   2                      {
1012   3                      ;
1013   3                      }
1014   2                      killtimer(9);
1015   2                      ack=0;
1016   2                      while (!( ppp_ok | ppp_err ))
1017   2                      {
1018   3                              if ( ! timer7 ) settimer(7);
1019   3                              wait(150);
1020   3                      }
1021   2                      killtimer(7);
1022   2                      if ( ppp_ok )
1023   2                      {
1024   3                              killtimer(2);
1025   3                              DSP_CALL=0;
1026   3                              ppp_err=0;
1027   3                              ppp_ok=0;
1028   3                              return(1);
1029   3                      }
1030   2                      else
1031   2                      {
1032   3                              recall++;
1033   3                              if ( recall > 1 )
1034   3                              {
1035   4                                      killtimer(2);
1036   4                                      DSP_CALL=1;
1037   4                                      ppp_err=0;
1038   4                                      ppp_ok=0;
1039   4                                      return (0);
1040   4                              }
1041   3                              else
1042   3                              {
1043   4                                      for ( i = 0 ; i < 120 ; i++ ) wait(100);
1044   4                              }
C51 COMPILER V7.20   5112UDP                                                               08/18/2004 10:31:57 PAGE 18  

1045   3                      }
1046   2              }
1047   1      }
1048          ///////////////////////////////
1049          //
1050          //NAME: send_data
1051          //DESCRIPTION: send data to equ from modem
1052          //CALL:
1053          //INPUT:
1054          //OUTPUT:NONE
1055          //
1056          ///////////////////////////////
1057          void send_data(void)
1058          {
1059   1              unsigned int data len,itemp,chk;
1060   1              unsigned char data ch,addr;
1061   1              unsigned char *p;
1062   1              if ( com1_rcv_len != 0 )
1063   1          {
1064   2                      DSP_SEND=0;
1065   2                      settimer(5);
1066   2                      ES1=0;
1067   2                      ES0=0;
1068   2                      com0_send_addr=com1_rcv_addr_hand;
1069   2                  com0_send_len=com1_rcv_len;
1070   2                      chk=rcv_equ_chk;

⌨️ 快捷键说明

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