導航:首頁 > 操作系統 > 單片機gsm發簡訊

單片機gsm發簡訊

發布時間:2022-11-27 23:40:02

『壹』 單片機與GSM模塊通信

先解決好單片機與GSM模塊的線路連接問題,然後,單片機可通過GSM模塊給你手機發信息
也能收到手機向GSM模塊發送的信息;
那麼手機向單片機發指令的方式,比如採用簡訊方式,那麼單片機就可從收到的簡訊上提取你定義的指令了

『貳』 單片機控制GSM模塊發送簡訊

1、成品的程序只要適合你的單片機並且可以完成你的要求,下載到單片機之後就可以了
2、你的目的是單片機控制GSM模塊,所以在調試之後不必須將單片機和電腦連接,只需將單片機和模塊相連,若是連接了可以用來監視單片機發送的命令和模塊返回命令是否正確。
3、將你想要發送的命令編成程序中的字元串,單片機通過串口將命令發送給模塊,模塊接收到命令後就能完成相應的動作,並有可能返回一些語句以便確認(由於我的單片機和模塊跟你的型號不一樣,所以具體的過程或許不一樣)
4、AT指令的話通過查手冊可以看到,你可以先將模塊通過串口跟電腦相連,並通過電腦中的「串口調試助手」軟體來測試自己的AT命令是否正確或者是否需要,篩選了自己需要的命令之後就可以編程,最後燒錄到單片機中實現你想要的結果了。

『叄』 單片機+GSM模塊,上電發簡訊一直在發,如何只發一條

while(1)
{
delay(1);
uart1_putstring("AT+CIMI\r\n");
delay(10);
for(i=0;i<50;i++)
{
if (strstr(uart_buf, "AT+CIMI")&& strstr(uart_buf, "OK"))
{
i=5;
break;
}
}
if(i==5)break;

}

去掉while(1)試試,變成如下:
void main(void)
{
uint8 i;
uart0_init(); // 串口初始化
gsm_init(); // TC35初始化
EA = 1; // 使能中斷
while(1)
{
IGT = 1;
delay(100);
IGT = 0;
delay(100);
IGT = 1;
delay(100);
delay(100);
// 檢測TC35是否啟動

break;
}

delay(1);
uart1_putstring("AT+CIMI\r\n");
delay(10);
for(i=0;i<50;i++)
{
if (strstr(uart_buf, "AT+CIMI")&& strstr(uart_buf, "OK"))
{
i=5;
break;
}
}
if(i==5)break;

LED2 = 1;

uart0_flush_buf ();
uart1_flush_buf();
gsm_send_back("AT\r\n");
gsm_send_back("AT+CMGF=1\r\n");
gsm_send_back("AT+CSMP=17,167,0,0\r\n");
gsm_send_back("AT+CSCS=GSM\r\n");
gsm_send_back("AT+CMGS=13645168751\r\n");
gsm_send_back("hello\x01A");

}//對應主函數

『肆』 我在做單片機寫指令到GSM讓GSM發簡訊到指定手機號,求資料或QQ幫助

我以前編寫的51單片機通過SIM300模塊用GPRS把採集到的溫度發送到設定的TCP伺服器,你可以看看,發簡訊很簡單,根據AT指令修改一下前面的代碼即可。

