GPRS-GSM程序_第1頁
GPRS-GSM程序_第2頁
GPRS-GSM程序_第3頁
GPRS-GSM程序_第4頁
GPRS-GSM程序_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、/=GPRS MODULE PROGRAM=/=FROM 2003.9.=/=by cfj=#include<msp430x12x2.h>/#include<intrinsics.h>#include<stdio.h>#include<string.h>#include<stdlib.h>#include<ctype.h>#include<math.h>#define Uint unsigned int#define _3NOP() _NOP();_NOP();_NOP();#define _4NOP() _N

2、OP();_NOP();_NOP();_NOP();#define _5NOP() _NOP();_NOP();_NOP();_NOP();_NOP();#define Estart_Addr 0 /0 EEprom起始地址#define Work_Mode_Addr Estart_Addr+6 /6 工作模式設(shè)置:1字節(jié)#define MAPN_Addr Work_Mode_Addr+1 /7 移動(dòng)網(wǎng)關(guān)接入點(diǎn)名稱:20字節(jié)ASCI#define DSC_Ip_Addr MAPN_Addr+20 /27 數(shù)據(jù)服務(wù)中心IP地址:12字節(jié)ASC#define DSC_Port_Addr DSC_I

3、p_Addr+12 /39 數(shù)據(jù)中心端口:5字節(jié)ASCII#define Net_Protocol_Addr DSC_Port_Addr+5 /44 網(wǎng)絡(luò)數(shù)據(jù)傳輸協(xié)議#define Terminal_SIM_Addr Net_Protocol_Addr+1 /45 終端SIM#define Beat_Addr Terminal_SIM_Addr+11 /56 心跳周期地址#define PassWord_Addr Beat_Addr+1 /57 設(shè)置密碼#define SCA_SIM_Addr PassWord_Addr+6 /63 短信服務(wù)中心號(hào)碼#define DSC_SIM_Addr S

4、CA_SIM_Addr+11 /74 數(shù)據(jù)中心號(hào)碼#define BackUp_Addr DSC_SIM_Addr+11 /85 備用#define Set_Crc BackUp_Addr+4 /89 CRC校驗(yàn)碼#define Estart2_Addr Estart_Addr+100/*/函數(shù):main()/功能:主函數(shù)/輸入?yún)?shù):/輸出參數(shù):/=/常量定義/=char *AT="ATr"/AT命令用于檢測(cè)GPRS是否存在或開機(jī)。char AT_Echo12='A','T','E','=','0

5、9;,'V','=','1','&','D','1',0X0D;/命令碼不返回。/char *AT_Echo="ATE=0V=1&D1r"/命令碼不返回。char *AT_O="ATOr"/從命令狀態(tài)返回到數(shù)據(jù)狀態(tài)。char *AT_3Plus="+ATr"char *AT_W="AT&Wr" /保存設(shè)置。char *AT_ActivateIp="AT*E2IPA=1,1r"c

6、har OpenIp11='A','T','*','E','2','I','P','O','=','1',',',;char *AT_CloseIp="AT*E2IPCr"/關(guān)閉GPRS通道char *AT_CMGF="AT+CMGF=0r"/短信PDU MODEchar Terminal_Command19=0x68,0x0d,0x0d,0x68,0x4a,0x99,0x99,0

7、x07,0x00,0x0b,0x80,0x30char Echo_Array=0X2F,0X00,0X07,0XFF,0XFF,0XFD,0XA3,0X03;/設(shè)置正確信號(hào)char Alarm_Switch_Echo=0X2F,0X00,0X08,0XFF,0XFF,0XCE,0XEC,0X8F,0X14;char Data_Switch_Echo=0X2F,0X00,0X08,0XFF,0XFF,0XCD,0XEC,0XDA,0X47;/=/函數(shù)定義/=void Port_Initial(void);void Delay(Uint);void First_Wr_EEprom(void);vo

