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

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

?? gsm_co.c

?? 剛做一個短信報警器的
?? C
?? 第 1 頁 / 共 3 頁
字號:
#include <cheshi.h>
uchar data int_case;	//中斷標志
#define MAX_TM   90         //80一個號碼暫時定為(12手機號碼)*6=72+(ALARM2T:05)*2=20=92
#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;
       			 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;

        	}

         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一区二区三区免费野_久草精品视频
久久久青草青青国产亚洲免观| 欧美一区二区三区思思人| 亚洲国产人成综合网站| 精品欧美黑人一区二区三区| 97久久精品人人澡人人爽| 日本va欧美va欧美va精品| 亚洲欧洲日韩av| 亚洲精品一区二区三区精华液| 欧美亚洲国产一区在线观看网站| 久久99精品久久久久婷婷| 亚洲一区二区三区四区在线观看 | 成人免费毛片高清视频| 午夜精品一区在线观看| 亚洲欧美综合另类在线卡通| 精品久久久久av影院| 欧美三区在线视频| 91视频国产资源| 国产电影一区二区三区| 久久99精品久久久久| 午夜精品影院在线观看| 一区二区三区四区激情| 国产精品电影一区二区| 久久久综合九色合综国产精品| 欧美美女bb生活片| 91精品福利在线| www.欧美.com| 成人久久久精品乱码一区二区三区| 美日韩一区二区| 日韩av高清在线观看| 亚洲大片精品永久免费| 一区二区三区欧美日韩| 《视频一区视频二区| 国产精品午夜久久| 中文欧美字幕免费| 国产三级精品三级在线专区| 26uuu亚洲综合色欧美| 精品毛片乱码1区2区3区| 91精品国产日韩91久久久久久| 欧美视频第二页| 欧美亚洲综合另类| 欧美日韩一区不卡| 欧美日韩视频在线观看一区二区三区 | 欧美一区二区三区日韩视频| 欧美偷拍一区二区| 欧美日韩一区二区三区在线| 欧美精品在线观看播放| 8x8x8国产精品| 欧美一区二区美女| 欧美成人官网二区| 精品国内二区三区| 国产性天天综合网| 国产精品视频第一区| 国产精品日韩精品欧美在线| 国产精品短视频| 亚洲综合在线观看视频| 亚洲bt欧美bt精品777| 日韩电影在线一区二区三区| 蜜桃免费网站一区二区三区| 狠狠久久亚洲欧美| 成人免费视频caoporn| 一本色道久久综合狠狠躁的推荐 | 亚洲一区视频在线| 日本在线播放一区二区三区| 美女www一区二区| 国产精一品亚洲二区在线视频| 粉嫩久久99精品久久久久久夜| 波多野结衣在线一区| 欧洲一区在线电影| 欧美va亚洲va| 国产精品美女久久久久aⅴ国产馆| 亚洲免费观看高清完整版在线观看熊 | 久久精品国产精品亚洲红杏| 国产69精品一区二区亚洲孕妇| 99re在线精品| 欧美一二三区在线| 国产视频一区在线播放| 一区二区三区高清| 裸体一区二区三区| av毛片久久久久**hd| 欧美男男青年gay1069videost| 26uuu国产电影一区二区| 国产精品理论片在线观看| 亚洲成人精品一区| 国产精品一区在线| 欧美在线不卡视频| 久久久国产综合精品女国产盗摄| 亚洲女性喷水在线观看一区| 美女视频免费一区| 一本一道波多野结衣一区二区| 91精品国产综合久久精品app | 日本一区二区三区四区| 一区二区三区四区亚洲| 国产美女在线精品| 欧美日韩一区久久| 国产精品家庭影院| 蜜臀av一区二区三区| 91麻豆国产自产在线观看| 欧美www视频| 亚洲国产综合色| 成人福利视频网站| 日韩欧美一级在线播放| 亚洲激情中文1区| 国产成a人亚洲精品| 欧美疯狂性受xxxxx喷水图片| 国产精品久久久久久久久久久免费看 | 亚洲午夜一区二区三区| 国产精品69毛片高清亚洲| 欧美日韩国产另类一区| 亚洲四区在线观看| 国产精品99久久久久久久vr| 欧美日韩亚洲综合| 亚洲精选在线视频| 懂色一区二区三区免费观看 | 91精品国产综合久久蜜臀| 亚洲日本在线看| 国产一区二区久久| 91精品国产综合久久福利| 亚洲影视资源网| 91免费在线看| 国产精品你懂的在线| 国产剧情一区二区三区| 精品不卡在线视频| 麻豆中文一区二区| 欧美一区二区在线看| 亚洲午夜在线视频| 色视频欧美一区二区三区| 中文字幕中文字幕在线一区| 国产精品456| 日本一区免费视频| 国产精品18久久久久久久久| 久久一区二区视频| 韩国欧美一区二区| 精品国产精品网麻豆系列| 蜜臀精品久久久久久蜜臀| 91麻豆精品国产91久久久资源速度| 亚洲一二三四区不卡| 在线日韩av片| 亚洲成人高清在线| 欧美精品免费视频| 肉丝袜脚交视频一区二区| 欧美顶级少妇做爰| 天堂蜜桃91精品| 日韩一区二区三区免费看 | 欧美一区二区福利视频| 日韩激情在线观看| 日韩一区二区影院| 国产在线精品免费| 日本一区二区三区在线观看| 成人综合在线观看| 亚洲人妖av一区二区| 色综合久久综合网97色综合| 亚洲综合色视频| 欧美日本一区二区三区| 蜜桃精品在线观看| 国产偷国产偷亚洲高清人白洁| 懂色av一区二区夜夜嗨| 中文字幕一区视频| 欧美午夜精品一区二区三区| 日韩精品一级二级| 亚洲精品一区二区三区福利| 成人晚上爱看视频| 亚洲一区视频在线| 精品久久久久久无| 国产91精品在线观看| 亚洲精品大片www| 欧美一区二区啪啪| 丁香桃色午夜亚洲一区二区三区| 日韩高清在线一区| 久久精品一区二区三区av| 97久久久精品综合88久久| 水野朝阳av一区二区三区| www精品美女久久久tv| 99精品黄色片免费大全| 五月天丁香久久| 国产偷国产偷精品高清尤物| 在线视频中文字幕一区二区| 理论片日本一区| 一区在线观看免费| 91精品国产色综合久久不卡蜜臀 | 91视频一区二区| 免费观看久久久4p| 国产精品国产三级国产aⅴ入口| 欧美日韩三级在线| 国产99久久久国产精品潘金 | 欧美夫妻性生活| 成人午夜看片网址| 日韩成人午夜电影| 国产精品欧美一级免费| 7777精品伊人久久久大香线蕉完整版 | 中文字幕成人av| 这里是久久伊人| 91在线视频免费91| 久久99久久99精品免视看婷婷| 成人欧美一区二区三区小说 | 一区二区三区在线视频观看58 | 国产成人av电影免费在线观看| 一区二区三区在线看| 久久久久国产精品人| 欧美日韩五月天| 91免费观看在线|