在本論壇上搜的一個sim900a改的,我只是用做單片機設計就夠了,其他請自己改
51hei圖片20191225192119.jpg (2.81 MB, 下載次數: 33)
下載附件
2019-12-25 19:18 上傳
51hei圖片20191225192108.jpg (48.37 KB, 下載次數: 25)
下載附件
2019-12-25 19:18 上傳
單片機源程序如下:
- void main(void)
- {
- uint aa=0;
- EA=1; //開總中斷
- uart_init(); //串口初始化
- OLED_Init(); //初始化OLED
- OLED_Clear() ;
- Rx_bit=0;
- Uart_SendString("AT+CLIP=1\r\n");
- delay(500);
- Uart_SendString("AT+CMGF=1\r\n"); //設置sim900模塊為英文方式發送短信
- delay(500);
- Uart_SendString("AT+CMGD=1\r\n"); //清除所有短信
- delay(500);
- Uart_SendString("AT+CSCS=\"GSM\"\r"); //設置sim900模塊GSM字符集
- delay(500);
- Uart_SendString("AT+CMGF=1\r"); //設置sim900模塊為英文方式發送短信
- delay(500);
- Clear_Rxdata(Rx_data_length);
- delay(500);
- memset(Rx_data,' ',sizeof(Rx_data)); //Rx_data數組中元素都為空格
- OLED_ShowString(10,0,w);
- while(1)
- {
- EA=1;
- EX0=1; //開外部中斷0
- IT0=0; //脈沖觸發方式
- Response_receive_SMS(); //循環檢測是否收到短信,若收到短信則 Response_receive_SMS_flag==1
- delay(100);
- Rx_bit=0;
- if(Response_receive_SMS_flag==1)
- {
- OLED_Clear();
- Uart_SendString("AT+CMGR=1\r\n"); //短信讀取
- delay(2000);
- // write_1602com(one);
- for(i=0;i<16;i++)
- {
- if(Rx_data[69+i] !='O'
- &&Rx_data[69+i+1]!='K'
- &&Rx_data[69+i+2]!='0') // 判斷是否結束
- {
- a[i]=Rx_data[69+i];
- OLED_ShowString(10,2,a);
- }
- }
- if(Rx_data[c] =='C'
- &&Rx_data[c+1]=='O'
- &&Rx_data[c+2]=='M'
- &&Rx_data[c+3]=='M'
- &&Rx_data[c+4]=='O'
- &&Rx_data[c+5]=='N') //判斷的短信內容,可以不止5位
- {
- aa=1;
- }
- Response_receive_SMS_flag=0;
- Clear_a(16);
- delay(100);
- Clear_Rxdata(Rx_data_length);
- delay(100);
- Uart_SendString("AT+CMGD=1\r\n"); //清除所有短信
- delay(100);
- Response_receive_SMS_flag=0;
- }
-
- delay(1000);
- if(aa==1)
- {
- delay(1000);
- Uart_SendString("AT+CMGS=\"");
- for(j=0;j<11;j++)
- {
- SBUF=Admin_num[j];
- while(TI==0);
- TI=0;
- }
- Uart_SendString("\"\r");
- delay(200);
- Uart_SendString("hello!"); //返回的短信內容
- delay(300);
- Uart_SendChar(0x1a);
- delay(1000);
- aa=0; }
- }
- }
復制代碼 全部資料51hei下載地址:
接發短信.zip
(150.78 KB, 下載次數: 76)
2019-12-25 19:22 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|