8、id Variable_Initial(void);void Turn_On_Gprs(void);void Turn_Off_Gprs(void);/打開GPRS電源void USART0_Initial(void);void USART1_Initial(void);void Timer_Initial(void);void Data_Cmnd_Snd(Uint L,char *Temp_Pointer,char Sport,Uint);void Gprs_At_Command(Uint,char *Pcommand,Uint WTime);void Rx1Data_Judge_Trasm

9、it(void);void Rx0Data_Judge_Trasmit(void);/extern void EWEN_93lc66(void);extern void Start_93lc66(char Op_Code);extern char Rd_Data(char Start_Addr,char Data_Len,Uint *Pointer);extern void Wr_Data(char Start_Addr,char Data_Len,Uint *Pointer);void Cal_Crc(char *Pointer,Uint L);/計(jì)算返回CRC值。char Read_Par

10、ameters_Initial(char);/從EEPROM中讀取工作參數(shù)、初始化。void WorkMode_Initial_Log(void);extern void Construct_PDU_SMS(char UDL,char *User_Data);/構(gòu)造SMS內(nèi)容。extern void Echo_SMS_Master(char);void Asci_To_Hex(char *Pointer,Uint);extern void Echo_Sms_Mobile(void);void Echo_Rx0(char *Pointer,char Lenth);extern void Mobi

11、le_SMS_Get(char);extern void Mobile_SMS_Set(char);extern void Encode7Bit(char);extern void Decode8Bit(char);extern char ReturnHex(char);void Heart_Beat(void);void Read_Delete_SMS(void);void Feed_WatchDog(void);void Gprs_Mode_SMS(Uint);void Judge_SMS_Counter(void);void Data_Status(void);void Connect_

12、Master_Station(void);extern void Waiting_Result(Uint Wresult_Time);extern void ZheJiang_Protocol_Down(Uint);extern void ZheJiang_Protocol_Up(Uint);void Inqury_Signal(void);/=/全局變量定義/=char VIO;Uint Tx1_Snd_Lenth,Tx1_Pointer,Rx1_Pointer; /發(fā)送長度、發(fā)送指針、接收指針Uint Tx0_Snd_Lenth,Tx0_Pointer,Rx0_Pointer; /發(fā)送長度

13、、發(fā)送指針、接收char *Pointer0,*Pointer1;char Command_Data_Status;char Rx1_Start_Flag; /串口接收開始標(biāo)志Uint Rx1_Time_Counter;/串口接收時(shí)間長度char Rx1_TimeOut_Flag;/接收超時(shí)標(biāo)志char Rx0_Start_Flag; /串口接收開始標(biāo)志char Rx0_Time_Counter;/串口接收時(shí)間長度char Rx0_TimeOut_Flag;/接收超時(shí)標(biāo)志Uint Wait_Result_Time;char Wait_Result_TimeOut;char Flash_Time

14、r_Len; /CPU正常運(yùn)行指示燈。char Led1_Flash;Uint Heart_Beat_Interval;/自動(dòng)檢測(cè)IP連接的間隔時(shí)間char Heart_Beat_Flag; /自動(dòng)檢測(cè)標(biāo)志char nMinute_Beat_Flag;char Heart_Beat_Time;char AT_OpenIp035;char Rx1_Data_Buffer360;/GPRS串口數(shù)據(jù)緩沖區(qū)char Rx0_Data_Buffer256;/終端數(shù)據(jù)緩沖區(qū)char Terminal_SIM12;/終端手機(jī)號(hào)碼。char Center_SIM12; /短信通信手機(jī)號(hào)碼。char Data_

