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

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

?? cheshi.#3

?? GSM MCU 開發板
?? #3
?? 第 1 頁 / 共 3 頁
字號:
#include <cheshi.h>
uchar data int_case;	//中斷標志
#define MAX_TM    100             //一個號碼暫時定為(12手機號碼)*6=72+(ALARM2T:05)*2=20=92
uchar xdata uart_buff[MAX_TM]; //通信程序中的緩沖
uchar data send_count,receive_count;
data uchar AT_Command_Type;		//當前發送的命令類型
data uchar AT_Command_Status;		//命令發出以后的返回參數
//uchar string_temp[20];
uchar idata para_temp[MAX_TM];
//uchar idata key_temp[MAX_TM];
uchar data read_tmp;             ///讀電話本號參數
uchar num_tmp1;			///讀短信號碼參數
uchar TMP_BUF;         // 萬用 值
uchar sms_tmp;			///參數代碼
uchar batt_tmp;         //電池
uchar  tel_tmp;
uchar  tel_tmp1;			///讀電話碼地址
data uchar  system_tep ;          ///報警功能開啟與關閉參數
uchar data system_server ;    //系統狀態
uint  data timercount;		//50MS定時器,
uchar data timer_1S_cnt;
uchar data timer_10S_cnt;
uchar data timer_S_cnt;
uchar data timer_led1_cnt;  //第一個燈閃計數器
uchar data timer_led2_cnt;  //第二個燈閃計數器
uchar data ring_cnt;
uchar data eer_int;       //收到TC35模塊來的錯識代碼計數器
//uchar data sync_count;		//用于TC35控制的計數器
//uchar data Pick_count ;
//uchar data Ring_count;
#define _Nop()    _nop_()
//位變量
bit hsk1_pin_flag;
bit ring_pin_flag;//振鈴腳狀態
bit ring_bit  ;  // 電話呼入 2
bit pickup_pin_flag;        //摘機腳狀態
bit txd_rxd_bit;
bit INT_TMP1;
bit INT_TMP2;
bit at_send_bit;
bit tel1_bit;  //指定呼入程序開啟與取消
bit  sms_tmp_bit;			//:發短信 QXA 可立即取消10的受控設置。但不影響***的運行

bit p2_stop_bit;
// 中斷 IO 模擬腳
bit io_p01_bit;
bit io_p02_bit;
bit io_p03_bit;
bit io_p04_bit;
bit io_p05_bit;
bit io_p06_bit;
bit io_p07_bit;
// IO設置開啟與關閉
bit io_p01_on;
bit io_p02_on;
bit io_p03_on;
bit io_p04_on;
bit io_p05_on;
bit io_p06_on;
bit io_p07_on;

 uchar Read_Call_ID(void);

//bit Hookoff_bit;
//bit Hookoff_bit1;
void int_p01() //  p1口設置
{   uchar i;
    io_p01_on=1;
    // if(!IO_P01==0) return;
     LED_S2=0;
     for(i=0;i<6;i++)    //燈閃三下
     {  timercount=0;
     	while(timercount<1) ;
     	LED_INT=~LED_INT;
     }
      ring_bit=0;
      timercount=0;
      ES=1;			//設置發送指針
      receive_count=0;
	  send_count=0xff;
	RI=0 ;
      while(timercount<120)     //2分鐘
      {   if(ring_bit)
          {  if(Read_Call_ID())    //讀來電顯示
              {   para_temp[0]=0x31; para_temp[1]=',';
             	  Send_AT_Command(PHONE_WRITE);
                  Send_AT_Command(HOOKOFF);
   				 // timer_S_cnt=0;timer_1S_cnt=0;
   				  //while(timer_S_cnt<1&&(AT_Command_Status==COMMAND_WAIT))  ;
				  io_p01_bit=0;
				  return;
               }
              ring_bit=0;

          	}


       }



}

