sim900a程序,基于51单片机与sim900a相连接程序

发布时间:2023-06-25  

  51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。


  SIM900A模块是一款尺寸紧凑的GSM/GPRS模块,采用SMT封装,基于STE的单芯片案,采用ARM926EJ-S架构,性能强大,可以内置客户应用程序。可广泛应用于车载跟踪、车队管理、无线POS、手持PDA、智能抄表与电力监控等众多方向。


  程序说明:

  本程序运行后如果gprs模块找到服务商信号,就拨打指定电话。

  1.将自己的51单片机的串口1连接到GSM的tx rx gnd

  2.找到程序中前面的#define处,根据说明修改好自己的单片机配置,编译程序

  3.下载程序

  4.按下模块复位键,启动模块,等待信号灯闪烁变慢,复位单片机4.等待发送成功

  基于51单片机与sim900a相连接程序

  #include 《REGX52.H》

  #define uchar unsigned char

  #define uint unsigned int

  //以下是板子上LED的配置,把Px_x改成自己对应的脚。

  #define LED1_ON P1_0 = 0

  #define LED1_OFF P1_0 = 1

  #define LED2_ON P1_1 = 0

  #define LED2_OFF P1_1 = 1

  #define LED3_ON P1_2 = 0

  #define LED3_OFF P1_2 = 1

  #define LED4_ON P1_3 = 0

  #define LED4_OFF P1_3 = 1

  //以下是你的51单片机的晶振大小

  #define FOSC_110592M

  //#define FOSC_12M

  //以下是开机后发送到手机的内容,发送的号码在程序中修改。

  uchar sms_text[] = “123”;

  //注意,无论接收到信号还是发送完信号,都会进中断服务程序的

  /*初始化程序(必须使用,否则无法收发),次程序将会使用定时器1*/

  void SerialInti()//初始化程序(必须使用,否则无法收发)

  {

  TMOD=0x20;//定时器1操作模式2:8位自动重载定时器

  #ifdef FOSC_12M //在这里根据晶振大小设置不同的数值初始化串口

  TH1=0xf3;//装入初值,波特率2400

  TL1=0xf3;

  #else

  TH1=0xfd;//装入初值,波特率9600

  TL1=0xfd;

  #endif //end of SOC_12M

  TR1=1;//打开定时器

  SM0=0;//设置串行通讯工作模式,(10为一部发送,波特率可变,由定时器1的溢出率控制)

  SM1=1;//(同上)在此模式下,定时器溢出一次就发送一个位的数据

  REN=1;//串行接收允许位(要先设置sm0sm1再开串行允许)

  EA=1;//开总中断

  ES=1;//开串行口中断

  }

  /*串行通讯中断,收发完成将进入该中断*/

  void Serial_interrupt() interrupt 4

  {

  // a=SBUF;

  P2=SBUF;

  RI=0;//接收中断信号清零,表示将继续接收

  // flag=1;//进入中断的标志符号

  }

  void Uart1Send(uchar c)

  {

  SBUF=c;

  while(!TI);//等待发送完成信号(TI=1)出现

  TI=0;

  }//串行口连续发送char型数组,遇到终止号/0将停止

  void Uart1Sends(uchar *str)

  {

  while(*str!=‘ ’)

  {

  SBUF=*str;

  while(!TI);//等待发送完成信号(TI=1)出现

  TI=0;

  str++;

  }

  }

  //延时函数大概是1s钟,不过延时大的话不准。。。

  void DelaySec(int sec)

  {

  uint i , j= 0;

  for(i=0; i《sec; i++)

  {

  for(j=0; j《65535; j++)

  {

  }

  }

  }

  void main()

  {

  uchar i = 0;

  LED1_OFF;

  LED2_OFF;

  LED3_OFF;

  LED4_OFF;

  SerialInti();

  while(1)

  {

  LED1_ON;

  LED2_OFF;

  Uart1Sends(“AT+CMGF=1r”);

  DelaySec(3);//延时3秒

  Uart1Sends(“AT+CSCS=”GSM“r”);

  DelaySec(3);//延时3秒

  Uart1Sends(“AT+CSMP=17,167,0,250r”);//设备短信模式(手机自动保存模式)

  // Uart1Sends(“AT+CSMP=17,167,0,240r”);//设备短信模式(手机非自动保存模式)

  DelaySec(3);//延时3秒

  Uart1Sends(“AT+CMGS=”18332563682“r”);

  DelaySec(5);//延时3秒

  Uart1Sends(sms_text);

  Uart1Send(0x1a);

  LED2_ON;

  LED1_OFF;

  DelaySec(15);//延时20秒

  }

  }


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>