15、Center_Sim12;/數(shù)據(jù)中心手機(jī)號(hào)碼。char SCA_SIM4; /短信服務(wù)中心號(hào)碼Uint Temp_iArray100;/臨時(shí)緩沖區(qū):整數(shù)char Temp_cArray200;/臨時(shí)緩沖區(qū):字符char SMS_TPDU300;char User_Data140;char PassWord6;char AT_CGDCONT40;char AT_Set_Ok;Uint PDU_Len;char Retry_Counter;char AT_Test_Flag;char IpConnect_Flag;char Rx1_Led,Tx1_Led;/串口1收發(fā)指示燈Uint CRC;/CR

16、C校驗(yàn)值。char Signal_Val;/信號(hào)強(qiáng)度Uint Beat_Rcv_Fail;/心跳未接收到次數(shù)(若連續(xù)發(fā)送三次未收到,則重新連接)Uint Read_SMS_Time;char Work_Mode;/模塊工作模式char ,Tx1_Pointer,Rx1_Pointer; /發(fā)送長度、發(fā)送指針、接收指針char Msg_Snd_Flag;char Tx_Head; /發(fā)送引導(dǎo)頭char SMS_Mode;char Terminal_Addr_High;char Terminal_Addr_Low;char Read_SMS_Flag;char SIM_SMS_Flag;char

17、Received_Read_Msg_Flag;char DSR;Uint SMS_Index;/連接失敗次數(shù)。char Read_Flag;char Ring_Counter;char Beat_Rcved_Flag;/心跳接收到標(biāo)志。char Beat_Test_Start;/心跳測(cè)試標(biāo)志。char Beat_Test_Fail;Uint Beat_Test_Interval;char First_Connect_Flag;/上電第一次連接標(biāo)志。Uint Minute2_Interval;char Minute2_Interval_Flag;char Inqury_Signal_Flag;c

18、har Terminal_Request_Flag;char ii;/清緩沖區(qū)指針。Uint Second;Uint Signalmscnt;char Minute;char Connect_Counter;Uint Rx1_Time_Interval;char extern Msg_Snd_Success;Uint Tel_Ring_Counter;char Ring_Start_Flag;Uint Ring_Time;char Zj_Protocol_Flag;char SMS_Counter;char Load_Master_Flag;char Heart_Flag;char No_Ca

19、rrier_Flag;/=/主程序/=void main(void)char i;_3NOP();/WDTCTL=WDTPW+WDTHOLD;BCSCTL1|=XT2OFF+XTS; /啟動(dòng)LFTX1 4M高速晶振,關(guān)閉XT2晶振 BCSCTL2|=SELM1+SELM0; /LFTTX1CLK:4M->MCLKdoIFG1&=OFIFG;for(i=0xFF;i>0;i-);while(IFG1&OFIFG)!=0);/等待時(shí)鐘源轉(zhuǎn)換完。P2DIR|=0X08;/P2.0:LED5;P2.1:LED6;p2.2-ring P2OUT&=0XF7;P1DIR