void int_p02() //  p2口設置
{ // uchar i=;
     if(tel1_bit)   return;  //測試是關閉返回
   //  if(!IO_P02==0) return;
      if(p2_stop_bit)  return;
    	 LED_S2=0;
       if(ring_bit)
          {   Read_Call_ID();    //讀來電顯示
          }

      	   tel_diat();




}
ring_auto()   //自動監聽
{   uchar i=0,j;
	 ring_bit=0;
	   ring_cnt=1;
       timercount=0;
       while(timercount<30)     //2分鐘
       {
       		if(ring_cnt>=4)
          	{  if(Read_Call_ID())    //讀來電顯示
              	{   //if(strsearch("para_temp"))
                  	read_tmp=0x31;
   					Send_AT_Command(PHONE_READ);   //讀電話號碼

					for(j=7;j<12;j++)
					{
						if(uart_buff[j]=='\x22')   break;
    				}
    				i=2 ;
    				j++ ;
					for(;j<25;j++)
					{   if(uart_buff[j]=='\x22')   break;
						if(uart_buff[j]!=para_temp[i++])  break;


					}
                     if(uart_buff[j]!='\x22')
					 {  ring_bit=0; ring_cnt=0;
					      Send_AT_Command(HOOKOFF);
					   return;}

					 Send_AT_Command(PICK_UP);
					 timercount=0;
   				   	 while(timercount<10&&(AT_Command_Status==COMMAND_WAIT))   system_sleep;

                     Send_AT_Command(HOOKOFF);
					ring_bit=0;
					 ring_cnt=0;
					return;

              	 }

           	}
       }
	}
void int_p04() //  p4口設置
{
    //  if(tel1_bit)   return;  //測試是關閉返回
    // if(!IO_P01==0) return;
      io_p04_on=1;
      timercount=0;
      while(timercount<30) io_p04_bit=~io_p04_bit;    //2分鐘
      if(io_p04_on) return;
      tel_diat();

}
void   tel_diat2();

void int_p07() //  p4口設置
{
    //  if(tel1_bit)   return;  //測試是關閉返回
    // if(!IO_P01==0) return;
      io_p07_on=1;
      timercount=0;
    //  while(timercount<10) io_p07_bit=~io_p07_bit;    //2分鐘
     // if(io_p07_on) return;
      tel_diat2();

}

void  Int_Timer0(void) interrupt 1 using 3
{

   #if  CPU_TYPE2==PLC900
	if(eer_int<=9)
	   {
			EA = 0; //關閉中斷
			WFEED1 = 0xA5; //執行清零第一部分
			WFEED2 = 0x5A; //執行清零第二部分
			EA = 1; //開中斷
			TH0 = 0x27;  //7.373
			TL0 = 0xFF;
		}


  #elif  CPU_TYPE2==C8051F330
     	 TH0 = 0x9e;
    	 TL0 = 0x38;

  #endif
 //  timercount++;
   timer_1S_cnt++;
   timer_led2_cnt++;
   timer_led1_cnt++;
   if(timer_1S_cnt==40)    //25×40=1000MS  =1S
    { timer_10S_cnt++;
      timer_1S_cnt=0;
      timer_S_cnt++;


    }
    if(timer_10S_cnt==16)   //10S
    {  //timer_S_cnt++;
	//LED_INT=~LED_INT;
	   timer_10S_cnt=0;
	    timercount++;
	}



   //-------------------------------------
    IO_P01=1;
	if((io_p01_bit!=IO_P01))
	{

		if(IO_P01==0)
		{
			//int_case|=INT_RINGOFF;
			//int_case&=~INT_RING;
			io_p01_on=0;
			//system_server=SYS_RING;
		}
		//else  {  system_server=SYS_SMSR; io_p01_on=1; }
		io_p01_bit=IO_P01;
	}
  //---------------------------------------------------
   IO_P02=1;
	if((io_p02_bit!=IO_P02))
	{

		if(IO_P02==0)
		{
			//int_case|=INT_RINGOFF;
			//int_case&=~INT_RING;
			io_p02_on=0;
			//system_server=SYS_RING;
		}
		else  {  system_server=SYS_SMSR; io_p02_on=1; }
		io_p02_bit=IO_P02;
	}

	//---------------------------------------------
	IO_P03=1;
	if((io_p03_bit!=IO_P03))
	{

		if(IO_P03==0)
		{
			//int_case|=INT_RINGOFF;
			//int_case&=~INT_RING;
			io_p03_on=0;
			//system_server=SYS_RING;
		}
		else  {  system_server=SYS_SMSR; io_p03_on=1; }
		io_p03_bit=IO_P03;
	}
//--------------------------------------------------
	IO_P04=1;
	if((io_p04_bit!=IO_P04))
	{

		if(IO_P04==0)
		{
			//int_case|=INT_RINGOFF;
			//int_case&=~INT_RING;
			io_p04_on=0;
			//system_server=SYS_RING;
		}

		io_p04_bit=IO_P04;
	}
//-----------------------------------------------------------------
    IO_P07=1;
	if((io_p07_bit!=IO_P07))
	{

		if(IO_P07==0)
		{
			//int_case|=INT_RINGOFF;
			//int_case&=~INT_RING;
			io_p07_on=0;
			//system_server=SYS_RING;
		}
		//else  {  system_server=SYS_SMSR; io_p04_on=1; }
		io_p07_bit=IO_P07;
	}
  //-------------------------------------------------------



}
/*****************************************************************************
 *                   TC35 的命令列表,與中斷服務程序                          *
 *****************************************************************************/
