<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        GSM_TC35模塊(打電話、發短信)(熟悉指令)(第一層)

        作者:佚名   來源:本站原創   點擊數:  更新時間:2014年04月10日   【字體:
        耗時5天從上位機的AT指令的學習熟練使用到用51單片機編程串口發送數據。好累。。。。





        GSM_TC35I.h
        #ifndef __GSM_TC35I_H__
        #define __GSM_TC35I_H__
        #define uchar unsigned char
        #define uint  unsigned int
        sbit KEY1=P2^4;  //按鍵1,撥打或掛斷電話
        sbit KEY2=P2^5;  //按鍵2,發送英文短信
        sbit KEY3=P2^6;  //按鍵3,發送中文短信
        //*******************************1ms延時函數
        void Delay_ms(uint time);
        //********************************串口初始化函數
        void Serial_Init();
        //******************************TC35I打電話
        void GSM_Call(uchar *str1);
        //********************************TC35I發英文短信
        void GSM_Text_Message(uchar *str1,uchar *str2,uchar *str3,uchar *str4);
        //********************************TC35I發中文短信
        void GSM_Pdu_Message(uchar *str3,uchar *str5,uchar *str6,uchar *str7,uchar *str8,uchar *str9,uchar *str10,uchar *str11);
        #endif 

        GSM_TC35I.c
        #include <reg51.h>
        #include <stdio.h>
        #include <string.h>
        #include "GSM_TC35I.h"
        //打電話和TEXT格式短信
        char code str1[]="13297961386";  //目標電話號碼(這里修改目標手機號)
        char code str2[]="AT+CMGF=1";  //TEXT格式短信
        char code str3[]="AT+CMGS=";  //TEXT格式后接電話號碼
        char code str4[]="hi mazirong!"; //英文短信內容(這里修改英文短信內容)
        //PDU格式短信
        char code str5[]="AT+CMGF=0";  //PUD格式短信
        char code str6[]="089168";  
        char code str7[]="13010200500F"; //GSM_TC35I的短信中心號,(這里修改短信中心號)
        char code str8[]="13297961386F"; //目標手機號(這里修改目標手機號)
        char code str9[]="11000D9168";
        char code str10[]="000800";      
        char code str11[]="4E2D";   //中文短信內容(修改中文短信內容)
        //*******************************1ms延時函數
        void Delay_ms(uint time)
        {
         uint i;
         for(;time>0;time--)
          {
            i=1500;
            while(i--);
          }
        }
        //********************************串口初始化函數
        void Serial_Init()
        {
         SCON=0x50;  //選擇工作方式1,能夠收到接收信號
         PCON=0x00;  //正常波特率
         TMOD=0x20;  //定時器1的工作方式3,8位自動重裝計數
         TH1=0xFD;  //設定比特率為9600
         TL1=0xFD;
         TR1=1;   //啟動定時器1
        }
          
        //******************************TC35I打電話
        void GSM_Call(uchar *str1)    //str1[]="13297961386" 
        {
         printf("ATD");
         printf("%s;\n",str1); 
        }
        //********************************TC35I發英文短信
        void GSM_Text_Message(uchar *str1,uchar *str2,uchar *str3,uchar *str4)
        {
         printf("%s\n",str2); //str2[]="AT+CMGF=1"
         Delay_ms(200);
         printf("%s",str3);  //str3[]="AT+CMGS="
         printf("%s\n",str1); //str1[]="13297961386"
         Delay_ms(200);
         printf("%s",str4);  //str4[]="hi mazirong!"
         printf("\x1a\n");  //箭頭0x1A
        }
        //********************************TC35I發中文短信
        void GSM_Pdu_Message(uchar *str3,uchar *str5,uchar *str6,uchar *str7,uchar *str8,uchar *str9,uchar *str10,uchar *str11)
        {
         uchar i;
         printf("%s\n",str5); //str5[]="AT+CMGF=0"
         Delay_ms(200);
         printf("%s",str3);  //str2[]="AT+CMGS="
         printf("%d\n",strlen(str11)/2+15);
         Delay_ms(200);
         printf("%s",str6);  //str6[]="089168"
         for(i=0;i<6;i++)
          {
          printf("%c%c",str7[2*i+1],str7[2*i]); //str7[]="13010200500F"奇偶互換后變為3110202205F0 
          }
         printf("%s",str9);       //str9[]="11000D9168"
         for(i=0;i<6;i++)
          {
          printf("%c%c",str8[2*i+1],str8[2*i]); //str8[]="13297961386F"奇偶互換后變為3192971683F6
          }
         printf("%s",str10);  //str10[]="000800" 
         printf("%02x",strlen(str11)/2);  //str11[]="4E2D"短信內容長度/2,保留2位16進制數
         printf("%s\x1a\n",str11);  //和前一個printf組成例如024E2D+箭頭(0x1A)
        }

        main.c 
                     
        /*
        本程序的主要功能如下:
         1、給指定電話號碼打電話、掛電話。
         2、給指定電話號碼發送英文短信息
         3、給指定電話號碼發送中文短信息
        硬件接口定義:
         1、單片機采用STC89C52,晶振為11.0592
         2、P2.4; //按鍵1,撥打電話
         3、P2.5; //按鍵4,發送一條英文短信息
         4、P2.6; //按鍵5,發送一條中文短信息
        請注意在本程序中TC35I模塊內的SIM卡號碼為:18675739034,目標手機號碼為:13297961386.*/
        #include <reg51.h>
        #include "GSM_TC35I.h"
        sbit BELL=P1^6;
        extern uchar code str1[];
        extern uchar code str2[];
        extern uchar code str3[];
        extern uchar code str4[];
        extern uchar code str5[];
        extern uchar code str6[];
        extern uchar code str7[];
        extern uchar code str8[];
        extern uchar code str9[];
        extern uchar code str10[];
        extern uchar code str11[];
        //*******************************主函數
        void main()
        {
         Serial_Init();
         TI=1;
         while(1)
         {
          if(KEY1==0)
           {
             Delay_ms(10); 
            if(KEY1==0)
             {
              BELL=0;
              Delay_ms(10);
              BELL=1;
              GSM_Call(str1);
              
             }
           }
          if(KEY2==0)
           {
             Delay_ms(10); 
            if(KEY2==0)
             {
              BELL=0;
              Delay_ms(10);
              BELL=1;
              GSM_Text_Message(str1,str2,str3,str4);
             }
           } 
          if(KEY3==0)
           {
             Delay_ms(10); 
            if(KEY3==0)
             {
              BELL=0;
              Delay_ms(10);
              BELL=1;
              GSM_Pdu_Message(str3,str5,str6,str7,str8,str9,str10,str11);
             }
           } 
          }
        }
         
        關閉窗口
        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