单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10180|回复: 39
收起左侧

A6 GPRS+GSM模块51单片机TCP通信及发送短信实例程序

  [复制链接]
Eanain 发表于 2017-5-24 20:38 | 显示全部楼层 |阅读模式
QQ图片20170524203742.png
01.STC89C52拨打电话
02.STC89C52发送英文短信
03.STC89C52 GPRS TCP通信
04.STC15W GPS解析

A6模块接线方式:
1.准备一个STC89C52最小系统板

2.烧录代码(先烧录代码后接线,防止接线后下载不了代码)
3.给模块供电,给模块开机
4.接线:
    STC89C52        A6&A7
    GND        ->        GND
    TXD/P3.1->        U_RXD
    RXD/P3.0->        U_TXD

单片机源程序如下:
  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;       //定时器计数器

  11. code char phoneNumber[] = "17719228082";                //替换成需要被拨打电话的号码
  12. code char msg[] = "ILoveMCU.taobao.com";                //短信内容

  13. code char TCPServer[] = "122.228.19.57";                //TCP服务器地址
  14. code char Port[] = "30396";                                                //端口

  15. unsigned int count = 0;
  16.        

  17. //****************************************************
  18. //主函数
  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.                 //发送数据
  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);                 //发送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. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
6.51单片机例程.rar (298.3 KB, 下载次数: 317)
回复

使用道具 举报

rongwinzip 发表于 2017-5-28 11:09 | 显示全部楼层
恢复加点积分
回复

使用道具 举报

hiya 发表于 2017-5-31 14:14 | 显示全部楼层
好想下载啊
回复

使用道具 举报

1130555300 发表于 2017-5-31 21:31 | 显示全部楼层
有没有电路图?
回复

使用道具 举报

zxy2266 发表于 2017-6-13 23:02 | 显示全部楼层
现在研究GPRS可惜没有黑币
回复

使用道具 举报

909169697 发表于 2017-6-30 19:46 | 显示全部楼层
楼主在不在啊
回复

使用道具 举报

909169697 发表于 2017-6-30 19:47 | 显示全部楼层
楼主在不啊,审核好麻烦
回复

使用道具 举报

909169697 发表于 2017-6-30 21:17 | 显示全部楼层
头文件不对劲啊,不能编译啊
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 发表于 2017-7-10 10:57 | 显示全部楼层
学习了!!!!!!
回复

使用道具 举报

heeyon 发表于 2017-7-29 16:21 | 显示全部楼层
分数不够怎么办啊?想下载看看
回复

使用道具 举报

非黄腾达 发表于 2017-8-17 17:54 | 显示全部楼层
压缩包的程序和直接给的程序都不一样,很怀疑楼主是怎么使用的????
回复

使用道具 举报

敲代码时间 发表于 2017-9-5 10:58 | 显示全部楼层
入门级
回复

使用道具 举报

zjw12694 发表于 2017-10-18 22:01 来自手机 | 显示全部楼层
很有用,喜欢
回复

使用道具 举报

ryanycy 发表于 2017-10-30 13:42 | 显示全部楼层
能不能加点分
回复

使用道具 举报

ryanycy 发表于 2017-10-30 13:42 | 显示全部楼层
试试看
回复

使用道具 举报

16#
无效楼层,该帖已经被删除
qweqwertyuiop 发表于 2017-11-17 17:46 | 显示全部楼层
非常有用
回复

使用道具 举报

2100598336 发表于 2017-11-26 17:21 | 显示全部楼层
看看 学习一下
回复

使用道具 举报

袁洁栋 发表于 2017-12-7 19:11 | 显示全部楼层
谢谢分享,下载了
回复

使用道具 举报

小潘哥 发表于 2017-12-7 20:13 来自手机 | 显示全部楼层
谢谢楼主无私分享,学习学习
回复

使用道具 举报

852200 发表于 2017-12-30 10:21 | 显示全部楼层
分数不够
回复

使用道具 举报

1126469277 发表于 2018-2-8 11:53 | 显示全部楼层
909169697 发表于 2017-6-30 21:17
头文件不对劲啊,不能编译啊
compiling gsmC.c...
gsmC.c(18): warning C318: can't open file 'main.h'
...

他这个少了一个头文件,51单片机的没有定义头文件
回复

使用道具 举报

几许轻唱 发表于 2018-4-8 17:07 | 显示全部楼层
看看 学习一下
回复

使用道具 举报

24#
无效楼层,该帖已经被删除
DoveMyZ 发表于 2018-4-19 19:56 | 显示全部楼层
学习学习
回复

使用道具 举报

DoveMyZ 发表于 2018-4-19 21:51 | 显示全部楼层
涨知识了
回复

使用道具 举报

haikuc 发表于 2018-5-7 11:41 | 显示全部楼层
学习一下谢谢大神
回复

使用道具 举报

xxd123456 发表于 2018-5-22 17:41 | 显示全部楼层
下载了是哪一个呢???
回复

使用道具 举报

笑看 发表于 2018-5-22 18:14 来自手机 | 显示全部楼层
学习了!!!!
回复

使用道具 举报

fish_yu 发表于 2018-6-27 21:15 | 显示全部楼层
很想看一下,可惜没有黑币
回复

使用道具 举报

沧澜钓翁 发表于 2018-7-1 08:20 | 显示全部楼层
谢谢楼主分享,很棒!!!
回复

使用道具 举报

李志康的 发表于 2018-7-2 15:23 | 显示全部楼层
想下载看看  就是没黑币
回复

使用道具 举报

两航。 发表于 2018-7-19 09:07 | 显示全部楼层
gsm模块加单片机 很好的应用
回复

使用道具 举报

yuanhaidong 发表于 2018-7-21 21:05 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

yuanhaidong 发表于 2018-7-21 21:05 | 显示全部楼层
感谢楼主分享,蹭个热度。很好用
回复

使用道具 举报

m123 发表于 2018-8-28 20:26 | 显示全部楼层
感谢分享。。。。。。。。
回复

使用道具 举报

a965718891 发表于 2018-8-29 11:07 | 显示全部楼层
谢谢大佬们,,,
回复

使用道具 举报

xiaogua 发表于 2018-8-30 11:38 | 显示全部楼层
想看下接入网络部分的代码.
回复

使用道具 举报

39#
无效楼层,该帖已经被删除
brcsss 发表于 2018-9-5 16:25 | 显示全部楼层
STC89C52 GPRS TCP通信
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51黑电子论坛单片机. 联系QQ:125739409;技术交流QQ群582644647

Powered by 单片机教程网

快速回复 返回顶部 返回列表