在本文中,我将向您展示一种使用 PIC 16F628A 和 SIMCOM SIM900A 模块发送 SMS 的方法。
在上一篇文章中,我对我的 GSM 模块进行了固件升级,因此它会注册到欧洲服务提供商。在那篇文章中,我简要介绍了 AT 命令和指令。
在本文中,我将更进一步。我会用我的 PIC 16F628A 发送短信。

完整的面包板。
要求
要充分利用本文,您需要具备以下条件:
SIMCOM SIM900A 模块,升级后可以注册到欧洲服务提供商。
一台运行MPLAB X和XC8编译器的计算机。
一个 PIC 16F628A和一个 MAX232。
一种对您的 PIC 进行编程的方法,我使用的是PICkit 3。
面包板、跳线和液晶显示器。
零件清单中的零件。
介绍
SIM900A模块上电后,会发生很多事情。其中之一是模块正在尝试注册到网络。成功注册到网络后,我们可以发送短信、接收短信并获取服务提供商名称。本文的主要目标是将 SMS 发送到预定义的号码。获得服务提供商的名称是一种奖励。
该模块通过 TTL 或板载 MAX232 IC 与周围电路通信。我将使用 MAX232 接口。这意味着所有的通信都是通过 PIC 的 UART 完成的,我们来自 PIC 的所有命令都将通过 printf 发送到 UART 端口。
硬件
我已经像这样连接了我的面包板:

单击图像以获得全尺寸分辨率。
由于我使用的是 MAX232,因此我可以使用它来查看微控制器正在发送到 GSM 模块的内容并对其进行故障排除。为此,我断开 GSM 模块,连接串行电缆,然后打开 GtkTerm。波特率设置:9600-8-N-1。

连接到计算机以进行故障排除。
这是微控制器发送到 GSM 模块的内容。前三行仅用于验证串行通信是否正常并查看我正在发送的内容。最后两行是对 GSM 模块的指令。

我没有收到 GSM 模块的回复,因为它没有连接。
零件清单
这是来自 EagleCAD 的 bom.ulp 的屏幕截图。

软件
尽管该软件已被注释,但我将在这里介绍它的某些部分。当 PIC 通电时,会显示一条简短的欢迎消息。然后开始 15 秒倒计时。我把这个倒计时,有两个原因:
允许 GSM 模块注册。
一个视觉显示,向用户显示正在发生的事情并且 PIC 正在工作。
倒计时结束后,PIC 发送命令:
AT+CPOL?\r\n
重要的是添加回车 - 新行,\r\n。这告诉模块执行已到达模块缓冲区的文本字符串。
然后模块返回字符串:
+CPOL: 1,0,”N NetCom”,1,0,1
这意味着该模块已注册到 NetCom。NetCom 是服务提供商的名称。这是我们要在 LCD 上显示的名称。现在我们需要从字符串中提取名称。我这样做的方法是将整个字符串读入一个数组。然后我将搜索“-signs”。找到“-signs”后,我将它们的位置存储在另一个数组中。这就是我所说的“开始和停止”。然后我使用“开始和停止”中的值在 LCD 上显示中间的字符。也许不是最花哨的方法,但它很简单。

要发送短信,我必须发送更多 AT 命令。
首先,我发送命令:
AT+CMGF=1\r\n
这是选择 SMS 消息格式。1 告诉模块进入文本模式。
其次,我发送命令:
AT+CMGS=”接收方”\r\n
“接收者”是我要发送消息的号码。
第三,我发送命令:
来自 PIC16F628A 的消息\r\n
这是实际的消息。由于消息有多个字符,包括空格,所以有一种很好的方法可以告诉模块消息的结尾在哪里。我必须发送 EOF 标志,恰好是 CTRL-Z。
printf(“%c”,26);
这是常规 ASCII 表中的 EOF 字符。该模块现在将发送消息。
使用此链接查找有关 SIM900A 模块的文档。
下载
您可以从链接下载 c 源代码。
jc_pic16f628a-gsm-sms.c.zip
结论
您现在应该能够获取您的服务提供商名称,并使用 SIM900A 模块在欧洲网络上发送 SMS。
图片和视频