void  Int_Uart(void) interrupt 4 using 3  //串口的中斷程序
{
	if(TI)//數據模式與命令方式共用
	{
    		TI=0;

			if(send_count>=MAX_TM-1)  send_count=0;

			if((uart_buff[send_count]==0)) //應該檢測命令結束代碼,檢測到時結束通信
			{
                	at_send_bit=1;
                	send_count=0xff;
                	uart_buff[0]=0;		//清除接收緩沖區
                	receive_count=0;  return;
            }
			else
			{   if(uart_buff[send_count]<=0xB0)
				  SBUF=uart_buff[send_count++];

                   if((uart_buff[send_count]==0)) //應該檢測命令結束代碼,檢測到時結束通信
					{ at_send_bit=1;
                	 send_count=0xff;
                	 uart_buff[0]=0;		//清除接收緩沖區
                	 receive_count=0;    return;
             		}
			}


    	receive_count=0;
    }

	else
	if(RI) //命令方式
		{
        	RI=0;
        	if(at_send_bit==0)      return;
        	if((send_count==0xff)&&(receive_count<MAX_TM-2))//沒有發送時才能進行接收
        	{	//所有的命令返回都是處于 0x0A [Result] 0x0D 之間,其他命令,不會出現這種情況

       			uart_buff[receive_count++]=SBUF;

        	}
        	 else
        	 {
       			//ACC=SBUF;
       			return;
       		 }


		if(receive_count>=MAX_TM-2)
       		{  eer_int=0;
       			if(AT_Command_Type==SMS_CMGR)    receive_count=0;
         		else
		   		 {	receive_count=0;
		   	 		AT_Command_Status=COMMAND_OK;
        			return;
				 }
			     receive_count=0;
 			}

       	if((receive_count==2)&&(uart_buff[1]==0x0d))//沒有包含為其他信息的命令返回
       		{	//接收到一個命令回應,可能為,0-OK  1-CONNECT 2-RING 3-NO CARRIER 4-ERROR
       			//只返回OK

       			uart_buff[receive_count]=0;
       			if(uart_buff[0]=='0')
       			{
       				AT_Command_Status=COMMAND_OK;  //txd_rxd_bit=1;
       			}
       			if(uart_buff[0]=='2')
       			{    ring_bit=1;  ring_cnt++;
       				 AT_Command_Status=COMMAND_OK;  //txd_rxd_bit=1;
       				 ES=1;			//設置發送指針
     				 receive_count=0;
	  				 send_count=0xff;
       			}
       			else if(uart_buff[0]=='4'||uart_buff[0]=='3')
       		    {  AT_Command_Status=COMMAND_ERROR;}
       			else AT_Command_Status=COMMAND_UNKNOW;
  				 txd_rxd_bit=1;
       			 uart_buff[receive_count]=0;
       			 return;
		    }

   		else if((uart_buff[receive_count-1]==0x0d)
   			  &&(receive_count>=3)
   			  &&(uart_buff[receive_count-3]==0x0a)
   		      &&((uart_buff[receive_count-2]=='0')))
   		    {  ///可能是包含為其他信息的命令返回
        		  uart_buff[receive_count]=0;//RECEIV OK ANSWER, with some message
                  AT_Command_Status=COMMAND_OK;     txd_rxd_bit=1;
                  eer_int=0;
        		 // if(uart_buff[receive_count-2]=='0')
        		 // {AT_Command_Status=COMMAND_OK;}
        		// else{ AT_Command_Status=COMMAND_WAIT; receive_count=0;}
        	}

         else if(AT_Command_Type==SMS_CMGS&&uart_buff[3]=='>')
        	{	AT_Command_Status=COMMAND_OK;    txd_rxd_bit=1;
        		return;
        	}


	}//End of if(RI)
}
/*********************************************************************
 *                  C51中字符串函數的擴充                            *
 *********************************************************************/

