在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

            作者: 時間:2016-11-17 來源:網絡 收藏
            #include

            //SIM300測試燈接口

            本文引用地址:http://www.biyoush.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命令失敗

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

            //AT指令表
            unsigned char code AT[]="AT";//握手信號
            unsigned char code ATZ[]="ATZ";//設備初始化
            unsigned char code ATE0V1[]="ATE0V1";//關回顯設置命令返回OK/V1 0/V0
            unsigned char code AT_IPR[]="AT+IPR=9600"; //波特率設置
            unsigned char code AT_CPIN[]="AT+CPIN?";//查詢SIM卡狀態(tài)
            unsigned char code AT_CSQ[] ="AT+CSQ";//查詢信號
            unsigned char code ATH[]="ATH";//呼叫掛起
            unsigned char code AT_COPS[]="AT+COPS?";//查詢網絡運營商
            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連接地址(根據用戶實際IP修改)GPRS連接的端口
            unsigned char code AT_CIPSEND[]="AT+CIPSEND";//GPRS發(fā)送信息命令
            unsigned char code AT_CIPCLOSE[]="AT+CIPCLOSE";//TCP連接關閉
            unsigned char code AT_CIPSHUT[]="AT+CIPSHUT";//GPRS連接關閉
            unsigned char code ATA[]="ATA";//來電接聽

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

            //SIM300函數聲明
            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中的位置

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

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


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

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

            }
            //---延時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的時鐘基準
            //串口中斷
            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;

            }


            /******************************************************************************************************************
            ///////////////////函數void GSM_INIT(void);實現功能:初始化模塊///////////////////////////////
            ******************************************************************************************************************/
            void GSM_init(void)
            {
            Delay_ms(5000); //
            Delay_ms(5000);
            Delay_ms(5000); //等待模塊啟動并聯(lián)網
            while(1)
            {
            clear_SystemBuf();
            sendstring(AT);
            Delay_ms(1000);
            if((SystemBuf[5]==O)&&(SystemBuf[6]==K))//判斷是否模塊初始化成功,成功的話模塊會回復"OK"給單片機
            {//如果單片機沒有收到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);//關閉回顯設置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初始化
            //其他采用模塊默認設置
            sendstring(AT_CDSNORIP);Delay_ms(1000); //選擇域名還是IP方式,這里我們采用IP模式
            sendstring(AT_CIPHEAD); Delay_ms(1000); //接收的數據帶+IPD字符串
            }
            /****************************************************************************************************************/
            ///////////////////////////////////////void clear_SystemBuf();清除串口接收緩沖區(qū)/////////////////////////////////
            /****************************************************************************************************************/
            void clear_SystemBuf()
            {
            for(Rx=0;Rx{
            SystemBuf[Rx]=0x00;
            }
            Rx=0;
            }
            /******************************************************************************************************************
            ///////////////////函數void receive(void) interrupt 4 using 1;實現功能:通過串口接收數據////////////////////////////
            ******************************************************************************************************************/
            void receive(void) interrupt 4 using 1
            {
            if(RI)
            {
            if(Rx{
            SystemBuf[Rx]=SBUF;
            Rx++;
            }
            RI=0;

            }
            }



            評論


            技術專區(qū)

            關閉