/*8位共陽數碼管,18b20接P3^3,11.0592晶振*/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar th,tl;//存放採集溫度高8位,低8位
uchar temp_int,temp_dot;//存放轉換後的溫度整數部分和小數部分
sbit dq=P3^3; //18b20數據介面
bit stat_18b20; //18b20初始化返回狀態
uchar ctrl_z=0x1a;//GPRS數據發送結束標識ctrl+z鍵16進制碼
uchar ATCLPORT[]="AT+CLPORT=\"TCP\",\"5256\"\r"; //設置本地GPRS通信協議以及埠號
uchar ATCIPSTART[]="AT+CIPSTART=\"TCP\",\"121.233.142.158\",\"6000\"\r"; //連接TCP伺服器
uchar ATCIPSEND[]="AT+CIPSEND\r"; //啟動數據發送命令
void uart_init(); //串口初始化
void delayus(uint xus); //延時微秒
void delayms(uint xms); //延時毫秒
init_18b20(); //18b20初始化
readchar(); //讀一個位元組
void writechar(uchar dat); //寫一個位元組
void get_temp(); //取溫度
void temp_convert(); //轉換溫度
void send_string(uchar *gprs_string); //給GPRS模塊發送字元串
void send_char(uchar);
void gprs_init(); //GPRS模塊初始化
void send_temp(); //通過GPRS模塊發送溫度
//--------------下面為主函數----------------
void main(void)
{
uart_init();
gprs_init();
while(1)
{
get_temp();
temp_convert();
send_temp();
}
}
void uart_init()
{
TMOD=0X20;
SCON=0X50;
TH1=0XFD;
TL1=0XFD;
TR1=1;
}
//--------------下面為延時操作函數----------------
void delayus(uint xus)
{
for(;xus>0;xus--);
}
void delayms(uint xms)
{
uint i;
uchar j;
for(i=0;i<xms;i++)
for(j=0;j<112;j++);
}
//--------------下面為DS18B20操作函數----------------
init_18b20()
{
stat_18b20=1;
dq=1;
delayus(5);
dq=0;
delayus(50);
dq=1;
delayus(5);
stat_18b20=dq;
delayus(60);
dq=1;
return(stat_18b20);
writechar(0x4e);
writechar(0x02);
writechar(0x01);
writechar(0x7f);
}
readchar()
{
uchar i,dat;
for(i=8;i>0;i--)
{
dq=0;
dat=dat>>1;
dq=1;
if(dq)
dat=dat|0x80;
delayus(4);
}
return(dat);
}
void writechar(uchar dat)
{
uchar i;
for(i=8;i>0;i--)
{
dq=0;
dq=dat&0x01;
delayus(5);
dq=1;
dat=dat>>1;
}
}
void get_temp()
{

init_18b20();
if(stat_18b20==0)
{
writechar(0xcc);
writechar(0x44);
delayms(50);
init_18b20();
writechar(0xcc);
writechar(0xbe);
tl=readchar();
th=readchar();

}
else
{
; //錯誤處理模塊
}
}
void temp_convert()
{
temp_int=((th&0x07)<<4)|((tl&0xf0)>>4);
temp_dot=tl&0x0f;
}
//--------------下面為SIM300操作函數----------------
void send_string(uchar *gprs_string)//指令字元串發送指令
{
while(*gprs_string)
{
SBUF = *gprs_string;
while(TI==0);
TI=0;
gprs_string++;
}
}
void send_char(uchar x)
{
SBUF=x;
while(TI==0);
TI=0;
}
void gprs_init()
{
send_string(ATCLPORT);
delayms(1000);
send_string(ATCIPSTART);
delayms(1000);
}
void send_temp()
{
send_string(ATCIPSEND);
send_char(temp_int);
send_char(temp_dot);
send_char(ctrl_z);
delayms(1000);
}

『伍』 單片機AT命令控制GSM模塊發送簡訊問題

"電腦的串口調試助手用AT命令控制GSM某塊發簡訊的時候,可以發送出去"說明modem解析沒有問題,有條件的話看看這時候modem收到的AT命令的格式是什麼樣的串,然後比較你現在發送的串在modem里收到的格式和正常的是否一致,這樣才會准確定位

『陸』 怎樣用51單片機控制GSM模塊發簡訊

按模塊手冊供電,接SIM卡等,程序裡面先發握手初始化等指令,然後再發兩條發信息的指令就可以了
一條是對方號碼,一條是簡訊內容,如果是中文就稍微麻煩點,要格式轉換

『柒』 430單片機控制GSM模塊發送簡訊時遇到的問題

你好,首先要確保你單片機要與GSM模塊連接好通過串口要經過MAX232,另外,要注意GSM模塊的啟動,就是要將按下啟動按鍵,按住不放持續一秒左右,等待GSM模塊啟動。還有就是把手機卡放上固定好。

『捌』 單片機與GSM之間信息是怎麼傳遞啊

是通過串列口傳遞的,你先用電腦串口助手調試單片機的串口,單片機與電腦之間通過串口調試助手通信成功了,再電腦和模塊用串口助手調通了,最後將單片機與模塊通過串口連接,一般用RS232或者TTL電平通信,兩者的連接方式是不一樣的,一般GSM的使用說明裡面都說的很清楚

單片機將AT指令通過串列口發送給GSM來控制GSM發送簡訊撥打電話或執行其他的操作

如果沒有GSM或AT指令的資料可留下郵箱我給你發一份

『玖』 單片機控制GSM模塊發簡訊,程序

void send(uint sdata)--這是發送一個位元組的函數
{
SBUF=sdata;
while(TI==0);
TI=0;
}

send ("AT+CMGF=0\r\n");
send ("AT+CMGS=25\r\n");

發送一個位元組的函數,在這里,你卻用它發送字元串?

----
單片機發出的東西,你先不要急著送到手機模塊。
先送到 PC 的串口助手,看看,你都發出了什麼。

『拾』 請教單片機控制GSM發送簡訊給手機問題

直接發送(SMS+手機號碼+#+簡訊內容),按照十六進制發就行了 查查表 內容用unicode編碼

閱讀全文

與單片機gsm發簡訊相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163