uchar strsearch(uchar *ptr2)//查字符串*ptr2在*ptr1中的位置
//本函數是用來檢查字符串*ptr2是否完全包含在*ptr1中
//返回:  0  沒有找到
//       1-255 從第N個字符開始相同
{
//、	uchar max_length;
	uchar i,j,k;
	uchar flag;
	if(ptr2[0]==0) return(0);
	//max_length=strlen(ptr)+1;
	flag=0;
	for(i=0,j=0;i<MAX_TM-2;i++)
	{
        if(uart_buff[i]==ptr2[j])
        {//第一個字符相同
        	for(k=i;k<MAX_TM-2;k++,j++)
        	{
        		if(ptr2[j]==0)//比較正確
        			return(i+1);               //返回值是整數,不含0
        		if(uart_buff[k]!=ptr2[j]) break;
        	}
        	j=0;
        }
	}
	return(0);
}

//============================================
//==========       讀寫短信程序
//====================================================
void read_sms()
{    uchar  i,t,j,r;

      for(r=1;r<20;r++)
       {
       	if(system_server==SYS_RING) return;
       	 num_tmp1=r;
		if(READ_TEL(r)!=1)    //讀一個短信    at+cmgr=1-19      讀指令
		{   //timer_S_cnt=0;timer_1S_cnt=0;
			//while(timer_S_cnt<15) system_sleep;
			if(system_server==SYS_RING) return;
			timer_S_cnt=0;timer_1S_cnt=0; while(timer_S_cnt<10) system_sleep;
            if(!io_p03_on)   p2_stop_bit=1;     //P3如為低電平即可馬上取消2的設置
            else if(!io_p01_on)  int_p01();
             else if(!io_p02_on)  int_p02();
             else if(!io_p04_on)  int_p04();
             else if(!io_p07_on)  int_p07();
             else { if(ring_bit)  ring_auto();
                   else  ring_bit=0; }
              //+CMTI: "SM",1
            if(strsearch("+CMTI:"))  return;
            io_p01_bit=0;
			io_p02_bit =0;
			io_p04_bit=0;

           if(r==16)
           {//timer_S_cnt=0;timer_1S_cnt=0; while(timer_S_cnt<1&&(AT_Command_Status==COMMAND_WAIT)) system_sleep;
          // Send_AT_Command(SMSS_ID);
		  //  timer_S_cnt=0;timer_1S_cnt=0; while(timer_S_cnt<1&&(AT_Command_Status==COMMAND_WAIT)) system_sleep;

           	}
			continue;
		}

      //---------------手機號碼設置-------------
		if((i=strsearch("HS")))       // 發短信 HSP 13*********(A者);發短信 HSD 13*********(B者)
		{
			if(!io_p07_on)    goto DELTER; 		//**當P7口為低電平時,可使9開始受控,
            if(sms_tmp_bit)  goto DELTER;   //可立即取消10的受控設置
			 tel_tmp1=i-1;
            i=i+1;t=0;  j=2;
			if((uart_buff[i]=='P'))
			{
			  	para_temp[0]=0x31;
			}
			 else if((uart_buff[i]=='D'))
               { para_temp[0]=0x32;
            }
            else goto DELTER;
			  	 //短信發送的手機號碼在存在SIM卡中的是4,5,6位置
											     //要存的手機號碼位置如果是1那在SIM卡中的位置就是4
	    			i=i+1;
			  		tel_tmp=i;          //手機號碼的起始位置
		     	system_server=SYS_TEL;

	     }


		//-----  ---設維護,進行設備人工關閉  ------------------
			 else if(i=strsearch("QXP2"))   //控制關閉系統
			 {
				//	sms_tmp=0;
			 		//system_server=SYS_RING;
			 		tel1_bit=1;  //短信取消P2口線設置:發送短信 QXP2 即可取消2的設置.
			 		 goto DELTER;
			 		//continue;

			}
            else if(i=strsearch("QXA"))  // 發短信 QXA 可立即取消10的受控設置。但不影響***的運行。

			 {

			 		sms_tmp_bit=1;
			 		 goto DELTER;

		     }
            else if(i=strsearch("XHT"))   // P5口將變為低電平
			 {
				IO_P05=0;  //短信取消P2口線設置:發送短信 QXP2 即可取消2的設置.

			 goto DELTER;


			}
		else if(i=strsearch("GYT"))   //發短信 GYT  P5口將變為高電平
			 {
				IO_P05=1;  //短信取消P2口線設置:發送短信 QXP2 即可取消2的設置.

			 	 goto DELTER;

			}
 		//--------------------------設備從新啟--------------------------
			 else if(i=strsearch("START"))   //控制系統開啟
			 {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美剧情电影在线观看完整版免费励志电影 | 久久久久久夜精品精品免费| 欧美伊人久久大香线蕉综合69| www.性欧美| 91在线国产观看| 色噜噜狠狠成人中文综合| 99久久久国产精品免费蜜臀| 91视频精品在这里| 欧洲一区在线电影| 欧美日韩在线三区| 色呦呦国产精品| 成年人国产精品| 成人在线一区二区三区| 99精品视频在线播放观看| 91福利在线导航| 在线成人高清不卡| 日韩精品中文字幕在线一区| 日韩欧美一级二级三级久久久| 精品国产第一区二区三区观看体验| 亚洲精品一区二区三区精华液| 久久精品夜色噜噜亚洲aⅴ| 欧美国产国产综合| 国产精品毛片a∨一区二区三区| 日本一区二区三区四区在线视频| 国产精品三级视频| 亚洲视频免费在线| 美国一区二区三区在线播放| 韩国三级中文字幕hd久久精品| 国产91精品免费| 欧美在线视频不卡| 久久人人97超碰com| 亚洲免费观看高清完整版在线观看| 丝袜美腿高跟呻吟高潮一区| 狠狠狠色丁香婷婷综合激情| 91视频.com| 精品欧美一区二区久久 | 一本久道久久综合中文字幕| 在线亚洲免费视频| 久久在线观看免费| 日韩久久一区二区| 美女免费视频一区二区| 色综合天天综合色综合av| 日韩一区二区免费视频| 国产精品高潮呻吟| 久久99精品久久久久久 | 美女视频第一区二区三区免费观看网站| 国产精品自拍三区| 欧美日韩小视频| 中文字幕视频一区| 精品写真视频在线观看| 欧美在线色视频| 综合久久久久久久| 成人精品国产福利| 精品美女被调教视频大全网站| 一个色在线综合| 91在线国产福利| 国产午夜久久久久| 激情综合网av| 欧美一区二区三区影视| 亚洲小说欧美激情另类| 一本色道久久综合狠狠躁的推荐| 国产日韩欧美精品电影三级在线| 美女一区二区久久| 欧美日本精品一区二区三区| 亚洲综合丁香婷婷六月香| 成人app下载| 国产精品免费久久| 国产成人aaa| 欧美国产一区二区| 国产在线国偷精品产拍免费yy | 精品一区免费av| 69堂精品视频| 日本一不卡视频| 91精品国产91久久久久久一区二区 | 久久蜜桃av一区二区天堂| 日韩精品亚洲一区二区三区免费| 欧美三级韩国三级日本一级| 一区二区三区日韩| 国产欧美一区二区在线观看| 久久99国产精品免费网站| 91麻豆精品国产自产在线| 日韩经典中文字幕一区| 欧美一级日韩不卡播放免费| 久久电影国产免费久久电影| 欧美一级专区免费大片| 国产综合色产在线精品| 国产日韩精品久久久| 99久久精品免费| 一区二区三区日韩欧美精品| 717成人午夜免费福利电影| 久久精品免费看| 欧美国产综合色视频| 欧美伊人久久久久久午夜久久久久| 香蕉影视欧美成人| 欧美mv日韩mv国产网站app| 国产成人在线视频网站| 亚洲日本青草视频在线怡红院| 欧美日韩一区二区三区四区| 久久成人麻豆午夜电影| 国产精品九色蝌蚪自拍| 欧美性做爰猛烈叫床潮| 麻豆久久一区二区| 国产精品久久一级| 欧美精品在线观看一区二区| 九九国产精品视频| 亚洲精品国久久99热| 日韩视频一区二区在线观看| 成人性生交大片免费看中文| 一区二区欧美精品| 精品国产1区二区| 在线一区二区三区四区五区 | 韩国女主播一区| 1024成人网色www| 欧美一区二区三区爱爱| 国产91富婆露脸刺激对白| 欧美日韩国产一二三| 成人av网站免费观看| 日韩中文字幕一区二区三区| 国产欧美精品一区| 日韩三级视频在线观看| 色综合亚洲欧洲| 国产91精品精华液一区二区三区| 日日摸夜夜添夜夜添精品视频| 日本一区二区三区久久久久久久久不 | 日韩在线a电影| 中文字幕一区二区三区四区| 日韩欧美成人一区二区| 91福利资源站| 96av麻豆蜜桃一区二区| 狠狠色丁香久久婷婷综| 奇米在线7777在线精品 | 久久色.com| 欧美一区二区日韩| 欧美在线你懂的| 91丨porny丨中文| 成人夜色视频网站在线观看| 久久成人综合网| 日本欧美在线观看| 五月天一区二区三区| 亚洲一区二区综合| 亚洲视频 欧洲视频| 国产精品传媒在线| 国产亚洲精品资源在线26u| 精品国产一区二区三区av性色| 欧美精品丝袜久久久中文字幕| 91麻豆免费看| 色婷婷香蕉在线一区二区| 97久久超碰国产精品| 99在线精品视频| 波多野结衣欧美| 91蜜桃视频在线| 在线看一区二区| 欧美日韩第一区日日骚| 欧美三级在线视频| 欧美另类高清zo欧美| 日本特黄久久久高潮 | 日韩免费看的电影| 欧美草草影院在线视频| 精品国产一区久久| 久久久蜜臀国产一区二区| 国产欧美一区二区精品秋霞影院| 久久色中文字幕| 国产精品久久久久久久久久久免费看 | 一区二区中文字幕在线| 国产精品久久精品日日| 亚洲精品综合在线| 亚洲国产精品一区二区久久| 亚洲成人免费在线观看| 午夜精品久久久久久久99水蜜桃| 天天色天天爱天天射综合| 久久99精品国产91久久来源| 国产美女视频91| aaa欧美色吧激情视频| 欧美一a一片一级一片| 日韩免费视频一区| 国产精品久久三| 日韩国产精品大片| 成人自拍视频在线观看| 欧洲精品一区二区三区在线观看| 91麻豆精品国产91久久久使用方法 | 在线观看日韩一区| 91精品国产色综合久久久蜜香臀| 欧美草草影院在线视频| 亚洲国产精品t66y| 偷窥少妇高潮呻吟av久久免费| 久久精品久久精品| www.在线成人| 亚洲综合清纯丝袜自拍| 韩国av一区二区三区在线观看| 国产99一区视频免费| 在线一区二区三区做爰视频网站| 日韩精品一区二区三区视频| 国产欧美视频一区二区三区| 亚洲综合视频在线| 国产精品1区2区3区在线观看| 欧美亚洲自拍偷拍| 国产欧美日韩亚州综合| 日本aⅴ免费视频一区二区三区| 成人动漫视频在线| 精品精品欲导航|