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

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

?? cheshi.c

?? GSM MCU 開發板
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include <cheshi.h>
uchar data int_case;	//中斷標志
#define MAX_TM   90         // AT指收發數組最大緩沖
#define MAX_T  60
uchar idata uart_buff[MAX_TM]; //通信程序中的緩沖
uchar idata send_count,receive_count;    //發送與接收 數組指針
data uchar AT_Command_Type;		//當前發送的命令類型
data uchar AT_Command_Status;		//命令發出以后的返回參數
uchar idata para_temp[MAX_T];     //多用臨時用
uchar data read_tmp;             ///讀電話本號參數
uchar data num_tmp1;			///讀短信號碼參數
uchar data TMP_BUF;         // 萬用 值
uchar data sms_tmp;			///短信處理參數代碼
uchar idata TEL_temp[20];   //存對方號碼,
#define IO_OUT			P3_6  ///蜂鳴器
uchar data system_server ;    //系統狀態
//多用值一般不用于多級
uchar tmp_i,tmp_j ;
//---定時用-----------
uint  data timercount;		//50MS定時器,
uchar data timer_1S_cnt;
uchar data timer_10S_cnt;
uchar data timer_S_cnt;
//--------------------
uchar idata LED_P0;
uchar data ring_cnt;    //振鈴用
uchar idata PT2272_BUF;//存儲用
uchar bdata PT2272_TMP;  //無線控制
sbit PT2272_D0=   PT2272_TMP^0;
sbit PT2272_D1=   PT2272_TMP^1;
sbit PT2272_D2=   PT2272_TMP^2;
sbit PT2272_D3=   PT2272_TMP^3;
sbit PT2272_VT=   PT2272_TMP^4;
//位變量
bit TC35_bit  ;
bit ring_bit  ;  // 電話呼入 2
bit PT2272_BIT;   //315M-是否連結到設備上

bit txd_rxd_bit;    //接收正確的指令中斷
bit at_send_bit;    //發送允許


// 中斷 IO 模擬腳
bit io_p00_bit;
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_p00_on;
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);

 //硬件處理
void int_p02() // 發短中文短信前設置。 P0.2燈閃,同時蜂鳴器長叫一聲
{
     LED_INT2=1; BELL=0;
     for(tmp_i=0;tmp_i<8;tmp_i++)    //燈閃三下
     {  timercount=0;  while(timercount<10) watch_dog_clear;
     	LED_INT2=~LED_INT2;
     }
     BELL=1; LED_INT2=0; io_p02_on=1;

      read_tmp=0x31;  TMP_BUF=0;    //讀電話本1
   	  PHONE_RD(); para_temp[TMP_BUF++]=0x0d;para_temp[TMP_BUF++]=0x00;
   	  TMP_BUF=0;   // 將讀出的電話號碼轉存起來,做發送對方號碼
   	  do{
   	       TEL_temp[TMP_BUF]=para_temp[TMP_BUF];  TMP_BUF++;
   	    }while( TMP_BUF<=18);
      sms_tmp=smss_para;   //回中文短信
      send_sms(); //調用發短信

}

//硬件處理
void int_p03() // 發短中文短信前設置。 P0.2燈閃,同時蜂鳴器長叫一聲
{
     LED_INT2=1; BELL=0;
     for(tmp_i=0;tmp_i<8;tmp_i++)    //燈閃三下
     {  timercount=0;  while(timercount<10) watch_dog_clear;
     	LED_INT2=~LED_INT2;
     }
     BELL=1; LED_INT2=0; io_p02_on=1;

      read_tmp=0x31;  TMP_BUF=0;    //讀電話本1
   	  PHONE_RD(); para_temp[TMP_BUF++]=0x0d;para_temp[TMP_BUF++]=0x00;
   	  TMP_BUF=0;   // 將讀出的電話號碼轉存起來,做發送對方號碼
   	  do{
   	       TEL_temp[TMP_BUF]=para_temp[TMP_BUF];  TMP_BUF++;
   	    }while( TMP_BUF<=18);
      sms_tmp=smss_tel;//英文短信回
      send_sms();       //  //調用發短信

}

