|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
/*************************************************** 以上函数主要为主机自动发出的和接收的
*************************************************/ /********************************************* 以下函数主要处理来电和来信息
***********************************************/ void fsata()//发送ATA,接电话 { ES=0; //发送数据,关掉串口中断 i=0;
while(ata!='\0') //写入数据 {
SBUF = ata; while(!TI) ; //等待数据发完 TI = 0; i++; }
SBUF=0x0d; while(!TI); TI = 0; ES = 1; }
void jdh() //接电话函数 { if(jdhkg==1) { jdhkg = 0; //RING一次,蜂鸣一次 ES = 0; fsata(); //接听电话
ES = 1; }
}
/**************************************************/
/************************************************/
void init_duanxin()//短信格式初始化设置GMS字符集,新消息提示 {
fsat();
delayms(10);
fscmgf(); delayms(10);
fscsmp(); delayms(30);
fscscs(); delayms(30);
fscnmi(); //发送AT+CNMI=2,1 delayms(10); }
void fdx(uchar *ptr1) //发出一条短信 { fscmgs(); //发送电话号码 delayms(150); fsduanxin(ptr1); //发送短信内容 delayms(150); }
void fscnmi() //发送AT+CNMI=2,1 { ES = 0; //发送数据,关掉串口中断 i = 0;
while(cnmi!='\0') //写入数据 { SBUF = cnmi; while(!TI) //等待数据发完 TI = 0; i++; }
SBUF = 0x0d; while(!TI); TI = 0; ES = 1; }
void jcdx() //检测短信内容并分支执行 {
if(sbkg==1) { sbkg = 0; // 复位,以识别下一条短信 if(strcmp(mml,led_sta) == 0) { led = 0; //点亮LED } if(strcmp(mml,led_stp) == 0) { led = 1; //熄灭LED }
if(strcmp(mml,jdq_sta)== 0) { jdq = 0; } if(strcmp(mml,jdq_stp)== 0)
{ jdq = 1; } fscmgd(); //发送AT+CMGD=1,删除第一条短信 i=0;
while((aa!=0x0d)&&(i<8000)) //等待确认删除短信成功 { i++; } } }
void exter0() interrupt 0 { i=0;
while(atd!='\0') //写入数据 {
SBUF = atd; while(!TI) ; //等待数据发完 TI = 0; i++; }
SBUF = 0x0d; while(!TI); TI = 0;
while(zd==0); zd = 1; } |
|