相关推荐
我正在使用 NodeMCU - ESP32 ( https://esphome.io/devices/nodemcu_esp32.html ) 和 SIM900a 迷你版本 3.8.2 并尝试通过
发表于 02-28 10:03
在本教程中,我们将学习如何将GSM模块**(SIM900A)与我们的PIC微控制器连接,并通过使用GSM模块**拨打和接听电话来演示它。
发表于 01-25 17:27
•923次阅读
GSMGSM模块ArduinoSIM900ASIM900
Mr_haohao
发布于 :2022年08月31日 15:11:07
描述带有PIC16F628A的频率计数器首先,我想要一个 PIC 微控制器来完成整个无需任何额外 IC 即可工作。我也想使用熟悉的 16F628A,但因为其中一个端口 A 引脚 (RA5) 只能
发表于 08-16 07:55
电子发烧友网站提供《带有PIC16F628A的频率计数器.zip》资料免费下载
发表于 07-28 11:30
•3次下载
电子发烧友网站提供《PIC18 PIN (16F628A) 微控制器开发板.zip》资料免费下载
发表于 07-27 10:34
•0次下载
描述PIC16F928A DIY 50MHz 频率计我使用使用 CCS PICC 编程的 PIC16F628A 来制作一个简单的 DIY 频率计。它可以测量高达 50MHz 的数字信号。该套件中使
发表于 06-28 06:44
在本文中,我将向您展示我如何使用我的一个 SIM900A GSM 模块将温度和相对湿度发送到我的个人网站。
发表于 04-26 16:44
•1765次阅读
采用工业标准接口,工作频率为GSM/GPRS 850/900/1800/1900MHz,可以低功耗实现语音、SMS、数据和传真信息的传输。另外,SIM900A的尺寸大小为24x24x3mm,能适...
发表于 11-23 17:36
•70次下载
采用工业标准接口,工作频率为GSM/GPRS 850/900/1800/1900MHz,可以低功耗实现语音、SMS、数据和传真信息的传输。另外,SIM900A的尺寸大小为24x24x3mm,能适...
发表于 07-21 08:06
本文档的主要内容详细介绍的是使用Arduino实现GSM模块SIM900A发短信的实验免费下载。
发表于 03-12 15:24
•36次下载
本文档的主要内容详细介绍的是使用Arduino实现GSM模块SIM900A打电话的实验免费下载。
发表于 03-12 15:24
•29次下载
本文设计的无线通信模块,是利用STM32来控制SIM900A芯片,来实现短消息的收发与数据的无线传输。本设计完成了无线通信的硬件部分和软件部分的设计与实现。在多次运行试验时,本模块没有出现掉线
发表于 12-28 07:13
单片机sim900a问RSD引脚是什么?有什么作用?
发表于 05-19 16:45
海的朋友们,我和PIC16F628A控制器一起工作,在我的项目中我不使用一些引脚……当我连接到地面时,他们需要在引脚和地之间放置电阻……或者我应该配置未使用的引脚作为输出,并留下它们简单…?
发表于 04-16 10:16
大家好,我已经开始用PIC单片机工作了。我有PIC16F628 A,我用的是PACTIT3程序员。我从闪烁的LED开始,但我想在振荡器配置单词中犯了一些错误,因为代码正在执行,但现在我无法与uC连接
发表于 03-17 10:01
这是另一个带有PIC16F628A微控制器的面包板模块。可通过公头访问PIC16F628A微控制器的电源引脚和I/O端口。它可以很容易地插入面包板,对于快速制作原型非常有用。由于振荡器,复位和
发表于 12-06 14:57
•5639次阅读
900MHz和 DCS1800MHz。 SIM900A支持 GPRSmultiple-slotclass 10/class8(可选)和 GPRS编码格式 CS-1,CS-2,CS-3和CS-4 。
发表于 11-27 17:46
•5324次阅读
您好,一直在使用PIC16F628来创建一个程序来控制一个泵,以在预先限定的范围内填满一个水库。问题是当存款是空的30秒钟时,我想发出蜂鸣器。有什么想法吗?我的代码到目前为止:谢谢!
发表于 10-31 12:36
我想了解一下用51单片机控制SIM900A模块向服务器发送数据,然后怎样传到手机APP里
发表于 10-21 18:33
嗨,我使用的是PIC16F628A和MPLABXC8v1.37。我有一个main.c文件,其中定义了一些全局变量,并在main()中声明。在timer0ISR例程中,我比较在if.((ctr>
发表于 10-18 07:26
求一个简单的51控制SIM900A发送英文短信的程序,@原子哥
发表于 09-25 04:35
我用单片机的RXD接SIM900A的STXD,TXD接SRXD,GND接GND,通过串口助手发送AT,没反应。用串口线直接连SIM900A,AT有返回OK,各位大神是不是我连接有问题?
发表于 09-23 22:15
用SiM900A在ucosii系统中发送数据到服务器,在ucosii系统中新建一个gsm任务,然后进行发送数据,但是SIM900A一直连接不成功,实现不了实时通信
发表于 08-22 04:35
下午好。我正在试着用MPLAB XC编程一个微控制器“PIC16f628A”,这个程序在MPLLAB模拟器中工作,但在下载后不在微控制器上。下面的代码是有问题的,由于没有在第一次尝试中工作,主要功能只是切换A1…克低于2个微控制器,但都不工作。
发表于 08-13 09:27
PC机系统中扩展简单I/O 接口的方法。2.进一步学习编制数据输出程序的设计方法。3.学习TPYBoard v102控制SIM900A模块收发短信。所需元器件TPYBoard v102板子 1块数据线
发表于 08-06 10:58
部分,本文利用PC机通过串口控制该SIM900A电路系统实现了SMS和TCPIP数据收发功能,并利用单片机与SIM900A进行了通讯实验,使其连续不断地发送数据,经实验测定其数据正确性基本为100%。文章最后给出了相关源代码。
发表于 08-05 06:16
求PIC单片机控制SIM900A模块收发短信的方法,最好有电路图与代码~
发表于 07-24 04:35
为什么我的SIM900A无法发送text模式下的中文短信呢?我是按照《ATK-SIM900A_GSM(GPRS)模块用户手册_V1.0》上操作的。文本模式参数我也试着改过,仍然不行。
发表于 06-27 00:41
部分,本文利用PC机通过串口控制该SIM900A电路系统实现了SMS和TCPIP数据收发功能,并利用单片机与SIM900A进行了通讯实验,使其连续不断地发送数据,经实验测定其数据正确性基本为100%。文章最后给出了相关源代码。
发表于 05-30 17:55
•22次下载
论坛里好像只有STM32的例程,哪位大神写了51的例程,求共享啊~~~~SIM900A和TC35是差很多吗?TC35能用的程序换SIM900A完全没反应啊。大神快出来帮小弟支支招啊!!~~~~
发表于 05-26 21:49
服务器是阿里巴巴的,经常重启,sim900a怎么检测服务器重启,然后自动连接上呢?
发表于 05-24 01:09
求SIM900A简易程序,能够实现拨打电话和发短息的
发表于 05-21 02:01
有大神能给解答一下SIM800C和SIM900A的区别吗?
发表于 05-17 04:30
跌跌撞撞弄了两天搞清了SIM900A的使用方法和GPRS发送数据,校园网还卡壳了半天,最后使用花生壳把IP映射到外网才和电脑这边的网络助手成功通信的,说是通信也只是单纯的向电脑发送数据而已,从网络
发表于 05-13 06:35
最近买了一块GSM(SIM900A)的板子,回来后用三根线连接MiniSTM32开发板和SIM900A板子实现3线串口通信,调试了一个比较简单的例程,可以打电话。在此分享给大家。要想实现
发表于 05-08 12:24
本文档的主要内容详细介绍的是使用手机呼叫SIM900A进行门禁解锁的程序免费下载。
发表于 05-07 17:08
•12次下载
使用AT指令对SIM900A进行调试时,已经连接成功了,但是发送数据时网络调试助手接收区一直没有任何反应,是为什么啊
发表于 04-18 03:22
that the PIC16F628A that I got,doesn't work with it.Can someone help me suggesting in detail the mods to this file
发表于 04-12 12:00
谁有简单的例子啊,不知道怎么用430给SIM900a发送AT指令
发表于 04-02 02:55
手上有一套原子哥的战舰板子SIM900A的通讯模块也有前段时间做了块SIM900A的板子回来准备自己做一个通信模块,模块打电话没问题但是GPRS通讯一直连接不上求各位高手解答一下谢谢程序如下void
发表于 03-05 03:43
the old code, from PIC16F84A to PIC16F628A,But I don´t know what is the correct form to configure all
发表于 03-04 13:55
我已经与我的PIC16F628 A接口与SIM800 A模块……所有的RX TX的控制器和GSM工作与PC终端。当我将我的PIC与GSM接口时,我可以用控制器做呼叫消息。但是我不能读取GSM模块
发表于 02-26 11:50
做毕设测水温,温度传感器ds18b20采集的温度由单片机控制,用sim900a发送给手机,求程序。谢谢
发表于 02-21 06:35
亲们,问一下,如果用SIM900A中的短信功能GSM发送一个十六进制数据包,如{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};我该怎么发。
发表于 02-21 04:40
如何把GPS 定位的信息通过SIM900A的短信功能来实现,也就是当有手机发送一条特定的短信指令给SIM900A中的一手机号码时,它会自动回复一条GPS的定位信息给发送信息的手机
发表于 02-20 06:29
, I have what I think will be a quick question - I am using a PIC16F628a powered in a 5 volt circuit
发表于 01-10 15:43
大家用SIM900A免提运放电路推荐下 谢谢
发表于 01-10 10:25
to configuring a PIC16F628A PWM signal. I'm using a 20mhz oscillator crystal with the 16F628A and trying
发表于 01-04 14:52
在PIC16F628 A中,EEPROM的位置是ORG 2100H。我想知道PIC16F1827中EEPROM的位置是什么? 以上来自于百度翻译 以下为原文 In PIC16F628A
发表于 12-14 16:46
做的很简单,就是用51单片机控制SIM900a发短信。但是我一直发不了。通过电脑的串口助手调试,又能够正常发送。通过单片机控制,SIM900a连返回数据都没有,不知道这是怎么回事。在通过串口助手调试
发表于 11-20 20:15
以下为原文 I am a beginner and I have tried writing my program to the pic16f628a but the pickit2 software
发表于 10-23 15:56
本文主要介绍了SIM900A调试的波特率设置方法,另外还详细介绍了SIM900A基站定位调试详细方法步骤。
发表于 05-31 08:39
•1.2w次阅读
本文首先介绍了SIM900A模块主要特点与功能,其次介绍了sim900a功能框图与原理图,最后介绍了sim900a模块引脚及功能。
发表于 05-30 14:50
•14w次阅读
SIM800A/SIM900A 硬件差异文档V1.01下载.pdf
发表于 05-11 11:40
•39次下载
SIM900A模块,单片机控制通信
发表于 12-04 13:34
•15次下载
SIM900A是一个比较实用的GPRS模块,进行简单的配置就可以进行用于数据传输,配置使用AT指令进行交互。
发表于 11-06 15:31
•5051次阅读
使用Arduino控制设备,读取数据,然后通过移动网络传送到服务器。选用的是正点原子的SIM900A模块。在服务器部署了一个监听程序,Arduino控制SIM900A通过TCP方式把数据发送到服务器。
发表于 11-06 14:54
•5387次阅读
sim900a中英文短信发送步骤介绍。
发表于 11-06 11:57
•1.5w次阅读
sim900a和sim800a的区别是什么,分别从软件和硬件两个方向分析的,一起来了解一下。
发表于 11-06 11:04
•4.4w次阅读
SIM900A常见问题汇总,奉上SIM900A问题的解决办法。
发表于 11-06 10:46
•7333次阅读
/数字都算1个字])const u8* sim900a_test_msg="您好,这是一条测试短信,由ATK-SIM900A GSM模块发送";//SIM900A发短信测试 void
发表于 05-19 15:55
基于STM32和SIM900A的网络多点远程数据监测系统设计_李驰
发表于 02-27 17:40
•26次下载
51单片机和短信模块sim900a 都是购买的 。单片机的R 、T端分别和SIM900的R、T端连接。也倒过来试过。采用的是11.0592M的晶振。通过串口设置波特率为9600。电路连接好之后,不能发送短信。调试了两天。一直到不到问题在哪,求指点
发表于 02-26 14:58
/1800MHz。SIM900A基本版本可以低功耗实现语音、DTMF、SMS(短信,彩信)、GPRS 数据的传输。该模块具有极高的性价比,在双频的市场中占据极大份额。
发表于 12-15 22:28
•1次下载
sim900a发送中文短信程序
发表于 09-21 14:13
手头有块sim900A,现在要用到,今天试了一下,插不插卡都试了,但串口一直返回一串字符,而且串口输入没有反应有没有有经验的,求解释
发表于 07-23 20:05
MSP430F149通过USART连接SIM900A实现TCP/IP通讯。
发表于 05-18 11:44
•23次下载
本帖最后由 spring1987 于 2016-3-8 11:44 编辑
大家好,请问现在SIM900A还可以进行基站定位吗因为还要用SIM900A传输数据,所以如果还能支持基站定位的话
发表于 03-08 10:46
SIM900A芯片怎么与后台通信。
发表于 03-03 11:33
电话接通时,我手机上按拨号键盘,sim900a怎么检测我按到的是哪一个按键,我怎么去判断按下的是哪一个键呢?查AT命令发现了ATX命令可能有用,试了半天视乎没有用啊,可能不是这条命令来设置。
发表于 02-25 13:25
学习sim900a的必备神器,了解GSM网络和GPRS,如何运用AT指令,学习的好手册!
发表于 12-21 15:43
•10次下载
sim900a原理图学习,各个模块详细电路设计
发表于 12-21 15:41
•238次下载
M2M1401 SIM900A核心板的电路原理图。
发表于 11-06 16:50
•86次下载
求大神给个SIM900A接听指定电话的程序,只需要能够判断是不是指定来电即可,万分感谢
发表于 07-16 16:56
设计一个可以实现短信收发与数据无线传输的模块的要求,本文采用了ARM Cortex-M3内核的主流产品STM32作为主控芯片,采用SIMCom公司的SIM900A作为通信芯片。
发表于 11-07 09:13
•3.3w次阅读
stm32与sim900a模块串口三线连接,程序如下,极度简化了程序。结果单步调试的时候短信能发出去,让它自己跑就不行,是什么问题?USART1_Puts("at+cops?\r"
发表于 06-30 15:42
SIM900A发送短信的C51程序怎么写啊。求助大神指导。据说TC35与SIM900A兼容。两者的程序可以通用吗?
发表于 06-12 14:19
大家好,如何用STM32将SD卡里的图片发送到SIM900A里呢?
发表于 03-21 10:49
求SIM900A与SIM卡连接电路?
发表于 12-08 15:47
请问在Proteus怎么仿真SIM900a?
发表于 09-09 11:12
刚刚接触,不是太明白。想问下SIM900A的LCD显示电路怎么设计?用单片机驱动吗?SIM900A上的显示设备接口跟哪些口连接?
发表于 04-23 14:56
PIC16F62X-PIC16F627A/628A/648A Migration
This document is intended to describe the functional
发表于 05-08 14:55
•30次下载
评论