20、|=0X10;P1OUT&=0XEF;WDTCTL=WDTPW+WDTSSEL;/看門狗開啟。Delay(20000);Port_Initial();/初始化P1、P2、P3口等while(VIO=0X00) /若GPRS尚未開機(jī),則打開GPRS電源Turn_On_Gprs();VIO=P5IN&0X10; /VIO=P5.4_3NOP();Variable_Initial();/變量初始化。Delay(10);/EWEN_93lc66();/EEPROM擦、寫使能 Rd_Data(254,1,Temp_iArray);/檢測(cè)是否為第一次運(yùn)行程序if(Temp_iArray0!

21、=0X555C)First_Wr_EEprom();/寫入出廠默認(rèn)數(shù)據(jù)Read_Parameters_Initial(Estart_Addr);if(Read_Flag=0)/從EEPROM中讀取工作參數(shù)、初始化CPU。 Read_Parameters_Initial(Estart2_Addr);/初始化時(shí),若原始數(shù)據(jù)不對(duì),則從備分區(qū)讀取。_3NOP();Read_Delete_SMS();/上電時(shí),讀取刪除短信息。for(;)/*主循環(huán)*_3NOP();VIO=P5IN&0X10; /VIO=P5.4WDTCTL=WDTPW+WDTCNTCL;DSR=P3IN&0X08; /

22、P3.3:顯示系統(tǒng)命令狀態(tài)/數(shù)據(jù)狀態(tài)。 if(DSR!=0) /P1OUT|=0X40;/P1.6: 命令狀態(tài)。 /Load_Master_Flag=0;elseP1OUT&=0X40;/數(shù)據(jù)狀態(tài)。if(Rx1_TimeOut_Flag=1)/RX1若接收超時(shí),進(jìn)行判斷。Rx1_TimeOut_Flag=0;Rx1_Start_Flag=0;Rx1_Time_Counter=0;Rx1Data_Judge_Trasmit();/串口1數(shù)據(jù)判斷轉(zhuǎn)發(fā)給終端。if(Rx0_TimeOut_Flag=1)/RX0若接收超時(shí),進(jìn)行判斷。Rx0_TimeOut_Flag=0;Rx0_Start_F

23、lag=0;Rx0_Time_Counter=0;Rx0Data_Judge_Trasmit();/串口0數(shù)據(jù)轉(zhuǎn)發(fā)給主站。if(Command_Data_Status=1)/GPRS連接上,則發(fā)2個(gè)心跳,有關(guān)變量復(fù)位。Data_Status();if(DSR!=0X00)&&(Inqury_Signal_Flag=1)/Inqury_Signal_Flag=0;Inqury_Signal();if(DSR!=0X00)&&(Minute+1)%30)=0)/每隔周期檢測(cè)是否有新的短信接收到。Minute+;SIM_SMS_Flag=0;Read_SMS_Flag

24、=0;Read_Delete_SMS();if(DSR=0)&&(Heart_Flag=1)&&(Work_Mode=1)/for zhejiang testHeart_Beat();Heart_Flag=0;Beat_Test_Start=1;Beat_Test_Interval=2000;/20秒鐘自動(dòng)檢測(cè)心跳Beat_Test_Fail=0;Beat_Rcved_Flag=0;if(Work_Mode=1)&&(nMinute_Beat_Flag=1)&&(Heart_Beat_Time!=0) /每隔?分鐘心跳周期發(fā) nM

25、inute_Beat_Flag=0;Heart_Beat();Beat_Test_Start=1;Beat_Test_Interval=2000;/20秒鐘自動(dòng)檢測(cè)心跳Beat_Test_Fail=0;Beat_Rcved_Flag=0;if(Tel_Ring_Counter>=1)|(First_Connect_Flag=1)|(Terminal_Request_Flag=1)|(Beat_Te if(Work_Mode=1)&&(Heart_Beat_Flag=1)Heart_Beat_Flag=0;Heart_Beat_Interval=6000;Connect_M

26、aster_Station();if(Connect_Counter+>=30)Turn_Off_Gprs();/復(fù)位GPRSif(VIO=0)/判斷是否有異常關(guān)機(jī)。_5NOP();_5NOP();VIO=P5IN&0X10; /確認(rèn) VIO=P5.4_5NOP();_5NOP();if(VIO=0)Turn_On_Gprs();/=/函數(shù):Variable_Initial(void)/功能:有關(guān)變量初始化/輸入:/輸出:/=void Variable_Initial(void)Signalmscnt=0;Ring_Counter=0;Received_Read_Msg_Flag

27、=0;nMinute_Beat_Flag=0;Connect_Counter=0;Command_Data_Status=0;Beat_Rcv_Fail=2;First_Connect_Flag=1;/第一次連接標(biāo)志Inqury_Signal_Flag=0;Terminal_Request_Flag=0;Beat_Test_Fail=0;Beat_Test_Start=0;Beat_Test_Interval=2000;/心跳等待時(shí)間間隔。 Heart_Beat_Interval=6000;Second=0;Minute=0;Rx1_Time_Interval=4;Msg_Snd_Flag=0

28、;Msg_Snd_Success=0;Tel_Ring_Counter=0;Ring_Start_Flag=0;Ring_Time=0;Zj_Protocol_Flag=1;/浙江規(guī)約SMS_Counter=0;Load_Master_Flag=0;Heart_Flag=0;No_Carrier_Flag=0;Signal_Val=13;/=/函數(shù):Data_Status(void)/功能:數(shù)據(jù)狀態(tài)時(shí)有關(guān)變量狀態(tài)。/輸入:/輸出:/=void Data_Status(void)char i;char CheckSum=0;char Temp_Load=0X68,0X91,0X01,0X07,0

29、X1A,0X1E,0X00,0X68,0XA1,0X03,0X00,0X11,0X11,0X11,0X00,0X16;Command_Data_Status=0;Heart_Beat_Interval=6000;Ring_Counter=0;First_Connect_Flag=0;Beat_Test_Fail=0;Beat_Test_Start=0;Minute2_Interval=12000;Minute2_Interval_Flag=0;Terminal_Request_Flag=0;nMinute_Beat_Flag=0;Connect_Counter=0;Tel_Ring_Count

30、er=0;Second=0;Minute=0;Heart_Flag=0;No_Carrier_Flag=0;if(Work_Mode=0x01)&&(Zj_Protocol_Flag=0)_NOP();Heart_Beat();Delay(50);Heart_Beat();if(Work_Mode=0x01)&&(Zj_Protocol_Flag=1) && (Load_Master_Flag=0)/浙江規(guī)約登陸請(qǐng)求 Load_Master_Flag=0;Delay(50);for(i=0;i<=15;i+)Temp_cArrayi=Tem

31、p_Loadi;/*for(i=0;i<=3;i+)/終端地址Temp_cArrayi+1=(Terminal_SIMi*2+1-0x30)<<4)+(Terminal_SIMi*2-0x3 */ / hunter term addressfor(i=0;i<=13;i+)/校驗(yàn)和CheckSum+=Temp_cArrayi;Temp_cArray14=CheckSum;Delay(100);Tx_Head=Temp_cArray0;Data_Cmnd_Snd(15,&Temp_cArray1,1,5);/*Delay(200);Tx_Head=Temp_cAr

32、ray0;Data_Cmnd_Snd(15,&Temp_cArray1,1,5);*/Beat_Test_Start=1;Beat_Test_Interval=12000;/20秒鐘自動(dòng)檢測(cè)心跳Beat_Test_Fail=0;Beat_Rcved_Flag=0;_NOP();/=/函數(shù):Inqury_Signal()/功能:查詢當(dāng)前GSM信號(hào)強(qiáng)度/輸入:/輸出:/=void Inqury_Signal(void)char *AT_CSQ="AT+CSQr"/檢測(cè)信號(hào)強(qiáng)度。char i,CheckSum=0;char Inqury_Counter=3;char Te

