標(biāo)題: A6 GPRS+GSM模塊51單片機(jī)TCP通信及發(fā)送短信實(shí)例程序 [打印本頁(yè)]

作者: Eanain    時(shí)間: 2017-5-24 20:38
標(biāo)題: A6 GPRS+GSM模塊51單片機(jī)TCP通信及發(fā)送短信實(shí)例程序

01.STC89C52撥打電話
02.STC89C52發(fā)送英文短信
03.STC89C52 GPRS TCP通信
04.STC15W GPS解析

A6模塊接線方式:
1.準(zhǔn)備一個(gè)STC89C52最小系統(tǒng)板

2.燒錄代碼(先燒錄代碼后接線,防止接線后下載不了代碼)
3.給模塊供電,給模塊開(kāi)機(jī)
4.接線:
    STC89C52        A6&A7
    GND        ->        GND
    TXD/P3.1->        U_RXD
    RXD/P3.0->        U_TXD

單片機(jī)源程序如下:
  1. /*********************************************************************
  2.                  作者:神秘藏寶室
  3. *********************************************************************/

  4. #include "main.h"
  5. #include "uart.h"

  6. //常量
  7. #define Success 1U
  8. #define Failure 0U

  9. //定義變量
  10. unsigned long  Time_Cont = 0;       //定時(shí)器計(jì)數(shù)器

  11. code char phoneNumber[] = "17719228082";                //替換成需要被撥打電話的號(hào)碼
  12. code char msg[] = "ILoveMCU.taobao.com";                //短信內(nèi)容

  13. code char TCPServer[] = "122.228.19.57";                //TCP服務(wù)器地址
  14. code char Port[] = "30396";                                                //端口

  15. unsigned int count = 0;
  16.        

  17. //****************************************************
  18. //主函數(shù)
  19. //****************************************************
  20. void main()
  21. {
  22.     Uart_Init();

  23.         if (sendCommand("AT+RST\r\n", "OK\r\n", 3000, 10) == Success);
  24.         else errorLog();
  25.         delay_ms(10);

  26.         if (sendCommand("AT\r\n", "OK\r\n", 3000, 10) == Success);
  27.         else errorLog();
  28.         delay_ms(10);

  29.         if (sendCommand("AT+CPIN?\r\n", "READY", 1000, 10) == Success);
  30.         else errorLog();
  31.         delay_ms(10);

  32.         if (sendCommand("AT+CREG?\r\n", "CREG: 1", 1000, 10) == Success);
  33.         else errorLog();
  34.         delay_ms(10);

  35.         if (sendCommand("AT+CGATT=1\r\n", "OK\r\n", 1000, 10) == Success);
  36.         else errorLog();
  37.         delay_ms(10);

  38.         if (sendCommand("AT+CGDCONT=1,\"IP\",\"CMNET\"\r\n", "OK\r\n", 1000, 10) == Success);
  39.         else errorLog();
  40.         delay_ms(10);


  41.         if (sendCommand("AT+CGACT=1,1\r\n","OK\r\n", 1000, 10) == Success);
  42.         else errorLog();
  43.         delay_ms(10);

  44.        

  45.         while(1)
  46.         {       
  47.                  char xdata send_buf[100] = {0};
  48.                 memset(send_buf, 0, 100);    //清空
  49.                 strcpy(send_buf, "AT+CIPSTART=\"TCP\",\"");
  50.                 strcat(send_buf, TCPServer);
  51.                 strcat(send_buf, "\",");
  52.                 strcat(send_buf, Port);
  53.                 strcat(send_buf, "\r\n");
  54.                 if (sendCommand(send_buf, "CONNECT", 10000, 5) == Success);
  55.                 else errorLog();

  56.                 //發(fā)送數(shù)據(jù)
  57.                 if (sendCommand("AT+CIPSEND\r\n", ">", 3000, 5) == Success);
  58.                 else errorLog();

  59.                 memset(send_buf, 0, 100);    //清空
  60.                 sprintf(send_buf,"ILoveMCU.taobao.com %d\r\n",count);
  61.                 count++;
  62.                

  63.                 if (sendCommand(send_buf, send_buf, 3000, 1) == Success);
  64.                 else errorLog();
  65.                 delay_ms(100);

  66.                 memset(send_buf, 0, 100);    //清空
  67.                 send_buf[0] = 0x1a;
  68.                 if (sendCommand(send_buf, send_buf, 3000, 5) == Success);
  69.                 else errorLog();
  70.                 delay_ms(100);

  71.                 if (sendCommand("AT+CIPCLOSE\r\n", "OK\r\n", 3000, 10) == Success);
  72.                 else errorLog();

  73.                 delay_ms(1000);
  74.         }
  75. }

  76. void sendMessage(char *number,char *msg)
  77. {
  78.         xdata char send_buf[20] = {0};
  79.         memset(send_buf, 0, 20);    //清空
  80.         strcpy(send_buf, "AT+CMGS=\"");
  81.         strcat(send_buf, number);
  82.         strcat(send_buf, "\"\r\n");
  83.         if (sendCommand(send_buf, ">", 3000, 10) == Success);
  84.         else errorLog();

  85.         SendString(msg);

  86.         SendData(0x1A);
  87. }

  88. void phone(char *number)
  89. {
  90.         char send_buf[20] = {0};
  91.         memset(send_buf, 0, 20);    //清空
  92.         strcpy(send_buf, "ATD");
  93.         strcat(send_buf, number);
  94.         strcat(send_buf, ";\r\n");

  95.         if (sendCommand(send_buf, "SOUNDER", 10000, 10) == Success);
  96.         else errorLog();
  97. }

  98. void errorLog()
  99. {
  100.         while (1)
  101.         {
  102.                   if (sendCommand("AT\r\n", "OK", 100, 10) == Success)
  103.                 {
  104.                         soft_reset();
  105.                 }
  106.                 delay_ms(200);
  107.         }
  108. }

  109. void soft_reset(void)         //制造重啟命令
  110. {
  111.    ((void (code *) (void)) 0x0000) ();
  112. }

  113. unsigned int sendCommand(char *Command, char *Response, unsigned long Timeout, unsigned char Retry)
  114. {
  115.         unsigned char n;
  116.         CLR_Buf();
  117.         for (n = 0; n < Retry; n++)
  118.         {
  119.                 SendString(Command);                 //發(fā)送GPRS指令

  120.                 Time_Cont = 0;
  121.                 while (Time_Cont < Timeout)
  122.                 {
  123.                         delay_ms(100);
  124.                         Time_Cont += 100;
  125.                         if (strstr(Rec_Buf, Response) != NULL)
  126.                         {
  127. ……………………

  128. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
6.51單片機(jī)例程.rar (298.3 KB, 下載次數(shù): 511)



作者: rongwinzip    時(shí)間: 2017-5-28 11:09
恢復(fù)加點(diǎn)積分
作者: hiya    時(shí)間: 2017-5-31 14:14
好想下載啊
作者: 1130555300    時(shí)間: 2017-5-31 21:31
有沒(méi)有電路圖?
作者: zxy2266    時(shí)間: 2017-6-13 23:02
現(xiàn)在研究GPRS可惜沒(méi)有黑幣
作者: 909169697    時(shí)間: 2017-6-30 19:46
樓主在不在啊
作者: 909169697    時(shí)間: 2017-6-30 19:47
樓主在不啊,審核好麻煩
作者: 909169697    時(shí)間: 2017-6-30 21:17
頭文件不對(duì)勁啊,不能編譯啊
compiling gsmC.c...
gsmC.c(18): warning C318: can't open file 'main.h'
gsmC.c(19): warning C318: can't open file 'uart.h'
GSMC.C(37): warning C206: 'Uart_Init': missing function-prototype
GSMC.C(39): warning C206: 'sendCommand': missing function-prototype
GSMC.C(39): error C267: 'sendCommand': requires ANSI-style prototype
gsmC.c - 1 Error(s), 4 Warning(s).
作者: 15728001162    時(shí)間: 2017-7-10 10:57
學(xué)習(xí)了。。。。!
作者: heeyon    時(shí)間: 2017-7-29 16:21
分?jǐn)?shù)不夠怎么辦啊?想下載看看
作者: 非黃騰達(dá)    時(shí)間: 2017-8-17 17:54
壓縮包的程序和直接給的程序都不一樣,很懷疑樓主是怎么使用的????
作者: 敲代碼時(shí)間    時(shí)間: 2017-9-5 10:58
入門級(jí)
作者: zjw12694    時(shí)間: 2017-10-18 22:01
很有用,喜歡
作者: ryanycy    時(shí)間: 2017-10-30 13:42
能不能加點(diǎn)分
作者: ryanycy    時(shí)間: 2017-10-30 13:42
試試看
作者: qweqwertyuiop    時(shí)間: 2017-11-17 17:46
非常有用
作者: 2100598336    時(shí)間: 2017-11-26 17:21
看看 學(xué)習(xí)一下
作者: 袁潔棟    時(shí)間: 2017-12-7 19:11
謝謝分享,下載了
作者: 小潘哥    時(shí)間: 2017-12-7 20:13
謝謝樓主無(wú)私分享,學(xué)習(xí)學(xué)習(xí)
作者: 852200    時(shí)間: 2017-12-30 10:21
分?jǐn)?shù)不夠
作者: 1126469277    時(shí)間: 2018-2-8 11:53
909169697 發(fā)表于 2017-6-30 21:17
頭文件不對(duì)勁啊,不能編譯啊
compiling gsmC.c...
gsmC.c(18): warning C318: can't open file 'main.h'
...

