亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩福利电影在线| 国产精品久久一卡二卡| 午夜激情久久久| 欧美日韩精品三区| 欧美一区二区三区精品| 免费日本视频一区| 亚洲精品在线电影| 成人免费视频caoporn| 亚洲人123区| 欧美日韩精品免费观看视频| 天堂av在线一区| 久久久噜噜噜久久人人看| 国产成人精品一区二| 亚洲欧洲av色图| 欧美日韩中文字幕一区二区| 日韩精品一级二级| 久久精品视频一区二区| 欧美一级生活片| 另类综合日韩欧美亚洲| 国产日韩三级在线| 欧美视频一区二区三区| 麻豆国产一区二区| 国产精品国产三级国产有无不卡| 91黄色激情网站| 加勒比av一区二区| 亚洲人妖av一区二区| 91精品国产综合久久香蕉的特点 | 日韩欧美中文一区| 成人午夜视频在线观看| 亚洲精品水蜜桃| 精品人在线二区三区| 色婷婷精品大在线视频| 久88久久88久久久| 亚洲人一二三区| 久久久久久久久久久久电影| 在线免费观看日本欧美| 国产高清一区日本| 日韩精品欧美精品| 椎名由奈av一区二区三区| 精品sm捆绑视频| 欧美视频在线观看一区| 国产99久久久精品| 日韩国产精品久久| 亚洲六月丁香色婷婷综合久久| 日韩欧美卡一卡二| 欧美午夜影院一区| 一区二区三区在线免费| 欧美精品一区二区三区久久久| 欧美三级三级三级爽爽爽| 成人免费精品视频| 久久99九九99精品| 精品国产电影一区二区| 欧美日韩黄色影视| 91麻豆自制传媒国产之光| 国产精品自拍在线| 欧美aaaaaa午夜精品| 性感美女极品91精品| 悠悠色在线精品| 国产精品久久久久7777按摩| 久久久久久久久伊人| 欧美一区二区三区电影| 欧美午夜一区二区三区| 91视频一区二区三区| 丁香桃色午夜亚洲一区二区三区| 九色综合国产一区二区三区| 亚洲一二三四区| 亚洲激情图片一区| 亚洲乱码一区二区三区在线观看| 欧美国产日韩一二三区| 久久蜜桃av一区二区天堂| 日韩欧美高清在线| 精品少妇一区二区三区在线视频| 337p亚洲精品色噜噜狠狠| 欧美日韩不卡在线| 91久久精品午夜一区二区| 91在线视频18| 91免费版pro下载短视频| 成人av免费网站| 成人免费黄色在线| 91香蕉视频污在线| 色综合久久综合网| 欧美日韩一区二区在线观看视频 | 亚洲人成影院在线观看| 亚洲视频一二三区| 一区二区三区日本| 亚洲成人激情自拍| 日韩va亚洲va欧美va久久| 麻豆成人久久精品二区三区小说| 久久99精品久久久久久国产越南| 国产美女精品一区二区三区| 国产精品一卡二| 波多野结衣中文字幕一区 | 国产v综合v亚洲欧| 成人一区二区三区| 91免费版pro下载短视频| 欧美色图片你懂的| 日韩欧美高清一区| 欧美国产一区在线| 一区二区三区精品视频| 日韩国产一二三区| 国产综合色产在线精品| 国产成人午夜高潮毛片| 色综合一个色综合亚洲| 欧美电影影音先锋| 国产亚洲欧美中文| 亚洲免费观看视频| 久久精品久久综合| 不卡一二三区首页| 欧美美女一区二区在线观看| 欧美mv日韩mv| 亚洲人一二三区| 蜜桃久久av一区| 9i看片成人免费高清| 在线综合视频播放| 欧美激情艳妇裸体舞| 亚洲丰满少妇videoshd| 国产传媒久久文化传媒| 在线免费观看一区| 久久久久久久国产精品影院| 一区二区三区四区在线播放 | 91福利国产成人精品照片| 久久国产福利国产秒拍| 成人av在线电影| 日韩一区二区免费电影| 1区2区3区欧美| 精品无人码麻豆乱码1区2区| 日韩国产欧美在线视频| 99精品视频在线播放观看| 日韩一区二区免费电影| 一片黄亚洲嫩模| 粉嫩aⅴ一区二区三区四区五区| 欧美视频一区二区在线观看| 中文字幕乱码亚洲精品一区| 美女视频黄久久| 在线看不卡av| 欧美国产综合色视频| 欧美bbbbb| 欧美亚洲尤物久久| 国产精品乱码人人做人人爱| 日本v片在线高清不卡在线观看| 99re在线精品| 国产午夜精品久久久久久免费视| 日韩国产一二三区| 欧美日韩另类国产亚洲欧美一级| 国产精品久久久久久久久免费桃花| 久久国产人妖系列| 精品一区二区三区久久久| 欧美日韩激情一区| 亚洲国产日韩a在线播放性色| 91在线无精精品入口| 久久久国产精品不卡| 美女视频黄 久久| 欧美一区二区三区视频在线 | 亚洲综合色区另类av| 成人黄色软件下载| 北条麻妃国产九九精品视频| 337p日本欧洲亚洲大胆精品| 日本三级韩国三级欧美三级| 欧美色综合久久| 亚洲高清久久久| 欧美日韩高清一区二区三区| 亚洲一区视频在线| 欧洲色大大久久| 亚洲电影你懂得| 欧美伦理影视网| 日韩成人一级片| 欧美一区二区三区系列电影| 日本大胆欧美人术艺术动态| 国产一区二区在线视频| 久久蜜臀中文字幕| 国产成人免费在线观看不卡| 国产女同互慰高潮91漫画| 国产乱人伦偷精品视频不卡 | 91麻豆国产自产在线观看| 国产精品第一页第二页第三页| 成人91在线观看| 中文字幕在线一区免费| 色婷婷综合久久久久中文一区二区| 亚洲精品国产视频| 久久精品国产第一区二区三区| 欧美成人a视频| 国产精品一区二区91| 国产精品日韩成人| 色哟哟在线观看一区二区三区| 亚洲影视在线观看| 91麻豆精品国产91久久久资源速度 | 国产91精品一区二区麻豆网站 | 国产拍揄自揄精品视频麻豆| 福利电影一区二区| 亚洲女人小视频在线观看| 色女孩综合影院| 午夜电影网亚洲视频| 26uuu国产电影一区二区| 成人一道本在线| 亚洲一区二区三区自拍| 日韩一区二区高清| 成人午夜在线免费| 五月婷婷欧美视频| 91麻豆国产福利精品| 亚洲国产毛片aaaaa无费看|