33、mp;Inqury_Again:;Temp=Signal_Val;Inqury_Signal_Flag=0;AT_Set_Ok=0;Rx1_Pointer=0;Rx1_TimeOut_Flag=0;Tx_Head=AT_CSQ0;Data_Cmnd_Snd(6,&AT_CSQ1,1,40); /查尋信號(hào)強(qiáng)弱命令Delay(200);for(i=0;i<Rx1_Pointer;i+)/檢測(cè)信號(hào)強(qiáng)弱等級(jí)。if(Rx1_Data_Bufferi='+')&&(Rx1_Data_Bufferi+1='C')&&(Rx1_Da

34、ta_Bufferi+2='S' if(Rx1_Data_Bufferi+4=':')&&(Rx1_Data_Bufferi+5=32) /冒號(hào) 空格 if(Rx1_Data_Bufferi+7!=',')/信號(hào)強(qiáng)度無if(Rx1_Data_Bufferi+6-48)=9)&&(Rx1_Data_Bufferi+7-48)=9)/沒有檢測(cè) AT_Set_Ok=1;P1OUT|=0X90;/LED4、LED5、LED6全黑(=99)P2OUT|=0X01;Signal_Val=0;/信號(hào)強(qiáng)度為0。goto Signa

35、l000;if(Rx1_Data_Bufferi+6-48)>=2)&&(Rx1_Data_Bufferi+7-48)<=9)/信號(hào)強(qiáng)度 AT_Set_Ok=1;P1OUT&=0X7F;/LED4亮、強(qiáng)。(>20)P2OUT|=0X01;P1OUT|=0X10;Signal_Val=Rx1_Data_Bufferi+6-48;/十位BCD碼Signal_Val=Signal_Val<<4;/左移8位。Signal_Val+=Rx1_Data_Bufferi+7-48;/個(gè)位BCD碼if(Signal_Val>0x31)Signal_V

