#include #include #include #define uint unsigned int #define uchar unsigned char #define RST 0X01 #define CMGF 0X02 #define CMGD 0X03 #define CREG 0X04 #define CMGR 0X05 #define CMGS 0X06 #define CSCA 0X07 #define ATDAT 0X08 #define TC35RET 0X00 uchar i_tmp,j_tmp; /*--------------------------/ 寄存器定义 ---------------------------*/ uchar TC35_CON,ch; uchar read_flag; uchar i_TC35_RECE; uchar i_receive, TC35_RE[80], TC35_MAX, i_TC35; void delay(uint); void init_serialcom( void ); void send_uart( unsigned char); void ATNAME(void); void AT_CMGS(void); void AT_CSCA(void); void AT_RST(void); void AT_CREG(void); void AT_CMGF(void); void AT_CMGR(void); void AT_CMGD(void); /*--------------------------/ 延时函数定义 /--------------------------*/ void main(void) {P1=0XFF; P2=0XFF; P3=0Xff; // init_devices(); init_serialcom(); //初始化串口 delay(100); P2=0XFF; TC35_MAX=0; AT_RST(); while(1) {delay(100); if(TC35_MAX>0) { if(TC35_CON==RST){ if((TC35_RE[7]=='O')&&(TC35_RE[8]=='K')) { TC35_CON=TC35RET;// delay(100); AT_CMGF();} else{P1=(0XFF-0X02);} } else if(TC35_CON==CMGF){ if((TC35_RE[12]=='O')&&(TC35_RE[13]=='K')) {TC35_CON=TC35RET; // delay(100); AT_CREG();} else{P1=(0XFF-0X02);} } else if(TC35_CON==CREG){ if(((TC35_RE[18]=='0')&&(TC35_RE[20]=='1'))||((TC35_RE[18]=='0')&&(TC35_RE[20]=='5'))) { P1=0XFF; TC35_CON=TC35RET;AT_CMGD();} else{P1=(0XFF-0X02);AT_CREG();} } else if(TC35_CON==CMGR){ if(TC35_MAX<=30){AT_CMGR();} else //if((TC35_MAX==77)||(TC35_MAX==79)) {delay(100); P1=0XFF; if(TC35_RE[69]=='0') {P2=(0XFF-0X01);P0=0XFF;TC35_CON=TC35RET;delay(100);AT_CMGD();} else if(TC35_RE[69]=='1') {P2=(0XFF-0X02);P0=0XFE;TC35_CON=TC35RET;delay(100);AT_CMGD();} else if(TC35_RE[69]=='2') {P2=(0XFF-0X04);P1=0XFF;TC35_CON=TC35RET;delay(100);AT_CMGD();} else if(TC35_RE[69]=='3') {P2=(0XFF-0X08);P1=0XFF;TC35_CON=TC35RET;delay(100);AT_CMGD();} else if(TC35_RE[69]=='4') {P2=(0XFF-0X10);P1=0XFF;TC35_CON=TC35RET;delay(100);AT_CMGD();} else if(TC35_RE[69]=='5') {P2=(0XFF-0X20);P1=0XFF;TC35_CON=TC35RET;delay(100);AT_CMGD();} else if(TC35_RE[69]=='6') {P2=(0XFF-0X40);P1=0XFF;TC35_CON=TC35RET;delay(100);AT_CMGD();} else if(TC35_RE[69]=='7') {P2=(0XFF-0X80);P1=0XFF;TC35_CON=TC35RET;delay(100);AT_CMGD();} else{TC35_CON=TC35RET;AT_CMGR();} } } else if(TC35_CON==CMGD){delay(100); if((TC35_RE[12]=='O')&&(TC35_RE[13]=='K')) {P1=0XFF;delay(100);AT_CSCA();} else{P1=(0XFF-0X02);} } //填写信息中心号 else if(TC35_CON==CSCA){delay(100); if((TC35_RE[25]=='O')&&(TC35_RE[26]=='K')) {P1=0XFF;delay(100);AT_CMGS();} else{P1=(0XFF-0X02);} } //填写发送内容 else if(TC35_CON==CMGS){delay(100); if((TC35_RE[22]==0X3E)&&(TC35_RE[23]==0X20)) {P1=0XFF;delay(100);ATNAME();} else{P1=(0XFF-0X02);} } //发送完毕返回继续扫描接收 else if(TC35_CON==ATDAT){delay(100); if((TC35_RE[0]=='+')||(TC35_RE[0]==0x1A)) {P1=0XFF;delay(100);AT_CMGR();} else{P1=(0XFF-0X02);} } //send_uart(TC35_MAX); //复位接收组 for(i_TC35=0;i_TC35<=TC35_MAX;i_TC35++) {TC35_RE[i_TC35]=0;} i_TC35_RECE=0; TC35_MAX=0; } } }