//------------------------
//----------------------
//--定時器中斷位,是整個程序的心跳,如果停止,程序會死機
void  Int_Timer0(void) interrupt 1 using 3
{
         TH0 = 0xB8;
		 TL0 = 0x00; //20ms的時鐘基準
    watch_dog_clear;
   timer_1S_cnt++;   timercount++;
   if(timer_1S_cnt==50)    //20×50=1000MS  =1S
    { timer_10S_cnt++; timer_1S_cnt=0;
      timer_S_cnt++;
 	  LED_INT0=~LED_INT0;

    }                              //1秒=1000毫秒
    if(timer_10S_cnt==10)   //10S
    {
	   timer_10S_cnt=0;

	}

  //---------硬件中斷處理---------------------------------------------------------------------
   //-------P2.7-D0,P2.6-D1,P2.5-D2,P2.4-D3,    P2.3-VT-315M有信號中斷,----------------------------
   //如果有PT2272接入 P2接入口會為低,P2.3-P2.7=0;
    P2=0xff;
    PT2272_BUF= P2&0x0F;     //加VT就是0xf1
    if(PT2272_BUF==0)  //狀態檢測
    {    PT2272_BIT=1; //可以進行中斷
    }

    else if(((PT2272_BUF>0)&&((PT2272_BUF&0x0f)!=0x0f))&&PT2272_BIT==1) //這種方法只用于PT2272-M4的芯片
    {   PT2272_TMP= PT2272_BUF;
    	PT2272_BIT=0;
    }
    //---------------------------

    IO_P25=1;        //外部中斷 P25口
	if((io_p00_bit!=IO_P25))
	{
		if(IO_P25==0)
		{ io_p00_on=0;
		}

		io_p00_bit=IO_P25;
	}
    IO_P24=1;        //外部中斷 P24口
	if((io_p02_bit!=IO_P24))
	{
		if(IO_P24==0)
		{ io_p02_on=0;
		}

		io_p02_bit=IO_P24;
	}
	IO_P35=1;        //外部中斷 P35口
	if((io_p03_bit!=IO_P35))
	{
		if(IO_P35==0)
		{ io_p03_on=0;
		}

		io_p03_bit=IO_P35;
	}

  //---------------------------------------------------------------------------------

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

			if(send_count>=MAX_TM-5)  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-3))//沒有發送時才能進行接收
        	{	//所有的命令返回都是處于 0x0A [Result] 0x0D 之間,其他命令,不會出現這種情況
                uart_buff[receive_count++]=SBUF;
        	}
        	 else
        	 {   receive_count=0;
       			 return;
       		 }
		  if(receive_count>=MAX_TM-3)
       		{
       			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

       			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;   //receive_count=2 ;
       			 return;
		    }

   		else if(((receive_count>=3)
   		       &&uart_buff[receive_count-1]==0x0d)
   			   &&(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;

        	}

         else if((AT_Command_Type==SMS_CMGS||AT_Command_Type==AT_COMMAND)&&uart_buff[2]=='>')
        	{	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);
	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);
}
//=============================================================================
//                  話機被叫程序
//=============================================================================
//=============================================================================
//                  話機被叫程序
//=============================================================================
uchar Read_Call_ID(void)//讀出來電顯示的號碼
//正確  TRUE
//錯誤  FALSE
//號碼  string_temp[0..16],最多顯示前16位
//呼叫方式 stringt_temp[20]
{
	uchar i,j,r;

	Send_AT_Command(CALL_ID);//+CLCC:1,1,4,0,0,"02138950224",129
	//	語音呼入

	//string_temp[0]=0;
	//string_temp[20]=0;  //讀來電顯示出錯時設為1
	if(receive_count<15) return(FALSE);
	uart_buff[receive_count]=0;
	 ring_bit=0;

      ES=1;			//設置發送指針
      receive_count=0;
	  send_count=0xff;
	  RI=0 ;
	j=0;
//	i=strsearch(uart_buff,"CLCC");//查第一個CLCC
    i=strsearch("CLCC");//查第一個CLCC
	if(i==0) return(FALSE);
	j=j+i;
	for(r=0;r<9;r++)
	{
	if(uart_buff[j]==',')   break;
	else  j=j+1;
   }
	if(r>=9) return(FALSE);
	j=j+1;
	for(r=0;r<4;r++)
	{
		if(uart_buff[j]==',')    break;
		else  j=j+1;
    }
	if(r>=4) return(FALSE);
	j=j+1;
	//檢查是否為來話呼叫
	if(uart_buff[j]!='4') return(FALSE);
	for(r=0;r<4;r++)
	{
	if(uart_buff[j]==',')    break;
	else  j=j+1;
    }
	if(r>=4) return(FALSE);
	j=j+1;
//	string_temp[20]=uart_buff[j];//讀出呼叫類型
	//只要能讀出呼叫類型就認為正確
   //	i=strsearch(&uart_buff[j],"\x22");//查第一個"號
   	for(r=0;r<6;r++)
	{
	if(uart_buff[j]=='\x22')   break;
	else  j=j+1;
    }

	if(r>=6)
		return(FALSE);
   	j=j+1;
   i=j;
   //	i=strsearch(&uart_buff[j],"\x22");//查第二個"號
   	for(r=0;r<20;r++)
	{
	if(uart_buff[j]=='\x22')   break;
	else  j=j+1;
   }
   	if(i<=2) return(FALSE);//沒有來電號碼
   	for(r=0;r<22;r++)
	{
       para_temp[r+2]=uart_buff[i++];
	   if(uart_buff[i]=='\x22')
	   { para_temp[r+3]=0x0d;para_temp[r+4]=0x00;uart_buff[i++]=0x0d;uart_buff[i++]=0; break;}

	 }
     uart_buff[i++]=0;uart_buff[i++]=0;
   	return(TRUE);
}

