亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gprs003.c

?? MSP430與GPRS短消息收發例程
?? C
?? 第 1 頁 / 共 5 頁
字號:
 //=====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() _NOP();_NOP();_NOP();_NOP();
#define  _5NOP() _NOP();_NOP();_NOP();_NOP();_NOP();
#define  Estart_Addr          0                      //0  EEprom起始地址
#define  Work_Mode_Addr       Estart_Addr+6          //6  工作模式設置:1字節
#define  MAPN_Addr            Work_Mode_Addr+1       //7  移動網關接入點名稱:20字節ASCII
#define  DSC_Ip_Addr          MAPN_Addr+20           //27 數據服務中心IP地址:12字節ASCII
#define  DSC_Port_Addr        DSC_Ip_Addr+12         //39 數據中心端口:5字節ASCII
#define  Net_Protocol_Addr    DSC_Port_Addr+5        //44 網絡數據傳輸協議
#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 設置密碼
#define  SCA_SIM_Addr         PassWord_Addr+6        //63 短信服務中心號碼
#define  DSC_SIM_Addr         SCA_SIM_Addr+11        //74 數據中心號碼
#define  BackUp_Addr          DSC_SIM_Addr+11        //85 備用
#define  Set_Crc              BackUp_Addr+4          //89 CRC校驗碼
#define  Estart2_Addr         Estart_Addr+100 
//******************************************************************
//函數:main()
//功能:主函數
//輸入參數:
//輸出參數:
//===================================================================================================================
//常量定義
//===================================================================================================================
char  *AT="AT\r";//AT命令用于檢測GPRS是否存在或開機。
char  AT_Echo[12]={'A','T','E','=','0','V','=','1','&','D','1',0X0D};//命令碼不返回。
//char  *AT_Echo="ATE=0V=1&D1\r";//命令碼不返回。
char  *AT_O="ATO\r";//從命令狀態返回到數據狀態。
char  *AT_3Plus="+++AT\r";
char  *AT_W="AT&W\r"; //保存設置。
char  *AT_ActivateIp="AT*E2IPA=1,1\r";
char  OpenIp[11]={'A','T','*','E','2','I','P','O','=','1',',',};

char  *AT_CloseIp="AT*E2IPC\r";//關閉GPRS通道
char  *AT_CMGF="AT+CMGF=0\r";//短信PDU MODE

char  Terminal_Command[19]={0x68,0x0d,0x0d,0x68,0x4a,0x99,0x99,0x07,0x00,0x0b,0x80,0x30,0x00,0x48,0x4c,0x44,0x57,0x6d,0x16};
char  Echo_Array[]={0X2F,0X00,0X07,0XFF,0XFF,0XFD,0XA3,0X03};//設置正確信號   
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}; 

