[原创] 【DIY--手机】季夏木槿:与SIM900A的初次见面

季夏木槿   2014-7-12 16:46 楼主
          这次DIY手机,用到的SIM900A是用AT指令进行通信的器件,之前从来没有接触过这方面的东西,怀一颗忐忑的心,不知道该怎么下手。从快递公司取回来模块后, 需要做的第一件事就是测试一下模块是不是可以正常工作。


      先用USB转串口模块将SIM900A模块和电脑连接好,然后按照AT指令手册用上位机发送了几条指令,就好像是向SIM900A大喊:喂~~你能听到我说话么?SIM900A模块很快作出反应:我听到了~~于是,上面机界面显示出来了反馈信息,这样的话,已经可以正常的和SIM900A模块进行通信了,那试试拨号功能。发送指令拨打10086,很顺利的听到了熟悉的声音:欢迎致电中国移动~~~~~然后一堆废话,这样的话,模块是没有问题了,接下来就是用MCU来控制它了。









IMG_20100101_080150.jpg





       把它和单片机连起来。SIM900A模块和单片机的连接特别方便,因为用MCU的UART串行口,所以只需要两根数据线就可以了,即单片机的RXD、TXD分别和SIM900A模块的TXD.RXD相连接即可。
    IMG_20140712_160045.jpg     IMG_20140712_160035.jpg







先进行最简单的测试---自动拨号
  1. //串行口初始化:波特率9600
  2. void init_UART(void)
  3. {
  4.         TMOD=0x20;//定时器1操作模式2:8位自动重载定时器
  5.         TH1=0xfd;//装入初值,波特率9600
  6.         TL1=0xfd;
  7.         TR1=1;//打开定时器
  8.         SM0=0;//设置串行通讯工作模式,(10为一部发送,波特率可变,由定时器1的溢出率控制)
  9.         SM1=1;//(同上)在此模式下,定时器溢出一次就发送一个位的数据
  10.         REN=1;//串行接收允许位(要先设置sm0sm1再开串行允许)
  11.         EA=1;//开总中断
  12.         ES=1;//开串行口中断       
  13. }

先写一个简单的发送函数


  1. //串行口发送数据
  2. void Uart_Send_string(uchar *str)
  3. {
  4.         while(*str!='\0')
  5.         {
  6.                 SBUF=*str;
  7.                 while(!TI);//等待发送完成信号(TI=1)出现
  8.                 TI=0;
  9.                 str++;
  10.         }
  11. }

自动拨号,进行最最简单的测试

  1. #include <REGX52.H>

  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. //以下是开机后拨打的手机号
  5. uchar num[] = "ATD10086;\r";

  6. void main()
  7. {
  8. init_UAR();//串行口初始化:波特率9600
  9.         while(1)
  10.         {
  11. Uart_Send_string(num);     //自动拨号
  12.                 DelaySec(20);        //延时20秒
  13. Uart_Send_string("ATH\r"); //挂机
  14.                 DelaySec(5);         //延时5秒
  15.         }
  16. }



        插入耳机,可以听到10086的声音,简单的测试就完成了。


         这只是最最简单的测试,什么都不用管,直接自动拨号然后挂断。但是,实际应用的话用单片机和SIM900A进行通信的话会是这么简单么??肯定不是,实际情况会比这复杂得多得多,欲知后事如何,请听下回分解吧~~~~


IMG_20100101_080732(1).jpg





        








哈喽,我是卡索KaSuo~~

回复评论 (4)

看来楼主买的模块跟我一样的。。有调STM32的吗
1084534438 欢迎交流  [加油,一切皆有可能]
点赞  2014-7-14 16:11
引用: RCSN 发表于 2014-7-14 16:11
看来楼主买的模块跟我一样的。。有调STM32的吗

送的资料里不是有的么
哈喽,我是卡索KaSuo~~
点赞  2014-7-14 19:39
我买的是SIM900a,可是和楼主的不一样,,,,,,目前连AT指令都不回应我、、、、、、、
  • SIM900a
  • SIM900a
  • SIM900a
点赞  2015-10-11 15:48
不插卡可以拔打电话吗
单片机软件/硬件交流群:127034610
点赞  2018-4-28 10:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复