void ring_auto()   //自動監聽  當有電話呼入,只有車主電話可以監聽,別的電話會自動掛機
{   uchar i=0;
	 ring_bit=0;
	 ring_cnt=1;
	 LED_INT6=0;
     timercount=0;
     i=0;

          		if(Read_Call_ID())    //讀來電顯示
              	{  	 ring_cnt=0;
              		timer_S_cnt=0; while(timer_S_cnt<6) watch_dog_clear;
                    if(ring_cnt>=1)
              		 { ring_cnt=0;  Send_AT_Command(PICK_UP);
   				   	  	ES=1;			//設置發送指針
    					receive_count=0;
					    send_count=0xff;
    					uart_buff[0]=0;
						 RI=0 ;
    					AT_Command_Status=COMMAND_WAIT;	//設置接收成功標志
   				   	 	while((AT_Command_Status==COMMAND_WAIT))  watch_dog_clear;
   				   	 }
                     Send_AT_Command(HOOKOFF);
					 ring_bit=0;
					 ring_cnt=0;
					 LED_INT6=1;
					return;

              	}
              	else   { LED_INT6=1; return;   }



       LED_INT6=1;
}
//----------------------------------------------
//---------這里進行中斷查詢如果有中斷馬上處理----------------------
uchar P2_INIT()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国内精品自在自线400部| 精品日产卡一卡二卡麻豆| 日本一区二区三区国色天香| 日韩二区三区四区| 欧美视频自拍偷拍| 亚洲综合一区二区| 成人的网站免费观看| 国产视频911| av一区二区三区黑人| 国产精品美女久久久久久久网站| 东方欧美亚洲色图在线| 久久精品夜色噜噜亚洲a∨| 国产精品自在在线| 日本一区二区三级电影在线观看 | 狠狠网亚洲精品| 欧美少妇bbb| 一区二区三区精品在线| 日本道精品一区二区三区| 一区二区三区中文在线观看| 欧美曰成人黄网| 日韩中文欧美在线| 精品国产一区二区国模嫣然| 黄网站免费久久| 国产精品久久免费看| 日本韩国一区二区| 亚洲成av人影院在线观看网| 9i看片成人免费高清| 一区二区三区中文在线| 欧美一区二区二区| 国产一区二区毛片| 日韩一区中文字幕| 欧美一区三区四区| 成人深夜福利app| 亚洲欧美日韩在线不卡| 欧美精品色综合| 国产精品一区二区视频| 亚洲精品国产无套在线观| 欧美日本在线一区| 韩国在线一区二区| 亚洲免费在线观看| 欧美精选一区二区| 国产精品888| 亚洲成人av在线电影| 精品国产电影一区二区| caoporen国产精品视频| 午夜精品久久久| 国产亚洲1区2区3区| 欧美四级电影在线观看| 国产一区二区三区蝌蚪| 亚洲大片免费看| 自拍偷拍欧美精品| 日韩欧美第一区| 91浏览器打开| 国产成人亚洲综合a∨猫咪| 亚洲一区二区三区四区在线 | 亚洲日本在线看| 欧美一区二区视频在线观看2020| 懂色一区二区三区免费观看| 老司机精品视频在线| 一区二区三区四区av| 国产视频不卡一区| 欧美一区二区三区色| 91色乱码一区二区三区| 国产成人一区二区精品非洲| 久久91精品久久久久久秒播 | 日本一区二区三区视频视频| 精品剧情在线观看| 欧美视频在线一区二区三区| 色哟哟一区二区三区| 成人免费视频视频在线观看免费| 日韩一区精品视频| 日韩激情视频在线观看| 一区二区视频在线看| 久久色在线观看| 久久影院视频免费| 日韩午夜电影av| 欧美午夜电影网| 99精品国产热久久91蜜凸| 国产精品一二三区在线| 粉嫩在线一区二区三区视频| 激情文学综合网| 亚洲成人av一区二区| 午夜精品久久久久久久久久| 一区二区三区中文字幕精品精品| 欧美国产乱子伦| 中文字幕第一区| 国产校园另类小说区| 久久众筹精品私拍模特| 久久女同互慰一区二区三区| 欧美va日韩va| 欧美大片日本大片免费观看| 欧美一区二视频| 色88888久久久久久影院按摩 | 久久超碰97中文字幕| 午夜久久久影院| 亚洲国产一区视频| 亚洲高清在线精品| 亚洲成a天堂v人片| 日本亚洲电影天堂| 久久精品国内一区二区三区 | 亚洲精品中文字幕乱码三区 | 日韩精品一区二区三区四区视频 | 热久久一区二区| 日韩精品免费视频人成| 一区在线观看免费| 一个色妞综合视频在线观看| 亚洲国产欧美在线| 亚洲午夜电影在线观看| 丝袜美腿成人在线| 久久99精品久久久久久国产越南 | 精品国产91亚洲一区二区三区婷婷| 欧美精品日韩一区| 日韩精品一区二区在线| 久久亚洲影视婷婷| 337p日本欧洲亚洲大胆色噜噜| 欧美三区在线观看| 欧美精品一区二区精品网| 久久免费电影网| 亚洲欧美在线视频| 亚洲成人精品一区| 久久激情五月婷婷| 成人午夜私人影院| 欧美在线播放高清精品| 日韩一级大片在线观看| 中文字幕av资源一区| 一区二区三区影院| 一区二区三区在线观看网站| 偷窥少妇高潮呻吟av久久免费| 久久99日本精品| 成人av免费在线观看| 在线成人av网站| 国产拍揄自揄精品视频麻豆| 久久99国产精品麻豆| 成人一级片在线观看| 欧美日韩亚州综合| 亚洲精品在线电影| 亚洲一区在线观看免费 | 精品国产伦理网| 一区2区3区在线看| av在线不卡电影| 欧美xxxxxxxxx| 日韩国产欧美在线播放| 99热精品一区二区| 久久久蜜桃精品| 久久国产三级精品| 欧美精品高清视频| 亚洲欧美另类久久久精品2019| 国产69精品久久777的优势| 日韩视频中午一区| 日韩不卡一区二区| 精品视频一区三区九区| 依依成人综合视频| 91日韩一区二区三区| 国产精品久久久久久久久搜平片| 国产精品99久久不卡二区| 日韩一级片网站| 蜜桃视频第一区免费观看| 欧美久久久久中文字幕| 午夜激情一区二区| 欧美日韩一区二区在线观看| 亚洲一区二区三区四区的| 在线免费观看日韩欧美| 亚洲摸摸操操av| 色噜噜偷拍精品综合在线| 亚洲免费伊人电影| 色乱码一区二区三区88| 亚洲精品va在线观看| 在线观看视频一区二区| 亚洲综合色视频| 欧美日韩一区二区在线观看视频| 亚洲在线一区二区三区| 欧美写真视频网站| 亚洲视频一区二区免费在线观看| av爱爱亚洲一区| 亚洲综合免费观看高清完整版在线 | 欧美激情一区在线| 波波电影院一区二区三区| 亚洲国产高清在线| 91色九色蝌蚪| 亚洲国产日韩一区二区| 日韩一区二区三区视频在线| 久久激情五月婷婷| 一区二区三区在线视频免费| 欧洲一区在线观看| 日本成人中文字幕| 欧美mv和日韩mv的网站| 国产成人自拍网| 1区2区3区欧美| 欧美日韩成人一区| 激情五月婷婷综合网| 国产精品视频一二三区| 一本色道久久综合狠狠躁的推荐 | 色av一区二区| 日韩电影在线免费看| 国产亚洲精品bt天堂精选| 99久久免费国产| 午夜精品久久久久久| 久久伊人中文字幕| 色哟哟在线观看一区二区三区| 日韩高清不卡一区|