//=================================================================================================================
//函數定義
//=================================================================================================================
void   Port_Initial(void); 
void   Delay(Uint);
void   First_Wr_EEprom(void);
void   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_Trasmit(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);//計算返回CRC值。
char   Read_Parameters_Initial(char);//從EEPROM中讀取工作參數、初始化。
void   WorkMode_Initial_Log(void);
extern void   Construct_PDU_SMS(char UDL,char *User_Data);//構造SMS內容。
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   Mobile_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_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;  //發送長度、發送指針、接收指針
Uint   Tx0_Snd_Lenth,Tx0_Pointer,Rx0_Pointer;  //發送長度、發送指針、接收
char   *Pointer0,*Pointer1;
char   Command_Data_Status; 
char   Rx1_Start_Flag;  //串口接收開始標志
Uint   Rx1_Time_Counter;//串口接收時間長度
char   Rx1_TimeOut_Flag;//接收超時標志
char   Rx0_Start_Flag;  //串口接收開始標志
char   Rx0_Time_Counter;//串口接收時間長度
char   Rx0_TimeOut_Flag;//接收超時標志
Uint   Wait_Result_Time;
char   Wait_Result_TimeOut;
char   Flash_Timer_Len;  //CPU正常運行指示燈。
char   Led1_Flash;
Uint   Heart_Beat_Interval;//自動檢測IP連接的間隔時間
char   Heart_Beat_Flag; //自動檢測標志
char   nMinute_Beat_Flag;
char   Heart_Beat_Time;
char   AT_OpenIp0[35];
char   Rx1_Data_Buffer[360];//GPRS串口數據緩沖區
char   Rx0_Data_Buffer[256];//終端數據緩沖區
char   Terminal_SIM[12];//終端手機號碼。
char   Center_SIM[12]; //短信通信手機號碼。
char   Data_Center_Sim[12];//數據中心手機號碼。
char   SCA_SIM[4];    //短信服務中心號碼
Uint   Temp_iArray[100];//臨時緩沖區:整數
char   Temp_cArray[200];//臨時緩沖區:字符
char   SMS_TPDU[300];
char   User_Data[140];
char   PassWord[6];
char   AT_CGDCONT[40];  
char   AT_Set_Ok;
Uint   PDU_Len;
char   Retry_Counter;
char   AT_Test_Flag;
char   IpConnect_Flag;
char   Rx1_Led,Tx1_Led;//串口1收發指示燈
Uint   CRC;//CRC校驗值。
char   Signal_Val;//信號強度
Uint   Beat_Rcv_Fail;//心跳未接收到次數(若連續發送三次未收到,則重新連接)
Uint   Read_SMS_Time; 
char   Work_Mode;//模塊工作模式
char   TCP_UDP;  //網絡數據傳輸協議。
char   Msg_Snd_Flag;
char   Tx_Head;  //發送引導頭
char   SMS_Mode;
char   Terminal_Addr_High;
char   Terminal_Addr_Low;
char   Read_SMS_Flag;
char   SIM_SMS_Flag;
char   Received_Read_Msg_Flag;
char   DSR;
Uint   SMS_Index;//連接失敗次數。
char   Read_Flag;
char   Ring_Counter;
char   Beat_Rcved_Flag;//心跳接收到標志。
char   Beat_Test_Start;//心跳測試標志。
char   Beat_Test_Fail;
Uint   Beat_Test_Interval;
char   First_Connect_Flag;//上電第一次連接標志。
Uint   Minute2_Interval;
char   Minute2_Interval_Flag;
char   Inqury_Signal_Flag;
char   Terminal_Request_Flag;
char   ii;//清緩沖區指針。
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_Carrier_Flag;
//===========================
//主程序
//============================
void   main(void)
{         
 char i;
  _3NOP();
 //WDTCTL=WDTPW+WDTHOLD;
 BCSCTL1|=XT2OFF+XTS;     //啟動LFTX1 4M高速晶振,關閉XT2晶振
 BCSCTL2|=SELM1+SELM0;    //LFTTX1CLK:4M-->MCLK
 
do
{
  IFG1&=~OFIFG;
  for(i=0xFF;i>0;i--);
 }while((IFG1&OFIFG)!=0);//等待時鐘源轉換完。
P2DIR|=0X08;//P2.0:LED5;P2.1:LED6;p2.2--ring 
P2OUT&=0XF7;
P1DIR|=0X10;
P1OUT&=0XEF;  
WDTCTL=WDTPW+WDTSSEL;//看門狗開啟。
Delay(20000);
Port_Initial();//初始化P1、P2、P3口等
while(VIO==0X00)  //若GPRS尚未開機,則打開GPRS電源
{
  Turn_On_Gprs();
  VIO=P5IN&0X10; //VIO=P5.4
  _3NOP();
}  
Variable_Initial();//變量初始化。
Delay(10);
 //EWEN_93lc66();//EEPROM擦、寫使能
  Rd_Data(254,1,Temp_iArray);//檢測是否為第一次運行程序
if(Temp_iArray[0]!=0X555C)
  First_Wr_EEprom();//寫入出廠默認數據
Read_Parameters_Initial(Estart_Addr);
if(Read_Flag==0)//從EEPROM中讀取工作參數、初始化CPU。
  Read_Parameters_Initial(Estart2_Addr);//初始化時,若原始數據不對,則從備分區讀取。
_3NOP();
Read_Delete_SMS();//上電時,讀取刪除短信息。

for(;;)//***主循環*****
{
  _3NOP();
  VIO=P5IN&0X10; //VIO=P5.4
   WDTCTL=WDTPW+WDTCNTCL;
  DSR=P3IN&0X08; //P3.3:顯示系統命令狀態/數據狀態。
  if(DSR!=0) //   
    {
     P1OUT|=0X40;//P1.6: 命令狀態。   
     //Load_Master_Flag=0;
    }  
  else  
    P1OUT&=~0X40;//數據狀態。
 if(Rx1_TimeOut_Flag==1)//RX1若接收超時,進行判斷。
   { 
      Rx1_TimeOut_Flag=0;
      Rx1_Start_Flag=0;
      Rx1_Time_Counter=0;
      Rx1Data_Judge_Trasmit();//串口1數據判斷轉發給終端。
   }
 if(Rx0_TimeOut_Flag==1)//RX0若接收超時,進行判斷。
    {
      Rx0_TimeOut_Flag=0;
      Rx0_Start_Flag=0;
      Rx0_Time_Counter=0;
      Rx0Data_Judge_Trasmit();//串口0數據轉發給主站。
     }
 if(Command_Data_Status==1)//GPRS連接上,則發2個心跳,有關變量復位。
    {
      Data_Status();
    }
 if((DSR!=0X00)&&(Inqury_Signal_Flag==1))// 
   {
    Inqury_Signal_Flag=0;
    Inqury_Signal();
   }
 if((DSR!=0X00)&&(((Minute+1)%30)==0))//每隔周期檢測是否有新的短信接收到。
    { 
      Minute++;
      SIM_SMS_Flag=0;
      Read_SMS_Flag=0;
      Read_Delete_SMS();
    }     
 if((DSR==0)&&(Heart_Flag==1)&&(Work_Mode==1))//for zhejiang test
  {
    Heart_Beat();  
    Heart_Flag=0;
    Beat_Test_Start=1;
    Beat_Test_Interval=2000;//20秒鐘自動檢測心跳
    Beat_Test_Fail=0;
    Beat_Rcved_Flag=0;
  }
 if((Work_Mode==1)&&(nMinute_Beat_Flag==1)&&(Heart_Beat_Time!=0)) //每隔?分鐘心跳周期發送心跳信號。
    {
      nMinute_Beat_Flag=0;
      Heart_Beat();
      Beat_Test_Start=1;
      Beat_Test_Interval=2000;//20秒鐘自動檢測心跳
      Beat_Test_Fail=0;
      Beat_Rcved_Flag=0;
     } 
 if((Tel_Ring_Counter>=1)||(First_Connect_Flag==1)||(Terminal_Request_Flag==1)||(Beat_Test_Fail==1)||(No_Carrier_Flag==1))
   {
     if((Work_Mode==1)&&(Heart_Beat_Flag==1))
     {
      Heart_Beat_Flag=0;
      Heart_Beat_Interval=6000;
       Connect_Master_Station();
     if(Connect_Counter++>=30)
        Turn_Off_Gprs();//復位GPRS
   }   
  } 
 if(VIO==0)//判斷是否有異常關機。
 {
   _5NOP();_5NOP();
  VIO=P5IN&0X10; //確認 VIO=P5.4
  _5NOP();_5NOP();
  if(VIO==0)
    Turn_On_Gprs();
 }
 }
}
//=============================================
//函數:Variable_Initial(void)
//功能:有關變量初始化
//輸入:
//輸出:
//==============================================
void Variable_Initial(void)
{
  Signalmscnt=0;
  Ring_Counter=0;
  Received_Read_Msg_Flag=0;
  nMinute_Beat_Flag=0;
  Connect_Counter=0;
  Command_Data_Status=0; 
  Beat_Rcv_Fail=2;
  First_Connect_Flag=1;//第一次連接標志
  Inqury_Signal_Flag=0;
  Terminal_Request_Flag=0;
  Beat_Test_Fail=0;
  Beat_Test_Start=0;
  Beat_Test_Interval=2000;//心跳等待時間間隔。
  Heart_Beat_Interval=6000;
  Second=0;
  Minute=0;
  Rx1_Time_Interval=4;
  Msg_Snd_Flag=0;
  Msg_Snd_Success=0;
  Tel_Ring_Counter=0;
  Ring_Start_Flag=0;
  Ring_Time=0;
  Zj_Protocol_Flag=1;//浙江規約
  SMS_Counter=0; 
  Load_Master_Flag=0;
  Heart_Flag=0;
  No_Carrier_Flag=0;  
  Signal_Val=13;
}
//==============================================
//函數:Data_Status(void)
//功能:數據狀態時有關變量狀態。
//輸入:
//輸出:
//==============================================
void  Data_Status(void)
{
   char i; 
   char CheckSum=0;
   char Temp_Load[]={0X68,0X91,0X01,0X07,0X1A,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_Counter=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))//浙江規約登陸請求
 {
      Load_Master_Flag=0;
      Delay(50);
     for(i=0;i<=15;i++)
     {
      Temp_cArray[i]=Temp_Load[i];
     }
   
   /*
     for(i=0;i<=3;i++)//終端地址
        {
         Temp_cArray[i+1]=((Terminal_SIM[i*2+1]-0x30)<<4)+(Terminal_SIM[i*2]-0x30);
        }
    */    // hunter term address
     for(i=0;i<=13;i++)//校驗和
      {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合视频网| 精品国产精品网麻豆系列| 亚洲欧美偷拍另类a∨色屁股| 国产91丝袜在线播放| 国产精品女同互慰在线看 | 亚洲h在线观看| 欧美日韩久久一区| 久久99精品久久久久久久久久久久| 欧美一区2区视频在线观看| 久久er精品视频| 国产精品的网站| 欧美亚洲精品一区| 日韩和欧美一区二区三区| 精品日韩在线一区| 成人理论电影网| 视频一区二区不卡| 久久精品无码一区二区三区| 成人黄色综合网站| 日韩精品一级二级 | 久久久久99精品国产片| av一区二区三区四区| 亚洲电影在线播放| 久久久夜色精品亚洲| 一本色道久久综合狠狠躁的推荐| 午夜欧美2019年伦理| 久久久精品国产免费观看同学| 91影院在线观看| 麻豆成人免费电影| 国产精品福利一区二区| 欧美一区二区三区四区高清 | av日韩在线网站| 蜜臂av日日欢夜夜爽一区| 18成人在线观看| 欧美不卡一区二区| 日本精品视频一区二区三区| 激情综合色综合久久| 亚洲欧美一区二区三区久本道91| 日韩免费观看2025年上映的电影| 99riav久久精品riav| 麻豆国产欧美一区二区三区| 一区二区三区 在线观看视频 | 国产日韩精品久久久| 欧美日韩一区中文字幕| 成人av免费在线播放| 蜜臀av一区二区在线免费观看| 亚洲人成网站影音先锋播放| 久久亚洲影视婷婷| 欧美日本乱大交xxxxx| 97国产一区二区| 国产乱理伦片在线观看夜一区| 一区二区三区加勒比av| 欧美激情一区不卡| 欧美成人vr18sexvr| 欧美日韩免费高清一区色橹橹 | 欧美日韩精品专区| 91网页版在线| 不卡视频在线观看| 国产精品亚洲综合一区在线观看| 青青草伊人久久| 日韩精品乱码免费| 亚洲一二三区视频在线观看| 国产精品久久久久久久久动漫| 久久亚洲一区二区三区明星换脸 | 欧美日韩国产综合一区二区三区| 97精品电影院| 91亚洲午夜精品久久久久久| 国产 日韩 欧美大片| 国产大陆精品国产| 国产美女av一区二区三区| 麻豆精品国产91久久久久久| 免费观看久久久4p| 久久成人麻豆午夜电影| 另类调教123区| 久久丁香综合五月国产三级网站| 久久国产麻豆精品| 久久成人精品无人区| 激情五月婷婷综合| 国产精品亚洲成人| 成熟亚洲日本毛茸茸凸凹| 国产成人综合在线| 成人妖精视频yjsp地址| 丰满少妇在线播放bd日韩电影| 成人黄色a**站在线观看| 成人高清视频在线| 91在线视频18| 在线影院国内精品| 91精品国产综合久久福利软件 | 国产一区二区视频在线| 国产成人在线电影| 在线欧美小视频| 91极品视觉盛宴| 制服.丝袜.亚洲.另类.中文| 日韩一级大片在线观看| ww亚洲ww在线观看国产| 久久嫩草精品久久久精品| 国产三级一区二区| 免费视频最近日韩| 精品一区二区av| 成人伦理片在线| 欧美三片在线视频观看 | 26uuu亚洲| 亚洲国产成人在线| 一区二区三区四区不卡在线 | 美腿丝袜在线亚洲一区| 粉嫩av一区二区三区粉嫩| 日本丶国产丶欧美色综合| 精品视频在线视频| 26uuu亚洲| 亚洲最新视频在线观看| 精品综合久久久久久8888| 成人综合日日夜夜| 欧美日韩精品是欧美日韩精品| 日韩一区二区三区电影在线观看| 国产精品午夜久久| 亚洲不卡在线观看| 国产精品综合久久| 欧美日精品一区视频| 久久一日本道色综合| 亚洲午夜精品网| 国产成人精品亚洲日本在线桃色| 欧美优质美女网站| www国产成人| 亚洲国产精品久久一线不卡| 国产一区91精品张津瑜| 欧美浪妇xxxx高跟鞋交| 国产色一区二区| 日日嗨av一区二区三区四区| 成人夜色视频网站在线观看| 欧美一区二区三区四区视频| 亚洲另类一区二区| 国产福利不卡视频| 日韩欧美中文字幕一区| 亚洲精品乱码久久久久久 | 亚洲精品一卡二卡| 国产经典欧美精品| 4438x亚洲最大成人网| 亚洲欧美日韩国产一区二区三区| 国产真实乱偷精品视频免| 欧美日韩免费电影| 亚洲视频免费在线| 国产成人一级电影| 日韩欧美二区三区| 婷婷开心激情综合| 色噜噜久久综合| 中文字幕在线不卡一区| 国产成人精品午夜视频免费| 欧美一区二区成人| 日韩黄色免费电影| 欧美日韩三级在线| 一区二区三区四区av| 91免费在线播放| 国产精品国产自产拍高清av | 欧美aⅴ一区二区三区视频| 欧日韩精品视频| 一级做a爱片久久| 色哟哟精品一区| 亚洲日本va午夜在线电影| 成人黄色在线视频| 国产精品美女久久久久久久久久久| 国产精品一二三四区| 国产亚洲欧美日韩日本| 国产尤物一区二区| 国产亚洲精品久| 国产精品中文字幕一区二区三区| 日韩你懂的电影在线观看| 久久精品免费看| 2017欧美狠狠色| 国产精品亚洲综合一区在线观看| 久久久www免费人成精品| 国产麻豆一精品一av一免费 | 26uuu国产在线精品一区二区| 亚洲一二三区不卡| 欧美综合天天夜夜久久| 亚洲永久精品大片| 欧美日韩国产区一| 青青草原综合久久大伊人精品优势 | 国产一区二区视频在线播放| 欧美精品一区二区三| 国产精品一区二区在线观看不卡| 国产欧美一区二区三区在线看蜜臀 | 国产精品福利影院| 色8久久精品久久久久久蜜| 亚洲综合成人在线| 5566中文字幕一区二区电影| 精品一区二区免费| 国产精品天美传媒沈樵| 在线观看91视频| 蜜桃在线一区二区三区| 国产日韩欧美a| 在线精品视频免费观看| 美女视频黄频大全不卡视频在线播放| 精品国产一二三区| 99精品欧美一区二区蜜桃免费 | 日韩欧美国产一二三区| 国产黄色精品网站| 综合久久久久综合| 欧美一级欧美三级在线观看| 成人美女在线视频| 天天av天天翘天天综合网色鬼国产| 日韩欧美亚洲国产另类|