版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、. . . . 中國礦業(yè)大學(xué)徐海學(xué)院通信系統(tǒng)設(shè)計姓 名: 鄒柯 學(xué)號: 22100804 專 業(yè): 信息10-1 題 目:SIM300C模塊AT命令分析專 題:通信系統(tǒng)設(shè)計 指導(dǎo)教師: 有鵬 設(shè)計地點(diǎn):電工電子實(shí)驗室 時 間: 2013.11 2013 年 11月 通信系統(tǒng)設(shè)計訓(xùn)練任務(wù)書學(xué)生 鄒柯 專業(yè)年級 信息10-1 學(xué)號 22100804 設(shè)計日期: 2013年11月11 日 至2013 年 6 月14 日設(shè)計題目:SIM300C模塊AT命令分析設(shè)計專題題目:通信系統(tǒng)設(shè)計設(shè)計主要容和要求:主要容:功能擴(kuò)展要求:指導(dǎo)教師簽字:摘 要本設(shè)計是基于嵌入式系統(tǒng)51單片機(jī)的智能控制平臺的設(shè)計,以以
2、SIM300C模塊為基本構(gòu)成,功能包括了短信溫度報警等非正常環(huán)境并且通過手機(jī)短信告知業(yè)主的功能。本論文首先闡述了AT命令基本定義;然后介紹了基本的AT命令,并對相關(guān)的AT命令進(jìn)行操作演示,接著又自己設(shè)計了針對AT命令的一些基本功能和基本相關(guān)功能模塊程序的介紹,最后對所本次通信系統(tǒng)設(shè)計實(shí)驗進(jìn)行了簡單的心得總結(jié)。關(guān)鍵詞:AT命令、通話功能、短信功能一、AT命令基本定義AT即Attention,AT命令集是從TE(Terminal Equipment)或DTE(Data Terminal Equipment)向TA(Terminal Adapter)或DCE(Data Communication E
3、quipment)發(fā)送的。通過TA、TE發(fā)送AT命令來控制MS(Mobile Station)的功能,與GSM網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行交互。 二、AT命令介紹(1)通話功能的實(shí)現(xiàn)ATA(呼叫應(yīng)答):當(dāng)模塊收到呼叫來電時,設(shè)置RING信號并向用戶發(fā)送“RING”,然后等待用戶應(yīng)答呼叫。用戶輸入ATA命令后,返回OK即完成應(yīng)答。 ATS0(自動應(yīng)答):S0參數(shù)控制自動應(yīng)答。自動應(yīng)答參數(shù)圍從1255,參數(shù)設(shè)置得太高的話,有可能在自動應(yīng)答之前就已經(jīng)掛斷。Ø ATS0=2 /2聲振鈴后自動應(yīng)答Ø OK /設(shè)置成功Ø ATS0? /查詢當(dāng)前設(shè)定值Ø 002Ø OK /
4、返回當(dāng)前設(shè)定值Ø ATS0=0 /無自動應(yīng)答Ø OKATD(呼叫撥號):ATD命令用于建立會話、數(shù)據(jù)業(yè)務(wù)或 業(yè)務(wù),也可以控制補(bǔ)充業(yè)務(wù)。對于數(shù)據(jù)或 業(yè)務(wù),用戶向模塊發(fā)送如下ASCII字符:Ø ATD<nb> <nb>為被叫對于語音,用戶向模塊發(fā)送如下ASCII字符:Ø ATD<nb>; <nb>為被叫 ATH(呼叫掛斷):用戶使用ATH來切斷與遠(yuǎn)端用戶的連接。在有多個的情況下,所有的連接都被釋放(包括正在通話掛起和等待的)。 ATDL(重?fù)埽河糜谥負(fù)茏罱艚械挠脩?。ATI(顯示產(chǎn)品識別信息)。 (2)短信功
5、能的實(shí)現(xiàn)AT+CMGF(選擇消息格式):選擇消息為TEXT或PDU格式。用PDU格式,十六進(jìn)制表示的數(shù)據(jù)單元,包括所有頭信息的短消息,以二進(jìn)制方式傳送(寫成十六進(jìn)制的格式)。用TEXT格式,命令和響應(yīng)均為ASCII字符。 AT+CMGS(發(fā)送短消息):采用TEXT方式的命令格式:AT+CMGS=<da><toda>Text is entered (按Ctrl+Z發(fā)送出去/按ESC取消) 。采用PDU方式的命令格式:AT+CMGS=<length>PDU is entered (按Ctrl+Z發(fā)送出去/按ESC取消) AT+CMGR(讀取短消息):命令格式:A
6、T+CMGR=<index><index>為短消息在存中的存儲位置。AT+CMGD(刪除短消息):命令格式:AT+CMGD=<index><index>為短消息在存中的存儲位置。(3)其他功能的實(shí)現(xiàn)AT+CSQ(信號質(zhì)量報告):該命令用來檢測接收信號的強(qiáng)度指示(<rssi>)和信道誤碼率(<ber>),無論有沒有插入SIM卡。返回值圍為(031,99)和(07,99)。 查詢網(wǎng)絡(luò)登錄狀態(tài) 1 發(fā)送的AT命令:AT+CREG?<CR>2 返回消息:A +CREG:0,1 -登錄成功,本地登錄 OKB +CREG:
7、0,2 -正在搜索網(wǎng)絡(luò),正在登錄 OKC +CREG:0,3 -登錄失敗 OKD +CREG:0,5 -登錄成功,漫游(roaming) OK呼叫轉(zhuǎn)移與控制相關(guān)的AT命令:AT+CCFC=<reas>,<mode>,<>,模式其中,reas代表呼叫轉(zhuǎn)移的原因,mode代表呼叫轉(zhuǎn)移控制命令,代表呼叫轉(zhuǎn)移,必須用雙引號括起來。 A 設(shè)置無條件轉(zhuǎn)移,轉(zhuǎn)移為:u 命令:AT+CCFC=0,3,"+2”或者:AT+CCFC=0,3,"”,129u 應(yīng)答:+CCFC:l,1,“+2”B 設(shè)置遇忙轉(zhuǎn)移,轉(zhuǎn)移為:u 命令:AT+CCFC=!.3,“+2”
8、或者:AT+CCFC=I,3,"",129u 應(yīng)答:+CCFC:l,1,“+2”C 查詢呼叫轉(zhuǎn)移設(shè)置u 命令:AT+CCFC=I,2u 應(yīng)答:+CCFC:1,1,“+2”D 關(guān)閉無條件呼叫轉(zhuǎn)移功能u 命令:AT+CCFC=0,0u 應(yīng)答:+CCFC:0,1,“+2'”如果前面沒有設(shè)置無條件呼叫轉(zhuǎn)移,則應(yīng)答為:u 應(yīng)答:+CCFC:0,7E 刪除無條件呼叫轉(zhuǎn)移u 命令:AT+CCFC=0,4u 應(yīng)答:+CCFC:0,7來電顯示與控制 1相關(guān)的AT命令:AT+CLIP=0或1<CR>2應(yīng)答:OK當(dāng)來電顯示關(guān)閉時,如果來,將顯示“RING”;當(dāng)來電顯示打開(A
9、T+CLIP=1)時,如果來,將按如下方式顯示: RING +CLIP:“",129或: RING +CLIP:“+88”,145或 RING +CLIP:“”,129三、SIM300C模塊1.硬件的連接2. RS232串口連接:四、設(shè)計相關(guān)程序見附錄五、分析總結(jié)通過這次課程設(shè)計,使我加深了大四專業(yè)課知識的學(xué)習(xí)。讓我們能夠充分利用所學(xué)過的理論知識,同時也增強(qiáng)了自己調(diào)試、分析程序能力。通過上網(wǎng)查詢和查閱相關(guān)書籍資料,使我知道了AT命令操作演示工作原理,同時體會到團(tuán)隊合作的重要性。參考文獻(xiàn):1 有鵬.通信系統(tǒng)設(shè)計. 2013/11/12附錄:25 / 251. 實(shí)現(xiàn)溫度報警:設(shè)置報警溫度
10、,并且分別向已設(shè)定的手機(jī)發(fā)送短信:#include<at89x52.h>#include<intrins.h>#include <string.h>#define uchar unsigned char#define uint unsigned int#define FOSC_12M/設(shè)置晶振#define Font_code P0 /字符碼寫地址#define reg_code P2 /字位碼寫地址code uchar Show_Tab= 0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92
11、,/*5*/ 0x82,/*6*/ 0xF8,/*7*/0x80,/*8*/ 0x90,/*9*/ 0x88,/*A*/ 0x83,/*b*/ 0xC6,/*C*/ 0xA1,/*d*/ 0x86,/*E*/ 0x8E /*F*/;code uchar S_Tab8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar Display_Buffer8; /顯示緩沖區(qū)uchar bit_con; /字位碼掃描計數(shù)器/uchar code AT="AT" /握手信號/uchar code ATE="ATE" /關(guān)回顯/u
12、char code AT_CNMI="AT+CNMI=2,1"/設(shè)置這組參數(shù)來了新信息存在SIM卡/uchar code AT_CSCA="AT+CSCA="+00""/設(shè)置移動服務(wù)中心/uchar code AT_CSCA="AT+CSCA="+00""/設(shè)置聯(lián)通服務(wù)中心/uchar code AT_CMGF="AT+CMGF=1"/設(shè)置短信的格式為text格式/uchar code AT_CMGR="AT+CMGR="/讀取短信指令/uchar cod
13、e AT_CMGS="AT+CMGS="/發(fā)送短信指令/uchar code AT_CMGD="AT+CMGD="/發(fā)送短信指令/char RxBufRxBuf_N=0;/定義串口接收數(shù)據(jù)緩沖區(qū)/uchar RxPoint;/Rx緩沖區(qū)指針uchar code PhoneNum115="+76"/手機(jī)uchar code PhoneNum215="+78"uchar GsmRcv10 = 0;uchar GsmRcvAt10 = 0; uchar GsmRcvCnt = 0;bit GsmAtFlag=0;bit
14、sendflag;/0代表發(fā)送成功;1代表發(fā)送失敗bit timesendflag;/定時發(fā)送短信,10分鐘uchar Sms_Text = "luheng sb"uchar temperature;uchar Alarm_Temp;/報警溫度/uchar sms_temp=20,30,40,50,60,70;/uint ms_con,sec_con;/*/void delayus(unsigned char us)/delay us while(-us);/*/void delayms(unsigned char ms)/delay Ms while(-ms) delay
15、us(250); delayus(250); /*/void DelaySec(unsigned char s)while(s-)delayms(250);delayms(250);delayms(250);delayms(250);void SerialIni()/初始化程序TMOD|=0x20;/定時器1操作模式2:8位自動重載定時器#ifdef FOSC_12M /在這里根據(jù)晶振大小設(shè)置不同的數(shù)值初始化串口TH1=0xf3;/裝入初值,波特率2400TL1=0xf3;#else TH1=0xfd;/裝入初值,波特率9600TL1=0xfd;#endif /end of SOC_12M R
16、1=1;/打開定時器SM0=0;/設(shè)置串行通訊工作模式,(10為一部發(fā)送,波特率可變,由定時器1的溢出率控制)SM1=1;/(同上)在此模式下,定時器溢出一次就發(fā)送一個位的數(shù)據(jù)REN=1;/串行接收允許位(要先設(shè)置sm0sm1再開串行允許)EA=1;/開總中斷ES=1;/開串行口中斷void UartSendASC(uchar d)SBUF=d;while(!TI);TI=0;void UartSendString(uchar *str)while(*str)UartSendASC(*str) ;str+;void Serial_interrupt() interrupt 4 using 1u
17、char i = 0;if(RI = 1)/收到信息RI=0;/接收中斷信號清零,表示將繼續(xù)接收GsmRcvGsmRcvCnt = SBUF;/Uart1Send(tmp);GsmRcvCnt+;/收到了完整的AT指令,完整的AT指令是以0x0a 0x0d結(jié)尾的。故作此判斷,在接收的過程中是否收到0x0a 0x0dif(GsmRcvGsmRcvCnt-2 = 0x0d && GsmRcvGsmRcvCnt-1 = 0x0a && GsmRcvCnt >= 2)/一旦收到0x0a 0x0d,就將數(shù)據(jù)保存起來。用戶主函數(shù)的判斷。for(i=0; i<Gs
18、mRcvCnt; i+)GsmRcvAti = GsmRcvi;GsmRcvi = 0;GsmRcvCnt = 0;GsmAtFlag = 1;/收到了完整的at指令,通過這個標(biāo)志位置1,這樣主函數(shù)就知道去判斷了。else if(GsmRcvCnt >= 10)/因為存有限,收到了50個字符還是沒有看到0x0a 0x0d的話,就重新開始接收吧。GsmRcvCnt = 0;void Sim300Ini()while(GsmAtFlag = 0)UartSendString("atir");/設(shè)置sim300波特率DelaySec(1);/延時1秒GsmAtFlag =
19、0;while(1)UartSendString("AT+COPS?r");DelaySec(1);/延時1秒while(GsmAtFlag = 0);/if(strstr(GsmRcvAt, "CHINA MOBILE") )/檢測是否收到 CHINA MOBILE 服務(wù)商信息。如果收到證明是連接上網(wǎng)絡(luò)了if(strstr(GsmRcvAt, "OK") )/檢測是否收到 CHINA UNICOM 服務(wù)商信息。如果收到證明是連接上網(wǎng)絡(luò)了break;UartSendString("AT+CMGF=1r");/設(shè)置使
20、用TEXT格式發(fā)送短信,短信有兩種格式,另外一種是UDPDelaySec(1);/延時3秒UartSendString("AT+CSCS="GSM"r");/使用GSMDelaySec(1);/延時3秒/UartSendString("AT+CSMP=17,167,0,250r");/設(shè)備短信模式(手機(jī)自動保存模式,平時我們手機(jī)發(fā)送的是這類)UartSendString("AT+CSMP=17,167,0,240r");/設(shè)備短信模式(手機(jī)非自動保存模式)DelaySec(1);/延時3秒P1_2=0;void S
21、im300Tx1()UartSendString("AT+CMGS=");/設(shè)置發(fā)送的,自己修改成像發(fā)送的UartSendASC('"');UartSendString(PhoneNum1);UartSendASC('"');UartSendASC('r');DelaySec(1);/延時3秒UartSendString(Sms_Text);/發(fā)送的容。DelaySec(1);UartSendASC(temperature/10+0x30);UartSendASC(temperature%10+0x30);
22、UartSendString("x1ar");/告訴模塊容發(fā)送完了。GsmAtFlag = 0;while(GsmAtFlag = 0);if(strstr(GsmRcvAt, "ERROR") )/檢測是否收到 +CME ERROR ,如果是這是發(fā)送失敗,退出重新發(fā)送UartSendString(0x1b);/發(fā)送退出指令sendflag=1;else if(strstr(GsmRcvAt, "OK") )/檢測是否收到 +CMGS ,如果收到,表明發(fā)送成功了。等待一會重新發(fā)送sendflag=0; void Sim300Tx2()
23、UartSendString("AT+CMGS=");/設(shè)置發(fā)送的,自己修改成像發(fā)送的UartSendASC('"');UartSendString(PhoneNum2);UartSendASC('"');UartSendASC('r');DelaySec(1);/延時3秒UartSendString(Sms_Text);/發(fā)送的容。DelaySec(1);UartSendASC(temperature/10+0x30);UartSendASC(temperature%10+0x30);UartSendSt
24、ring("x1ar");/告訴模塊容發(fā)送完了。GsmAtFlag = 0;while(GsmAtFlag = 0);if(strstr(GsmRcvAt, "ERROR") )/檢測是否收到 +CME ERROR ,如果是這是發(fā)送失敗,退出重新發(fā)送UartSendString(0x1b);/發(fā)送退出指令sendflag=1;else if(strstr(GsmRcvAt, "OK") )/檢測是否收到 +CMGS ,如果收到,表明發(fā)送成功了。等待一會重新發(fā)送sendflag=0;unsigned char keyscan(void)
25、unsigned char key,temp;key=0xff;/*串口占用P3=0xff;P3_0=0;temp=P3;temp=temp & 0xf0;if (temp!=0xf0)delayms(50);temp=P3;temp=temp & 0xf0;if (temp!=0xf0)temp=P3;temp=temp & 0xf0;switch(temp)case 0x70:key=0;break;case 0xb0:key=1;break;case 0xd0:key=2;break;case 0xe0:key=3;break;temp=P3;temp=temp
26、& 0xf0;while(temp!=0xf0)temp=P3;temp=temp & 0xf0;P3=0xff;P3_1=0;temp=P3;temp=temp & 0xf0;if (temp!=0xf0)delayms(50);temp=P3;temp=temp & 0xf0;if (temp!=0xf0)temp=P3;temp=temp & 0xf0;switch(temp)case 0x70:key=4;break;case 0xb0:key=5;break;case 0xd0:key=6;break;case 0xe0:key=7;break
27、;temp=P3;temp=temp & 0xf0;while(temp!=0xf0)temp=P3;temp=temp & 0xf0;*/P3=0xff;P3_2=0;temp=P3;temp=temp & 0xf0;if (temp!=0xf0)delayms(50);temp=P3;temp=temp & 0xf0;if (temp!=0xf0)temp=P3;temp=temp & 0xf0;switch(temp)case 0x70:key=0;break;case 0xb0:key=1;break;case 0xd0:key=2;break;
28、case 0xe0:key=3;break;temp=P3;temp=temp & 0xf0;while(temp!=0xf0)temp=P3;temp=temp & 0xf0;P3=0xff;P3_3=0;temp=P3;temp=temp & 0xf0;if (temp!=0xf0)Delay ms(50);temp=P3;temp=temp & 0xf0;if (temp!=0xf0)temp=P3;temp=temp & 0xf0;switch(temp)case 0x70:key=4;break;case 0xb0:key=5;break;ca
29、se 0xd0:key=6;break;case 0xe0:key=7;break;temp=P3;temp=temp & 0xf0;while(temp!=0xf0)temp=P3;temp=temp & 0xf0;return key;void InitTimer0(void) TMOD |= 0x01;/ 方式1,16位計數(shù)器方式 TH0 = 0xFC;/定時初值=65536-n n=1000,定時周期是1ms TL0 = 0x18; EA = 1;/開總中斷使能 ET0 = 1;/允許定時器T0溢出中斷 TR0 = 1; /T0 運(yùn)行void Timer0Interru
30、pt(void) interrupt 1 using 1 Uint ms_con,sec_con;TH0 = 0xFC; TL0 = 0x18;if(timesendflag=0)/定時發(fā)送 ms_con+;if(ms_con=1000)ms_con=0;sec_con+;if(sec_con=6)sec_con=0;timesendflag=1;/采用定時掃描方式 reg_code = 1; /先消隱顯示 Font_code = Display_Bufferbit_con; /送字形碼 reg_code = S_Tabbit_con; /送字位bit_con+;if(bit_con >
31、 7) bit_con = 0;void main()uchar keyval;bit Temp_Insert_Flag;uchar tmp2;uchar i=0;InitTimer0();reg_code = 0xff;/關(guān)閉顯示for(bit_con=0;bit_con<8;bit_con+) Display_Bufferbit_con = Show_Tab0; bit_con = 0; timesendflag=0;SerialIni();Sim300Ini();temperature=0;Alarm_Temp = 0;while(1) keyval=keyscan(); if(k
32、eyval=7) Sim300Tx1(); if(keyval=6) Sim300Tx2(); 2.向不同手機(jī)發(fā)送短信:#include<at89x52.h>#include<intrins.h>#include <string.h>#define uchar unsigned char#define uint unsigned int#define FOSC_12M/設(shè)置晶振#define Font_code P0 /字符碼寫地址#define reg_code P2 /字位碼寫地址code uchar Show_Tab= 0xC0,/*0*/ 0xF9,
33、/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0x88,/*A*/ 0x83,/*b*/ 0xC6,/*C*/ 0xA1,/*d*/ 0x86,/*E*/ 0x8E /*F*/;code uchar S_Tab8=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar Display_Buffer8; /顯示緩沖區(qū)uchar bit_con; /字位碼掃描計數(shù)器/uchar code AT="AT"
34、/握手信號/uchar code ATE="ATE" /關(guān)回顯/uchar code AT_CNMI="AT+CNMI=2,1"/設(shè)置這組參數(shù)來了新信息存在SIM卡/uchar code AT_CSCA="AT+CSCA="+00""/設(shè)置移動服務(wù)中心/uchar code AT_CSCA="AT+CSCA="+00""/設(shè)置聯(lián)通服務(wù)中心/uchar code AT_CMGF="AT+CMGF=1"/設(shè)置短信的格式為text格式/uchar code AT
35、_CMGR="AT+CMGR="/讀取短信指令/uchar code AT_CMGS="AT+CMGS="/發(fā)送短信指令/uchar code AT_CMGD="AT+CMGD="/發(fā)送短信指令/char RxBufRxBuf_N=0;/定義串口接收數(shù)據(jù)緩沖區(qū)/uchar RxPoint;/Rx緩沖區(qū)指針uchar code PhoneNum115="+76"/手機(jī)uchar code PhoneNum215="+78"uchar GsmRcv10 = 0;uchar GsmRcvAt10 =
36、0; uchar GsmRcvCnt = 0;bit GsmAtFlag=0;bit sendflag;/0代表發(fā)送成功;1代表發(fā)送失敗bit timesendflag;/定時發(fā)送短信,10分鐘uchar Sms_Text = "luheng sb"uchar temperature;uchar Alarm_Temp;/報警溫度/uchar sms_temp=20,30,40,50,60,70;/uint ms_con,sec_con;/*/void delayus(unsigned char us)/delay us while(-us);/*/void delayms(
37、unsigned char ms)/delay Ms while(-ms) delayus(250); delayus(250); /*/void DelaySec(unsigned char s)while(s-)delayms(250);delayms(250);delayms(250);delayms(250);void SerialIni()/初始化程序TMOD|=0x20;/定時器1操作模式2:8位自動重載定時器#ifdef FOSC_12M /在這里根據(jù)晶振大小設(shè)置不同的數(shù)值初始化串口TH1=0xf3;/裝入初值,波特率2400TL1=0xf3;#else TH1=0xfd;/裝入
38、初值,波特率9600TL1=0xfd;#endif /end of SOC_12MTR1=1;/打開定時器SM0=0;/設(shè)置串行通訊工作模式,(10為一部發(fā)送,波特率可變,由定時器1的溢出率控制)SM1=1;/(同上)在此模式下,定時器溢出一次就發(fā)送一個位的數(shù)據(jù)REN=1;/串行接收允許位(要先設(shè)置sm0sm1再開串行允許)EA=1;/開總中斷ES=1;/開串行口中斷void UartSendASC(uchar d)SBUF=d;while(!TI);TI=0;void UartSendString(uchar *str)while(*str)UartSendASC(*str) ;str+;v
39、oid Serial_interrupt() interrupt 4 using 1uchar i = 0;if(RI = 1)/收到信息RI=0;/接收中斷信號清零,表示將繼續(xù)接收GsmRcvGsmRcvCnt = SBUF;/Uart1Send(tmp);GsmRcvCnt+;/收到了完整的AT指令,完整的AT指令是以0x0a 0x0d結(jié)尾的。故作此判斷,在接收的過程中是否收到0x0a 0x0dif(GsmRcvGsmRcvCnt-2 = 0x0d && GsmRcvGsmRcvCnt-1 = 0x0a && GsmRcvCnt >= 2)/一旦收到0
40、x0a 0x0d,就將數(shù)據(jù)保存起來。用戶主函數(shù)的判斷。for(i=0; i<GsmRcvCnt; i+)GsmRcvAti = GsmRcvi;GsmRcvi = 0;GsmRcvCnt = 0;GsmAtFlag = 1;/收到了完整的at指令,通過這個標(biāo)志位置1,這樣主函數(shù)就知道去判斷了。else if(GsmRcvCnt >= 10)/因為存有限,收到了50個字符還是沒有看到0x0a 0x0d的話,就重新開始接收吧。GsmRcvCnt = 0;void Sim300Ini()while(GsmAtFlag = 0)UartSendString("atir"
41、);/設(shè)置sim300波特率DelaySec(1);/延時1秒GsmAtFlag = 0;while(1)UartSendString("AT+COPS?r");DelaySec(1);/延時1秒while(GsmAtFlag = 0);/if(strstr(GsmRcvAt, "CHINA MOBILE") )/檢測是否收到 CHINA MOBILE 服務(wù)商信息。如果收到證明是連接上網(wǎng)絡(luò)了if(strstr(GsmRcvAt, "OK") )/檢測是否收到 CHINA UNICOM 服務(wù)商信息。如果收到證明是連接上網(wǎng)絡(luò)了break;
42、UartSendString("AT+CMGF=1r");/設(shè)置使用TEXT格式發(fā)送短信,短信有兩種格式,另外一種是UDPDelaySec(1);/延時3秒UartSendString("AT+CSCS="GSM"r");/使用GSMDelaySec(1);/延時3秒/UartSendString("AT+CSMP=17,167,0,250r");/設(shè)備短信模式(手機(jī)自動保存模式,平時我們手機(jī)發(fā)送的是這類)UartSendString("AT+CSMP=17,167,0,240r");/設(shè)備短信
43、模式(手機(jī)非自動保存模式)DelaySec(1);/延時3秒P1_2=0;void Sim300Tx1()UartSendString("AT+CMGS=");/設(shè)置發(fā)送的,自己修改成像發(fā)送的UartSendASC('"');UartSendString(PhoneNum1);UartSendASC('"');UartSendASC('r');DelaySec(1);/延時3秒UartSendString(Sms_Text);/發(fā)送的容。DelaySec(1);UartSendASC(temperature
44、/10+0x30);UartSendASC(temperature%10+0x30);UartSendString("x1ar");/告訴模塊容發(fā)送完了。GsmAtFlag = 0;while(GsmAtFlag = 0);if(strstr(GsmRcvAt, "ERROR") )/檢測是否收到 +CME ERROR ,如果是這是發(fā)送失敗,退出重新發(fā)送UartSendString(0x1b);/發(fā)送退出指令sendflag=1;else if(strstr(GsmRcvAt, "OK") )/檢測是否收到 +CMGS ,如果收到,表
45、明發(fā)送成功了。等待一會重新發(fā)送sendflag=0; void Sim300Tx2()UartSendString("AT+CMGS=");/設(shè)置發(fā)送的,自己修改成像發(fā)送的UartSendASC('"');UartSendString(PhoneNum2);UartSendASC('"');UartSendASC('r');DelaySec(1);/延時3秒UartSendString(Sms_Text);/發(fā)送的容。DelaySec(1);UartSendASC(temperature/10+0x30);
46、UartSendASC(temperature%10+0x30);UartSendString("x1ar");/告訴模塊容發(fā)送完了。GsmAtFlag = 0;while(GsmAtFlag = 0);if(strstr(GsmRcvAt, "ERROR") )/檢測是否收到 +CME ERROR ,如果是這是發(fā)送失敗,退出重新發(fā)送UartSendString(0x1b);/發(fā)送退出指令sendflag=1;else if(strstr(GsmRcvAt, "OK") )/檢測是否收到 +CMGS ,如果收到,表明發(fā)送成功了。等待一
47、會重新發(fā)送sendflag=0;unsigned char keyscan(void)unsigned char key,temp;key=0xff;/*串口占用P3=0xff;P3_0=0;temp=P3;temp=temp & 0xf0;if (temp!=0xf0)delayms(50);temp=P3;temp=temp & 0xf0;if (temp!=0xf0)temp=P3;temp=temp & 0xf0;switch(temp)case 0x70:key=0;break;case 0xb0:key=1;break;case 0xd0:key=2;bre
48、ak;case 0xe0:key=3;break;temp=P3;temp=temp & 0xf0;while(temp!=0xf0)temp=P3;temp=temp & 0xf0;P3=0xff;P3_1=0;temp=P3;temp=temp & 0xf0;if (temp!=0xf0)delayms(50);temp=P3;temp=temp & 0xf0;if (temp!=0xf0)temp=P3;temp=temp & 0xf0;switch(temp)case 0x70:key=4;break;case 0xb0:key=5;break;case 0xd0:key=6;break;case 0xe0:key=7;break;temp=P3;temp=temp & 0xf0;while(temp!=0xf0)temp=P3;temp=temp & 0xf0;*/P3=0xff;P3_2=0;temp=P3;temp=temp & 0xf0;if (temp!=0xf0)delayms(50);temp=P3;temp=temp & 0xf0;if (temp!=0xf0)temp=P3;temp=temp & 0xf0;switch(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 肇慶學(xué)院《管理會計模擬實(shí)驗》2023-2024學(xué)年第一學(xué)期期末試卷
- 企業(yè)員工績效質(zhì)量個人貢獻(xiàn)度評價體系
- 保險行業(yè)投資分析模板
- 20XX年度績效總結(jié)模板
- 房地產(chǎn)經(jīng)紀(jì)操作實(shí)務(wù)-2019年房地產(chǎn)經(jīng)紀(jì)人協(xié)理《房地產(chǎn)經(jīng)紀(jì)操作實(shí)務(wù)》真題匯編
- 人資行政崗位述職報告模板
- 有關(guān)保護(hù)環(huán)境的調(diào)查報告
- 二零二五版帶利息支付的商業(yè)匯票貼現(xiàn)合同樣本3篇
- 陜西省西安市部分學(xué)校2024-2025學(xué)年高一上學(xué)期第四次階段性檢測化學(xué)試卷(含答案)
- 二零二五年度高速公路鋼筋材料供應(yīng)協(xié)議3篇
- 2025寒假散學(xué)典禮(休業(yè)式)上校長精彩講話:以董宇輝的創(chuàng)新、羅振宇的堅持、馬龍的熱愛啟迪未來
- 安徽省示范高中2024-2025學(xué)年高一(上)期末綜合測試物理試卷(含答案)
- 安徽省合肥市包河區(qū)2023-2024學(xué)年九年級上學(xué)期期末化學(xué)試題
- 《酸堿罐區(qū)設(shè)計規(guī)范》編制說明
- PMC主管年終總結(jié)報告
- 售樓部保安管理培訓(xùn)
- 倉儲培訓(xùn)課件模板
- 2025屆高考地理一輪復(fù)習(xí)第七講水循環(huán)與洋流自主練含解析
- GB/T 44914-2024和田玉分級
- 2024年度企業(yè)入駐跨境電商孵化基地合作協(xié)議3篇
- 《形勢與政策》課程標(biāo)準(zhǔn)
評論
0/150
提交評論