36、al=0x31;goto Signal000;if(Rx1_Data_Bufferi+;/接收超時(shí)標(biāo)志6-48)=AT_Set_Ok=1;P2OUT&=0XFE;/LED5亮、中。(>10<20) P1OUT|=0X90;Signal_Val=Rx1_Data_Bufferi+6-48;/十位BCD碼 Signal_Val=Signal_Val<<4;/左移8位。 Signal_Val+=Rx1_Data_Bufferi+7-48;/個(gè)位BCD碼 if(Signal_Val>0x19)Signal_Val=0x19;goto Signal000;if(Rx

37、1_Data_Bufferi+7=',')/信號(hào)強(qiáng)度小于10 AT_Set_Ok=1;P1OUT&=0XEF;/LED6亮、低。(<10) P2OUT|=0X01;P1OUT|=0X80;Signal_Val=Rx1_Data_Bufferi+6-48;/BCD碼 if(Signal_Val>9)Signal_Val=0x09;goto Signal000;Signal000:if(AT_Set_Ok=0)Signal_Val=0x00;AT_Set_Ok=0;if(Signal_Val=0x00)if(Inqury_Counter-)!=0)for(i=0

38、;i<20;i+)Rx1_Data_Bufferi=0;goto Inqury_Again;if(Signal_Val=0x00)if(Temp%2=0)Temp+=1;elseTemp-=1;Signal_Val=Temp;/*User_Data0=User_Data3=0x68;/數(shù)據(jù)頭User_Data1=User_Data2=11;/數(shù)據(jù)長度User_Data4=0x5A; /控制字User_Data5=0x99; /獲取終端地址低位User_Data6=0x99; /獲取終端地址高位User_Data7=0x06; /類型User_Data8=0x82; /可變結(jié)構(gòu)限定詞Use

39、r_Data9=0x05; /傳送原因User_Data10=0x55; /數(shù)據(jù)單元標(biāo)識(shí)LUser_Data11=0x30; /數(shù)據(jù)單元標(biāo)識(shí)HUser_Data12=0x00; /記錄地址User_Data13=(Signal_Val&0X0F)+0X30; /信號(hào)強(qiáng)度 User_Data14=(Signal_Val>>4)&0X0F)+0X30; for(i=0;i<=10;i+)/計(jì)算102規(guī)約校驗(yàn)和CheckSum+=User_Data4+i;User_Data15=CheckSum;User_Data16=0x16;*/User_Data0 = 0x6

40、8;User_Data1 = 0x99;User_Data2 = 0x99;User_Data3 = 0x99;User_Data4 = 0x99;User_Data5 = 0x5E;User_Data6 = 0x00;User_Data7 = 0x68;User_Data8 = 0x0F;User_Data9 = 0x09; / 自定義數(shù)據(jù)幀數(shù)據(jù)區(qū)長度 User_Data10= 0x00;User_Data11 = 0x1A;User_Data12 = 0x82;User_Data13 = 0x20;User_Data14 = 0x99;User_Data15 = 0x12;User_Dat

