短信息分析:
“test OK\就是短信息内容。
短信息的存储容量与Ic卡有关,序号从1-N。 REC UNREAD\:代表短信息未读过。 REC READ\:已读过。
13307496548\:接收的手机号码。
04/08/17,22:24:32+02\:短信息发送的时间。 无短信息,TC35回应: AT+CMGR=3 +CMGR:0,,0
7、短信的删除方法 AT+CMGD=1回车
8、短信的发送方法 短信息的发送分成两步:
1:发送接收的手机号码,等待应答:“>\ AT+CMGS=\回车(目的地址) TC35回应:
AT+CMGS=\>
2: 输入短信息的内容(只能是英文):Test 回车
4、单片机控制TC35的方法
上面介绍了用PC机控制TC35的方法,我们只需将PC机输出的控制命令转化成单片机输出的指令
即可。 1、硬件连接
电路见下图只需设计一个TTL转RS232电平电路,连接到MCU的UART口,另一端直接连接到TC35。
2、指令输出的方法
单片机串口设置成模式1(9600,N,8,1),依次将AT+xxx以ASCII码形式输出到UART口;接收TC35
的数据采用中断方式。这里给出详细的程序清单(Keil C51),不介绍编程的方法。程序见下: //AT指令的定义
char code AT_Tc35[]=\//连机 char code Bps_Tc35[]=\//波特率 char code Text_Tc35[]=\//文本模式 char code Read_Tc35[]=\//读信息 char code Erase_Tc35[]=\//删除信息 char code Send_Tc35[]=\//发送信息 char code Creg_Tc35[]=\//注册 //模式设置
void UART_Init(void) {
SCON=0x50; //01010000b=>1模式scon,#11011000b; ES=l; }
//发送-个ASCII
void SendASC(unsigned char ASC) { bit es; es=ES;
ES=0;//关闭中断 TI=0; SBUF=ASC; while(!TI); TI=0; ES=es; )
//发送命令到TC35
void SendToTc35(unsigned char* p,unsigned char Long) {
while(Long--) {
SendASC(*p++); } }
// 通讯中断接收程序
void Rs485_Do(void) interrupt 4 using 1 { if(RI==l) { RI=\
RsBuq[RsPoint++]=SBUF; if fRsPoint>=sizeof(RsBuf)) {
RsPoint=\ } //数据处理 } }
// 发送AT连机命令 char code AT_Code[]=\void Send_AT(void) {
unsigned char *p; while(1) {
ClrRsBuf(RsBuf,sizeof(RsBuf)); SendToTC35(AT_Tc35,2); //\ SendASC(OVER);
//************等待应答“ok\ ES=\//必须中断 Delay(50);
P=\ if(p!=NULL) break; } )
//发送bps连机命令 void Send_BPS(void) {
SendToTc35(AT_Tc35,3); //\
SendToTc35(Bps_Tc35,sizeof(Bps_Tc35)-1);//\ SendASC(OVER); }
//设置文本 void SetText(void) {
SendToTc35(AT_Tc35,3); //\
SendToTc35(Text_tc35,sizeof(Text_tc35)-1);//\SendASC(OVER); Delay(100): //删除短信息
unsigned char EraseMsg(unsigned char index) {
unsigned char *p,i=20;
SendToTc35(AT_Tc35,3); //\
SendToTc35(Erase_Tc35,sizeof(Erase_Tc35)-1);//\ SendASC(index); SendASC(OVER); ES=1;
相关推荐: