<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > GPRS模塊發(fā)送信息代碼

          GPRS模塊發(fā)送信息代碼

          作者: 時(shí)間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
          #include

          //SIM300測試燈接口

          本文引用地址:http://www.ex-cimer.com/article/201611/315464.htm

          sbit LED_S0= P1^7;
          sbit LED_S1= P1^6;
          sbit LED_S2= P1^5;

          //BELL接口
          sbit BELL= P1^4; //這里以P1.4口的LED指示燈代替蜂鳴器接口
          sbit LED_S7= P1^0; //AT+CPIN命令失敗

          //串口接收數(shù)組
          #define RxIn 90//定義接收的數(shù)組長度為90
          unsigned char idata SystemBuf[RxIn]; //儲(chǔ)存出口接收數(shù)據(jù)
          unsigned char Rx=0;

          //AT指令表
          unsigned char code AT[]="AT";//握手信號(hào)
          unsigned char code ATZ[]="ATZ";//設(shè)備初始化
          unsigned char code ATE0V1[]="ATE0V1";//關(guān)回顯設(shè)置命令返回OK/V1 0/V0
          unsigned char code AT_IPR[]="AT+IPR=9600"; //波特率設(shè)置
          unsigned char code AT_CPIN[]="AT+CPIN?";//查詢SIM卡狀態(tài)
          unsigned char code AT_CSQ[] ="AT+CSQ";//查詢信號(hào)
          unsigned char code ATH[]="ATH";//呼叫掛起
          unsigned char code AT_COPS[]="AT+COPS?";//查詢網(wǎng)絡(luò)運(yùn)營商
          unsigned char code AT_CDSNORIP[]="AT+CDNSORIP=0";//GPRS IP 方式
          unsigned char code AT_CIPHEAD[]="AT+CIPHEAD=1"; //GPRS 接收方式
          unsigned char code AT_CIPSTART[]="AT+CIPSTART="TCP","218.109.58.100","2003"";//GPRS連接方式GPRS連接地址(根據(jù)用戶實(shí)際IP修改)GPRS連接的端口
          unsigned char code AT_CIPSEND[]="AT+CIPSEND";//GPRS發(fā)送信息命令
          unsigned char code AT_CIPCLOSE[]="AT+CIPCLOSE";//TCP連接關(guān)閉
          unsigned char code AT_CIPSHUT[]="AT+CIPSHUT";//GPRS連接關(guān)閉
          unsigned char code ATA[]="ATA";//來電接聽

          //定時(shí)TIMER0用
          unsigned int timercount;//50MS定時(shí)器,
          unsigned char timer_1S_cnt;
          unsigned char timer_10S_cnt;
          unsigned char timer_S_cnt;

          //SIM300函數(shù)聲明
          void Delay_ms(unsigned i);

          void UART_init(void);
          void GSM_init(void);
          void sendchar(unsigned char ch);
          void sendstring(unsigned char *p);
          void sys_init(void);
          void clear_SystemBuf(void);
          void BELL_UP(void);
          unsigned char strsearch(unsigned char *ptr2,unsigned char *ptr1_at);//查字符串*ptr2在*ptr1中的位置

          //延時(shí)函數(shù)
          void delayms(unsigned int ii)//1ms延時(shí)函數(shù)
          {
          unsigned int i,x;
          for (x=0;x{
          for (i=0;i<100;i++);
          }
          }

          void delay(unsigned int i)
          {
          while(i!=0)
          {
          i--;
          }
          }


          /*********************************************************************
          ** 函數(shù)名稱: strsearch ()
          ** 函數(shù)功能: 在指定的數(shù)組里連續(xù)找到相同的內(nèi)容
          ** 入口參數(shù): ptr2要查找的內(nèi)容, ptr1當(dāng)前數(shù)組
          ** 出口參數(shù): 0-沒有 找到 >1 查找到
          *********************************************************************/
          unsigned char strsearch(unsigned char *ptr2,unsigned char *ptr1_at)//查字符串*ptr2在*ptr1中的位置
          //本函數(shù)是用來檢查字符串*ptr2是否完全包含在*ptr1中
          //返回: 0 沒有找到
          //1-255 從第N個(gè)字符開始相同
          {
          unsigned char i,j,k;
          unsigned char flag;
          if(ptr2[0]==0) return(0);
          flag=0;
          for(i=0,j=0;i{
          if(ptr1_at[i]==ptr2[j])
          {//第一個(gè)字符相同
          for(k=i;k {
          if(ptr2[j]==0)//比較正確
          return(i+1); //返回值是整數(shù),不含0
          if(ptr1_at[k]!=ptr2[j]) break;
          }
          j=0;
          }
          }
          return(0);
          }
          /******************************************************************************************************************
          //////////////////////函數(shù)void BELL();實(shí)現(xiàn)功能:////////////////////////////////////////////////////////////////////
          *****************************************************************************************************************/
          void BELL_UP()
          {
          BELL=0;
          Delay_ms(2000);
          BELL=1;
          Delay_ms(2000);
          }
          /******************************************************************************************************************
          //////////////////////函數(shù)void sendchar(uchar ch);實(shí)現(xiàn)功能:發(fā)送一字節(jié)數(shù)據(jù)//////////////////////////////////////////
          *****************************************************************************************************************/
          void sendchar(unsigned char ch)
          {
          SBUF=ch;
          while(TI==0);
          TI=0;
          }
          /*****************************************************************************************************************
          //////////////////////函數(shù)void sendstring(uchar *p);實(shí)現(xiàn)功能:通過串口發(fā)送字符串//////////////////////////////////
          *****************************************************************************************************************/
          void sendstring(unsigned char *p)
          {
          while(*p)
          {
          sendchar(*p);
          p++;
          }
          sendchar(0x0D);
          sendchar(0x0A);
          }
          /*****************************************************************************************************************
          ////////////////////////////////函數(shù)void Delay_ms(unsigned int i);實(shí)現(xiàn)功能:進(jìn)行毫秒延時(shí)///////////////////////////////////
          *****************************************************************************************************************/
          void Delay_ms(unsigned int i)
          {
          unsigned int j;

          for(;i>0;i--)
          {
          for(j=0;j<125;j++)
          {;}
          }

          }
          //---延時(shí)US------------------------------
          void dmsec (unsigned int count)
          {
          unsigned int i;
          while (count)
          {
          i =300;
          while (i>0) i--;
          count--;
          }
          }
          /************************************************************************************************
          ********************************系統(tǒng)初始化*******************************************************
          ************************************************************************************************/
          void sys_init(void)//UART TIMER0初始化
          {
          TH0 = 0xB8;
          TL0 = 0x00; //20ms的時(shí)鐘基準(zhǔn)
          //串口中斷
          TI=0;
          RI=0;
          SCON=0x50; //選用方式1
          TMOD=0x20;
          TMOD = (TMOD & 0xf0) | 1;//MODE 1
          TH1=0xfd; //波特率為9600
          TL1=0xfd;
          PCON=0x00; //倍頻0x80
          IE = 0xb0; // EA XX ET2 ES ET0 EX0 ET1 EX1
          TR1=1; //enable TIMER1
          ES=1; //開串口開斷
          TR0=1; //串口接收中斷
          ET0=0; //T0 中斷
          ET1=0; // T1 中斷
          EA=1;
          timer_1S_cnt=0;

          }


          /******************************************************************************************************************
          ///////////////////函數(shù)void GSM_INIT(void);實(shí)現(xiàn)功能:初始化模塊///////////////////////////////
          ******************************************************************************************************************/
          void GSM_init(void)
          {
          Delay_ms(5000); //
          Delay_ms(5000);
          Delay_ms(5000); //等待模塊啟動(dòng)并聯(lián)網(wǎng)
          while(1)
          {
          clear_SystemBuf();
          sendstring(AT);
          Delay_ms(1000);
          if((SystemBuf[5]==O)&&(SystemBuf[6]==K))//判斷是否模塊初始化成功,成功的話模塊會(huì)回復(fù)"OK"給單片機(jī)
          {//如果單片機(jī)沒有收到OK,就繼續(xù)發(fā)送初始化指令/
          LED_S0=~LED_S0;break; //P1.7指示燈亮
          }
          Delay_ms(1000);
          }
          sendstring(ATZ);//初始化
          Delay_ms(1000);
          sendstring(AT_IPR);//9600
          Delay_ms(1000);
          sendstring(ATE0V1);//關(guān)閉回顯設(shè)置DCE為OK方式
          Delay_ms(1000);
          while(1)
          {
          clear_SystemBuf();
          sendstring(AT_CPIN);//查詢SIM卡狀態(tài)
          Delay_ms(1000);
          // MOUDULE -> MCU
          //[0D][0A]
          //+CPIN: READY[0D][0A]
          //[0D][0A]
          //OK[0D][0A]
          if((SystemBuf[18]==O)&&(SystemBuf[19]==K))
          {
          LED_S1=~LED_S1;break; //P1.6指示燈亮
          }
          Delay_ms(1000);//READY??
          LED_S7=~LED_S7;

          }
          //GPRS初始化
          //其他采用模塊默認(rèn)設(shè)置
          sendstring(AT_CDSNORIP);Delay_ms(1000); //選擇域名還是IP方式,這里我們采用IP模式
          sendstring(AT_CIPHEAD); Delay_ms(1000); //接收的數(shù)據(jù)帶+IPD字符串
          }
          /****************************************************************************************************************/
          ///////////////////////////////////////void clear_SystemBuf();清除串口接收緩沖區(qū)/////////////////////////////////
          /****************************************************************************************************************/
          void clear_SystemBuf()
          {
          for(Rx=0;Rx{
          SystemBuf[Rx]=0x00;
          }
          Rx=0;
          }
          /******************************************************************************************************************
          ///////////////////函數(shù)void receive(void) interrupt 4 using 1;實(shí)現(xiàn)功能:通過串口接收數(shù)據(jù)////////////////////////////
          ******************************************************************************************************************/
          void receive(void) interrupt 4 using 1
          {
          if(RI)
          {
          if(Rx{
          SystemBuf[Rx]=SBUF;
          Rx++;
          }
          RI=0;

          }
          }



          關(guān)鍵詞: GPRS模塊發(fā)送信

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();