41、a16 = 0x34;User_Data17 = 0x56;User_Data18 = 0x78;User_Data19=(Signal_Val&0X0F)+0X30; /信號(hào)強(qiáng)度 User_Data20=(Signal_Val>>4)&0X0F)+0X30; for(i=0;i<=20;i+)/計(jì)算校驗(yàn)和CheckSum+=User_Datai;User_Data21=CheckSum;User_Data22=0x16;Data_Cmnd_Snd(22,User_Data,0,5);/向串口0發(fā)送信號(hào)強(qiáng)度數(shù)據(jù),發(fā)送長度22 P5OUT|=0x80;/接收指示

42、燈滅。Rx1_TimeOut_Flag=0;/=/函數(shù):Rd_Parameter_Initial()/功能:從EEPROM中讀取工作參數(shù)、IP地址、端口、SMS號(hào)碼等/ 初始化波特率、定時(shí)器等/輸入?yún)?shù):/輸出參數(shù):/=char Read_Parameters_Initial(char Address)char i,j;Uint Temp2;char *Cgdcont="AT+CGDCONT=1," /設(shè)置PDP通道 WDTCTL=WDTPW+WDTCNTCL;Rd_Data(Address,91,Temp_iArray);/讀取0x06通訊口配置參數(shù)。if(Temp_iA

43、rray0=0x2f)/尋找數(shù)據(jù)頭if(Temp_iArray2=90)&&(Temp_iArray5=0xfd)/判斷數(shù)據(jù)長度、功能碼是否為設(shè)置命 for(i=0;i<=90;i+)Temp_cArrayi=Temp_iArrayi;Cal_Crc(&Temp_cArray1,88);/計(jì)算CRCTemp2=Temp_cArray89;/比較CRCTemp2=Temp2<<8;Temp2=Temp2+Temp_cArray90;if(CRC=Temp2)/若CRC相等,則讀出的數(shù)據(jù)正確。 Read_Flag=1; /從EEPROM中讀取的數(shù)據(jù)正確。

44、Work_Mode=Temp_cArray6;/工作模式for(i=0;i<=12;i+)/讀取APN名稱.AT_CGDCONTi=*(Cgdcont+i);/="AT+CGDCONT=1, AT_CGDCONT13=AT_CGDCONT16=0X22; AT_CGDCONT14='I'AT_CGDCONT15='P'AT_CGDCONT17=','AT_CGDCONT18=0X22;for(i=0;i<=19;i+)/讀取APN名稱.if(Temp_cArray7+i!=0xFF)AT_CGDCONTi+19=Temp_c

45、Array7+i; elsebreak;AT_CGDCONTi+19=0x22;AT_CGDCONTi+20=0x0d;for(j=i+21;j<=39;j+)/后面填零,以便計(jì)算長度. AT_CGDCONTj=0;WDTCTL=WDTPW+WDTCNTCL;/=以下裝入IP地址= for(i=0;i<=10;i+)/IP地址的AT命令。 AT_OpenIp0i=OpenIpi;/AT_OpenIp011='"'AT_OpenIp027='"'AT_OpenIp015='.'AT_OpenIp019='.&

46、#39;AT_OpenIp023='.'AT_OpenIp028=','AT_OpenIp034=0x0d;for(i=0;i<=2;i+)/*.*.*.*IP地址格式。 AT_OpenIp012+i=Temp_cArray27+i; for(i=0;i<=2;i+)/*.*.*.*IP地址格式。 AT_OpenIp016+i=Temp_cArray30+i;for(i=0;i<=2;i+)/*.*.*.*IP地址格式。 AT_OpenIp020+i=Temp_cArray33+i;for(i=0;i<=2;i+)/*.*.*.*IP地址

