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

📄 gprs.c

📁 这是基于单片机的gprs编程 希望能给予大家帮助
💻 C
字号:
#include<REG52.h>
unsigned char link[3]={'A','T',0x0d};
//unsigned char number[23]={'A','T','+','C','S','C','A','=','+','8','6','1','3','8','0','0','5','7','3','5','0','0',0x0d};
unsigned char connect[26]={'A','T','+','C','G','D','C','O','N','T','=','1',',',0x22,'I','P',0x22,',',0x22,'C','M','N','E','T',0x22,0x0d};
unsigned char iplink[13]={'A','T','*','E','2','I','P','A','=','1',',','1',0x0d};
 //unsigned char check[11]= {'A','T','*','E','2','I','P','I','=','0',0x0d};
//unsigned char dail[12]={'A','T','D','*','9','9','*','*','*','1','#',0x0d};
unsigned char ipmsg[33]={'A','T','*','E','2','I','P','O','=','1',',',
0x22,'6','0','.','1','9','0','.','1','2','8','.','1','9','0',0x22,',',
'5','0','0','0',0x0d};
unsigned char re[23];
unsigned int j;
sbit L4=P3^4;
sbit L5=P3^5;
sbit RTS=P3^6;
sbit L1=P1^1;
sbit CTS=P2^3;
sbit DTR=P3^7;
void initial(void)
{
 L5=0;
 L4=0; //开启GR47
 P2=0x7D;
 SCON=0x50;
 TMOD=0x20;
 PCON=0x00;
 TH1=0xfd;
 TL1=0xfd;
 TR1=1;
 //ES=1;
 //EA=1;
}
void delay200(void)
{
unsigned char i,k;
for(i=400;i>0;i--)
for(k=248;k>0;k--);  //延时200ms
}
//接收函数
void receive( unsigned char m)
{
//unsigned char *recei;
char i=0;
while(i<m)
 {
  while(RI==0);              //等待接收完一个字符
  re[i]=SBUF;
  RI=0;
  i++;
 }
 delay200();
}
//发送一个字符
void  send_char(   unsigned   char   ch)
  {
    SBUF=ch;
    while   (TI== 0 );   //等待发送完一字节
    TI= 0 ;
  }

  //向串口发送一个字符串,strlen为该字符串长度
 void send_string(unsigned char *str, unsigned int strlen)
  {
    unsigned   char   k= 0 ;
   while (k <strlen)
    {
      send_char(*(str+k));
      k++;
    }

  }
void main(void)
{
initial();
//for(j=0;j<60;j++)
//delay200();          //延迟12s 等待GR47搜寻网络
 RTS=0;               //RTS置低,进行软件握手
send_string(link,3) ;    //发送AT建立连接
delay200();
send_string(connect,26);   //发送AT+CGDCONT=1,"IP","CMNET"
//delay200();
//delay200();
send_string(iplink,13);     //发送AT*E2IPA=1,1 说明:当前会话上的IP连接
 //for(j=0;j<10;j++)
delay200();
//send_string(dail,12);
// send_string(check,11);
send_string(ipmsg,33);   //发送AT*E2IPO=1,"192.168.1.102",21
//delay200();
receive(23);
delay200();
delay200();
RTS=1 ;            //关闭通讯
while(1);           //停机
}

⌨️ 快捷键说明

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