❶ 求用单片机AT89C51控制TC35i发送短信的c语言程序!急!!!!
smc.c:
// Header:    	tc35操作函数
// File Name: 	TC35.C
// Author:	  	兴创科技
#include "hardware.h"
#include "SMS.h"
extern uchar numbuff[];
void delay(uint m)								//延时m*0.2ms
{
	uchar n;
	for(;m>0;m--)
		for(n=100;n>0;n--);
}
void Sendcmd(uchar *p)				//发送AT命令
{	
 	while(*p)
 	{
	 	SBUF=*(p++);
		while(TI==0);
		TI=0;
	}   
}
void Sendchar(uchar c)				//发送一个字符
{ 
    TI=0;   
    SBUF=c;   
    while(TI==0);   
    TI=0;   
}
void Init_tc35(void)				//判断是否连接TC35
{
	uint i=0xffff;
	rcount=0;
	receive_ok=0;
	Sendcmd("AT\r\n");   
	while(receive_ok==0)
	{
		i--;
		if(i==0)		 			//超时还未响应则返回
		{
			rcount=0;
			receive_ok=0;
			return;
		} 
	}	
	receive_ok=0;
 	rcount=0;
    delay(4000);
 	i=0xffff;
 	Sendcmd("AT&F\r\n");	   		//初始化	   
 	while(receive_ok==0)
    {
		i--;
	 	if(i==0)		 			//超时还未响应则返回
	  	{
			rcount=0;
        	receive_ok=0;
	   	return;
		} 
	}
	receive_ok=0;
	rcount=0;
    delay(4000);
 	i=0xffff;
 	Sendcmd("AT+IPR=4800\r\n");	   		//设置波特率	   
 	while(receive_ok==0)
    {
		i--;
	 	if(i==0)		 			//超时还未响应则返回
	  	{
			rcount=0;
        	receive_ok=0;
	   	return;
		} 
	}
	receive_ok=0;
	rcount=0;
    delay(4000);
 	i=0xffff;
 	Sendcmd("AT+CMGF=1\r\n");	   		//设置短消息格式	   
 	while(receive_ok==0)
    {
		i--;
	 	if(i==0)		 			//超时还未响应则返回
	  	{
			rcount=0;
        	receive_ok=0;
	   	return;
		} 
	}
	receive_ok=0;
	rcount=0;
    delay(4000);
 	i=0xffff;
 	Sendcmd("AT+CSCS=");	   		//设置字符集为“GSM”
	Sendchar('"');
	Sendcmd("GSM");
	Sendchar('"');
	Sendchar(0x0D);
	Sendchar(0x0A);		   
 	while(receive_ok==0)
    {
		i--;
	 	if(i==0)		 			//超时还未响应则返回
	  	{
			rcount=0;
        	receive_ok=0;
	   	return;
		} 
	}
	receive_ok=0;
	rcount=0;
 	tc35_init_ok=1;    				//全部初始化完毕置标志
}
void Sendsms(uchar *q)				//向指定的号码发送短消息
{
	ulong i=0x1ffff;
 	rcount=0;						//数据缓冲区指针回0
	Sendcmd("AT+CMGS=");
	Sendchar('"');
	Sendcmd(numbuff);
	Sendchar('"');
	Sendchar(0x0D);
	Sendchar(0x0A);
	while(rbuff[rcount-2]!='>')
   	{
		i--;		   
		if(i==0)
		{
			rcount=0;
			receive_ok=0;
			return;				   //超时返回
		}			
    }
	Sendcmd(q);	
	Sendchar(0x1A); //发送短信
	Sendchar(0x0D);
    Sendchar(0x0A);
 				
	receive_ok=0;
	i=0x5fffff;    					//发送短消息超时处理发送等待5s比较安全
	while(receive_ok==0)
	{
		i--;
		if(i==0)		 			//超时还未响应则返回
		{
			rcount=0;
			receive_ok=0;
			return;
		} 
	}
	receive_ok=0;
	rcount=0;
}
smc.h
// Header:    	tc35头文件
// File Name: 	SMS.H
// Author:	  	Yoran
// Date:	  	2008/05/12
#ifndef __SMS_H__
#define __SMS_H__
#include <reg52.H>
#include <hardware.H>
extern uchar 	idata rbuff[];
extern uchar  	data databuff[];
extern uchar	rcount;
extern bit		tc35_init_ok;
extern bit		receive_ok;
extern bit   	new_sms;
void Init_tc35(void);			//判断是否连接TC35 
void Sendcmd(uchar *cmd);		//发送AT命令
void Sendchar(uchar c);			//发送一个字符
void Sendsms(uchar *q);			//向指定的号码发送短消息
#endif
main.c
// Header:    	XC-TC35短信猫测试程序
// File Name: 	发送英文短信.C
// Author:	  	兴创科技
//                           P2^4---//发短信
#include <reg52.h>
#include <string.h>
#include "hardware.h"
#include "sms.h"
#include "sms.c"
//LCD Start
uchar code table[]="Welcome...." ;
uchar code table1[]="No:1 is ON" ;
uchar code table2[]="No:2 is ON" ;
uchar code table3[]="No:1 2 are ON" ;
uchar i;
 //以下三个是定义LCD的引脚
 sbit lcden=P2^2;  //6
 sbit lcdwrite=P2^1; //5
 sbit lcdrs=P2^0;//4
 