他這個(gè)少了一個(gè)頭文件,51單片機(jī)的沒(méi)有定義頭文件
作者: 幾許輕唱    時(shí)間: 2018-4-8 17:07
看看 學(xué)習(xí)一下
作者: DoveMyZ    時(shí)間: 2018-4-19 19:56
學(xué)習(xí)學(xué)習(xí)
作者: DoveMyZ    時(shí)間: 2018-4-19 21:51
漲知識(shí)了
作者: haikuc    時(shí)間: 2018-5-7 11:41
學(xué)習(xí)一下謝謝大神
作者: xxd123456    時(shí)間: 2018-5-22 17:41
下載了是哪一個(gè)呢???

作者: 笑看    時(shí)間: 2018-5-22 18:14
學(xué)習(xí)了。。。
作者: fish_yu    時(shí)間: 2018-6-27 21:15
很想看一下,可惜沒(méi)有黑幣
作者: 滄瀾釣翁    時(shí)間: 2018-7-1 08:20
謝謝樓主分享,很棒。。
作者: 李志康的    時(shí)間: 2018-7-2 15:23
想下載看看  就是沒(méi)黑幣
作者: 兩航。    時(shí)間: 2018-7-19 09:07
gsm模塊加單片機(jī) 很好的應(yīng)用
作者: yuanhaidong    時(shí)間: 2018-7-21 21:05
謝謝樓主分享
作者: yuanhaidong    時(shí)間: 2018-7-21 21:05
感謝樓主分享,蹭個(gè)熱度。很好用
作者: m123    時(shí)間: 2018-8-28 20:26
感謝分享。。。。。。。。
作者: a965718891    時(shí)間: 2018-8-29 11:07
謝謝大佬們,,,
作者: xiaogua    時(shí)間: 2018-8-30 11:38
想看下接入網(wǎng)絡(luò)部分的代碼.
作者: brcsss    時(shí)間: 2018-9-5 16:25
STC89C52 GPRS TCP通信
作者: 奇虎楠夏    時(shí)間: 2018-12-2 20:52
你好,這個(gè)接線直接三根不行啊,能告訴一下我怎么接么
作者: G_5748    時(shí)間: 2019-3-7 21:55
所有的GPRS模塊都是通用的嗎
作者: songkdksljf    時(shí)間: 2019-3-15 21:33
我好想下載,但是沒(méi)有積分
作者: 山高水遠(yuǎn)啊    時(shí)間: 2019-3-30 16:07
厲害                        
作者: 罪惡王冠    時(shí)間: 2019-4-5 17:36
還不錯(cuò)把,就是有些難懂。
作者: xxxdcr    時(shí)間: 2019-7-4 16:13
這個(gè)是真的寫得很不錯(cuò),結(jié)構(gòu)清晰明了,內(nèi)容簡(jiǎn)單易懂,適合我這種學(xué)板子新手
作者: wx1831    時(shí)間: 2019-7-6 15:09
可以   
作者: 守護(hù)00    時(shí)間: 2019-7-14 19:29
我試了為什么沒(méi)有用




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1