华为手机传p3 :c52单片机和3G通信模块华为MU-509通信

太平洋在线下载 256 0

  有人做过单片机和3G模块的通信吗?现在手头上有STC89C52和华为的MU-509华为手机传p3 。想问一下它真的和TC35i是太平洋在线xg111xg111net企业邮局一样用的吗?目前用XP的超级终端试了太平洋在线一下AT指令,能发短信和接电话。接下来想通过单片机控制3G模块发短信,就只接了TXDO、RXD1、VUBS、GND,找了一些SIM900的程序,并不能用,感觉接线和程序都应该有问题。该怎么接线啊。。求大神给一点意见,万分感谢!!!

  这是单片机c52的程序

  #include <reg52.h>

  #include <absacc.h>

  #include <stdio.h>

  #include <math.h>

  #include <stdlib.h>

  #include <intrins.h>

  #define uint unsigned int

  #define uchar unsigned char

  sbit Send_SMS_Text_key=P3^0; //发Text格式短信按键

  sbit Send_SMS_PDU_key=P3^1; //发PDU格式短信按键

  sbit LED0=P1^0;

  sbit LED1=P1^1;

  sbit LED2=P1^2;

  sbit LED3=P1^3;

  sbit LED4=P1^4;

  sbit LED5=P1^5;

  sbit LED6=P1^6;

  sbit LED7=P1^7;

  uchar code PhoneCall[]="18370993767";

  uchar code SMS_send[]= "AT+CMGS=";

  uchar code SMS_TXET[]= "AT+CMGF=1";//发送数据为TXET格式

  uchar code SMS_PDU[]= "AT+CMGF=0";//发送数据为PDU格式

  uchar code Sms[]="test ok!!";

  uchar code Byte_num[]="20"; //短信内容字节长度

  uchar code Sms2_Pdu[]="0891683108200105F011000D91688173905904F10004000168"; //(8173903967F7)括号里的数为接收短信的手机号码 内容是:您好

  delay(uint ms)// 延时子程序

  uchar i;

  while(ms--)

  for(i=0;i<120;i++);

  函数名称:Print_Char

  函数功能:发送单个字符

  入口参数:ch 出口参数:无

  Print_Char(uchar ch)//发送单个字符

  SBUF=ch; //送入缓冲区

  while(TI!=1); //等待发送完毕

  TI=0; //软件清零

  函数名称:Print_Str

  函数功能:发送字符串

  入口参数:*str 出口参数:无

  Print_Str(uchar *str)//发送字符串

  while(*str!='0')

  Print_Char(*str);

  str++;

  函数名称:Ini_UART

  函数功能:串口初始化、定时器初始化

  入口参数:无 出口参数:无

  Ini_UART(void)//串口初始化、定时器初始化

  SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr

  //UART为模式1华为手机传p3 ,8位数据,允许接收

  TMOD |= 0x21 ; //TMOD: timer 1, mode 2, 8-bit reload

  //定时器1为模式2,8位自动重装

  PCON |= 0x80 ; //SMOD=1;

  TH1 = 0xFD ; //Baud:19200 fosc="11".0592MHz

  IE |= 0x90 ; //Enable Serial Interrupt

  TR1 = 1 ; // timer 1 run

  TI=1;

  函数名称:GSM_TEXT

  函数功能:设置发送数据为TXET格式

  入口参数:无 出口参数:无

  void GSM_TEXT() //设置GSM为TEXT格式

  Print_Str(SMS_TXET); //发送设置指令

  Print_Str("rn"); //发送回车

  ES=1;

  delay(3000);

  函数名称:GSM_TEXT_SMS

  函数功能:发送数据为TXET格式的短信内容

  入口参数:无 出口参数:无

  void GSM_TEXT_SMS() //发送TEXT格式内容

  Print_Str(SMS_send);

  Print_Str(PhoneCall);

  Print_Str("rn"); //发送回车

  delay(3000);

  Print_Str(Sms);

  Print_Char(0x1a); //发送短息内容结束符对应的ASCII为0x1a

  ES=1;

  delay(1000);

  delay(5000);

  函数名称:GSM_PDU

  函数功能:设置发送数据为PDU格式

  入口参数:无 出口参数:无

  void GSM_PDU() //设置GSM为PDU格式

  Print_Str(SMS_PDU); //发送设置指令

  Print_Str("rn"); //发送回车

  ES=1;

  delay(1000);

  函数名称:GSM_PDU_SMS

  函数功能:发送数据为PDU格式的短信内容

  入口参数:无 出口参数:无

  void GSM_PDU_SMS() //发送PDU格式内容

  Print_Str(SMS_send);

  Print_Str(Byte_num);

  Print_Str("rn"); //发送回车

  delay(3000);

  Print_Str(Sms2_Pdu);

  //Print_Str(Sms);

  Print_Char(0x1a); //发送短息内容结束符对应的ASCII为0x1a

  ES=1;

  delay(1000);

  delay(5000);

  函数名称:main

  函数功能:主函数

  void main()

  Ini_UART();

  while(1)

  if(!Send_SMS_Text_key)

  GSM_TEXT();

  GSM_TEXT_SMS();

  LED0=!LED0;

  else if(!Send_SMS_PDU_key)

  GSM_PDU();

  GSM_PDU_SMS();

  LED1=!LED1;

标签: 华为 通信 单片机 模块 c52

抱歉,评论功能暂时关闭!