47、格式。 AT_OpenIp024+i=Temp_cArray36+i;for(i=0;i<=4;i+)/數(shù)據(jù)服務(wù)中心通信端口號(hào)。 AT_OpenIp029+i=Temp_cArray39+i;/=IP地址處理結(jié)束=。TCP_UDP=Temp_cArray44;/網(wǎng)絡(luò)數(shù)據(jù)傳輸協(xié)議。 Heart_Beat_Time=Temp_cArray56;/心跳周期for(i=0;i<=5;i+)PassWordi=Temp_cArray57+i;/模塊設(shè)置密碼 for(i=0;i<=5;i+)Terminal_SIMi*2+1=Temp_cArray45+i*2;/數(shù)據(jù)終端手機(jī)號(hào)碼,位置交

48、換。 Terminal_SIMi*2=Temp_cArray45+i*2+1; Center_SIMi*2+1=Temp_cArray74+i*2; /短信通信手機(jī)號(hào)碼。位置交換。 Center_SIMi*2=Temp_cArray74+i*2+1;Data_Center_Simi*2+1=Temp_cArray74+i*2;/報(bào)警數(shù)據(jù)中心手機(jī)號(hào)碼。位置交換 Data_Center_Simi*2=Temp_cArray74+i*2+1; Terminal_SIM10='F'Center_SIM10='F'Data_Center_Sim10='F'

49、WDTCTL=WDTPW+WDTCNTCL;for(i=0;i<=3;i+)/短信服務(wù)中心號(hào)碼的區(qū)號(hào)SCA_SIMi=Temp_cArray63+4+i;_NOP();if(Read_Flag=0)/若未進(jìn)行初始化過或讀取參數(shù)不對(duì),則工作于GSM+SMS模式、9600波特率。 Work_Mode=0x02;WDTCTL=WDTPW+WDTCNTCL;_3NOP();Timer_Initial(); /初始化TIMERA。_3NOP();USART0_Initial();_3NOP();USART1_Initial();/串行口1初始化:無校驗(yàn),9600、8位數(shù)據(jù)位、1位停止位。_3NOP

50、();_EINT(); /開放全局中斷_3NOP();WorkMode_Initial_Log();/初始化GPRS工作方式、登陸CMNET、連接中心IP等。return Read_Flag;/=/函數(shù):WorkMode_Initial_Log()/功能:GPRS工作模式初始化、連接(若工作于GPRS模式)/輸入?yún)?shù):/輸出參數(shù):/=void WorkMode_Initial_Log(void)char i;char *AT_CNMI="AT+CNMI=3,2,0,1r"/SMS串口接收char AT_CNMI0116='A','T',

51、9;+','C','N','M','I','=','3',',','1',',','0',',','0',0x0D char AT_CBST15='A','T','+','C','B','S','T','=','7',',','0&

52、#39;,',','1',',',0X0D;/數(shù)據(jù) char AT_CPMS0123='A','T','+','C','P','M','S','=','"','S','M','"',',','"','S','M','"',',

53、9;,'"','S','M','"',0X0D;char *AT_CRC="AT+CRC=1r"/區(qū)分是語音來電、還是數(shù)據(jù)來電。char *AT_S00="ATS0=0r"char *AT_S02="ATS0=2r"char *AT_IpParameters="AT*E2IPS=2,10,1,512r"/等待2秒,重試10次,100毫秒,緩沖區(qū)512 char AT_SCA25='A','T',

54、9;+','C','S','C','A','=','"','+','8','6','1','3','8','0','0','5','7','1','5','0','0','"',0x0d; char *AT_Ring="AT*E2SMSRI=500r"/char *AT_PRn="AT*EPNR=2,1,8r"WDTCTL=WDTPW+WDTCNTCL;SMS_Mode=0xFF;/SMS_Index=0;Command_Data_Status=0;/在命令行狀態(tài)。AT_Test_Flag=0;First_Co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論