//lcd的写指令
void write_com(uchar com)
{
 lcdrs=0;
 lcden=0;
 P0=com;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}
//lcd的写数据
void write_data(uchar da)
{
 lcdrs=1;
 lcden=0;
 P0=da;
 delay(5);
 lcden=1;
 delay(5);
 lcden=0;
}
//初始化
void init()
{
    lcdwrite=0;
    lcden=0;
 write_com(0x38); //16*2显示,5*7点阵,8位数据
 write_com(0x0c);//显示开,关光标
 write_com(0x06); //移动光标
 write_com(0x01);//清除LCD的显示内容
 
}
//LCD END
uchar 	idata rbuff[110];						//串口接收数据缓存区
uchar   numbuff[]="13217832221";  				//此处修改为需要接收短信的手机号码,注意要定义为字符串(\0)
uchar  	databuff[]="000000"; 					//数据缓存区,注意要定义为字符串(\0)
uchar	rcount;									//串口接收数据指针
				 
bit		tc35_init_ok;							//TC35注册成功初始化完成标志
bit		receive_ok;								//收到模块“ok”标志
bit     send_error;
bit     send_ok;
void initUart(void)					  			   
{	 //	RXD=1;
	//TXD=1;
 	TMOD=0x20;									//T1工作方式2,8位自动重装
 	SCON=0x40;									//串行口工作方式1,8位UTRA
 	TH1=0xfa;
 	TL1=0xfa;									//波特率发生器,波特率为4800
 	REN=1;	  									//允许串行接收
 	TR1=1;										//开波特率发生器T1
 	ES=1;										//开串行口中断
 	EA=1;										//开总中断
//	R=1;
//	T=1;
}
void RECEIVE_DATA(void) interrupt 4	  			//接收tC35发送的数据并缓存
{ 
	ES=0;
	if(RI)
   	{
		rbuff[rcount++]=SBUF;
    	RI=0;
	}
  	//判断是否接收完毕
  	if((rbuff[rcount-1]==0x0a)&&(rbuff[rcount-2]==0x0d)&&(rbuff[rcount-3]==0x4b)&&(rbuff[rcount-4]==0x4f))
	{					//换行					 //回车						
		receive_ok=1;
	}
	//判断是否为新短消息指示	  
  	if((rbuff[rcount-14]=='C')&&(rbuff[rcount-13]=='M')&&(rbuff[rcount-12]=='T')&&(rbuff[rcount-11]=='I'))
    {							                                                           							 	     //换行
		new_sms=1;
	}
	else  new_sms=0;
  	if(((rbuff[rcount-17]=='C')&&(rbuff[rcount-16]=='M')&&(rbuff[rcount-15]=='G')&&(rbuff[rcount-14]=='S')&&(rbuff[rcount-4]==0x4f)&&(rbuff[rcount-3]==0x4b)&&(rbuff[rcount-2]==0x0d)&&(rbuff[rcount-1]==0x0a))|((rbuff[rcount-16]=='C')&&(rbuff[rcount-15]=='M')&&(rbuff[rcount-14]=='G')&&(rbuff[rcount-13]=='S')&&(rbuff[rcount-4]==0x4f)&&(rbuff[rcount-3]==0x4b)&&(rbuff[rcount-2]==0x0d)&&(rbuff[rcount-1]==0x0a)))
    {							                                                           							 	     //换行
		send_ok=1;
	}
	else  send_ok=0;
  	if((rbuff[rcount-7]=='E')&&(rbuff[rcount-6]=='R')&&(rbuff[rcount-5]=='R')&&(rbuff[rcount-4]=='O')&&(rbuff[rcount-3]=='R'))
    {							                                                           							 	     //换行
		send_error=1;
	}
	else  send_error=0;
	if(rcount>109)rcount=0;
	ES=1; 
}
void keyboard()
{
	if(!(K1&K2&K3&K4))
	{
		delay(10);
		if(!(K1&K2&K3&K4))
		{
			if(K1==0)
			{
		    Sendcmd("ATD13217832221;\r\n");	 //按键1拨打电话测试语音通话
			}
			if(K3==0&&K4==0)
			{
		    Sendsms("The Light No:1 and 2 are ON!");	 //发送英文短信
			write_com(0x01);
			delay(30);
             for(i=0;i<13;i++)    write_data(table3[i]);
			delay(2000);delay(2000);delay(2000);delay(2000);delay(2000);
			while(K3==0&&K4==0);
			}
			if(K3==0)
			{
		    Sendsms("The Light No:1 is ON!");	 //发送英文短信
			write_com(0x01);
			delay(30);
             for(i=0;i<10;i++)    write_data(table1[i]);
			delay(2000);delay(2000);delay(2000);delay(2000);delay(2000);
			while(K3==0);
			}
			if(K4==0)
			{
		    Sendsms("The Light No:2 is ON!");	 //发送英文短信
			write_com(0x01);
			delay(30);
             for(i=0;i<10;i++)    write_data(table2[i]);
			delay(2000);delay(2000);delay(2000);delay(2000);delay(2000);
			while(K4==0);
			}	
			write_com(0x01);
	        write_com(0x80+1);
             for(i=0;i<11;i++)    write_data(table[i]);
			rcount=0;		  
				
		while(!(K1&K2&K3&K4));	  //按键释放	
	 	}
	} 
}
void main(void)		
{
	uchar  times=0;				 
	uchar m=0;
	tc35_init_ok=0;
	
    init();//LCD
	write_com(0x80+1);
     for(i=0;i<11;i++)    write_data(table[i]);
initUart();	  						//初始化串口
	Init_tc35();								//开启TC35
	delay(5000);
	delay(5000);
	delay(5000);
	delay(5000);
							
 	while(tc35_init_ok==0)  					//初始化TC35
 	{		
		Init_tc35();
		delay(4000);
		times++;
		if(times>15)
		{	
			times=0;
			delay(1000);					
			delay(500);
			delay(1000);
			delay(4000);delay(4000);delay(4000);
		}
	}
	if(tc35_init_ok)
	{		  
		BEEP=0;									   //初始化成功鸣叫一声
		delay(2000);
		BEEP=1;
		delay(2000);
		BEEP=0;
	}			  						
 	while(1)	  					
 	{
	 	
		keyboard();
  	}		    			
 
}
❷ 求助C语言或者C++语言手机键盘发短信的编程,...高分悬赏..
自己写不太现实.
❸ 求用单片机控制手机模块发送短信的C语言程序
就是ASCII码额,程序中就是发送该ASCII码对应的16进制数过去就行了,AT+CMGS直接字节可以
strcpy(&TransPt,“AT+CMGS”),AT指令中最后回车对应的我记得好像是0X0D 0X0A,很久之前用过,记不清了
❹ 求一个单片机C语言程序,实现单片机控制Q2358c模块发短信打电话
这个简单,单片机TX,RX和模块的交叉接上,gnd对接上,然后单片机通过串口发送AT指令过去。
❺ 求linux下C语言编程的通信模块实现拨号与收发短信功能的源代码!
你的是 TC35么,直接初始化串口,然后发送At指令AT+CMGC 发送短信AT+CMGR接收短信,然后通过串口查询,看有没有受到Ok,收到了说明发送成功,我这有8051单片机控制Tc35的源码
❻ 急求源码。用c语言模拟实现一个短息的收发。可以简单一点发送就是存储起来,可以实现查看等功能。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
void main(void)
{
    FILE *fp;
    char txt[500];
    int cmd;
    int i;
    time_t rawtime;
    struct tm * timeinfo;
    fp = fopen("msg.txt", "a+");
    if (NULL==fp)
    {
        printf("open file error!\n");
        return;
    }
    while (1)
    {
        printf("输入命令(1:收短信,2:发短信, 0:退出):");
        scanf("%d",&cmd);
        switch(cmd) {
            case 1:
                i = 0;
                fseek(fp, 0, SEEK_SET); //跳到文件开头
                while(NULL !=fgets(txt, 500, fp))
                {
                    i++;
                    printf("msg[%d]: %s", i, txt);
                }
                break;
            case 2:
                fseek(fp, 0, SEEK_END); //从文件结尾开始写入
                time ( &rawtime );
                timeinfo = localtime ( &rawtime );
                asctime (timeinfo);
                fprintf (fp, "[%4d-%02d-%02d %02d:%02d:%02d] ",1900+timeinfo->tm_year, 1+timeinfo->tm_mon, \
                            timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
                printf("\n输入命令短信内容(不超过500个字符):");
                scanf("%s", txt);
                fprintf(fp, "%s\n", txt);
                break;
            case 0:
                fclose(fp);
                return; //退出
            default:
                printf("未定义命令!\n");
                break;
        }
    }
}
❼ C语言短信接口开发,好实现吗
楼上说的是短信模块的开发办法,如果是做监控或者野外的提醒终端 应该可以
 
目前大部分都是用做应用集成,采用运营商提供的网关接口开发,如速达移动的接口,适合集成到各种应用。 开发挺简单,具体服务商都会提供给你文档和调用代码,具体你可以咨询下sudas
❽ 用单片机控制手机模块发送PDU短信的C语言程序
我想楼主的意思是不是想在单片机的某个输入口上安装的按钮,按钮按下后短信就发出去了。其实这很简单,你要用单片机的串行口跟TC35通讯。首先你先将单片机的波特率定义的和TC35一致,然后根据PDU格式将你要发送的短信内容编码后存放在单片机里,程序检测到控制端电平变化后就调用发送子程序按照AT指令的格式发送就完了。不过这样你只能发送固定内容的短信。
❾ C语言要短信彩信发送接口,求达人指点!北京的!
开发过c调用彩信的
 
接口要读懂,特别是封装彩信内容时 要读取图片等
 
具体你可以问问速达移动的技术,他们接口稳定,服务也很好
❿ 求一个用单片机控制gsm模块发送短信的c语言程序,谢谢了
如果只发送ASCII短信的话程序比较简单,发送中文的就比较复杂了。另外,对于不同型号的GSM模块,发送中文短信的程序略有差别,不知你是哪一种需求。
