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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? uartnews._h

?? 基于單片機(jī)的短信報(bào)警機(jī)
?? _H
字號(hào):

void ReDial(void);
/**************************************************
*原型:void InitUART( unsigned char baudrate )
*功能:串口初始化,19.2k,一個(gè)字節(jié)520.8US
*參數(shù):unsigned char baudrat
*返回:無
**************************************************/
void InitUART( unsigned char baudrate )
	{
	UBRR = baudrate; //19.2k
	UCSRB = ( (1<<RXCIE) | (1<<RXEN) | (1<<TXEN) );//接收中斷開,接收口開,發(fā)送口開
    UCSRC = (1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0);//8位數(shù)據(jù)+1位STOP位
	}   
/*************************************************
*原型:void UART_TX_interrupt(void)
*功能:初始化,執(zhí)行任務(wù)
*說明:無
*參數(shù):無
*返回:無
**************************************************/
/*  		字符輸出函數(shù) 		 */
void putchar(unsigned char c)
	{	 
     while (!GET_BIT(UCSRA,UDRE)) ;
	 
	 UDR=c;    
	}

/*			字符串輸出函數(shù)	   	 */
void puts(char *s)
	{
	while (*s)
		{
		putchar(*s);
		s++;
		}	
    putchar(0x0D);//回車換行
	putchar(0x0A);
	}	
void putgmgr(char *s)
{
 while (*s)
		{
		putchar(*s);
		s++;
		}	
 putchar(0x1a);//^z
 }
/*************************************************
*原型:unsigned char Bj_rx(uchar addrss_1,uchar data,uchar count_1)
*功能:在數(shù)組內(nèi)查找一個(gè)字符
*說明:如果有找到返回地址,無返回0
*參數(shù):addrss,data
*返回:addrss or 0
**************************************************/
unsigned char Bj_rx(uchar addrss_1,uchar data,uchar count_1)
{
 for( ;count_1<addrss_1;count_1++)
		 {
		  //判斷SIM卡有無預(yù)存號(hào)
		  if(Uart.Buf[count_1] == data) 
			      return count_1;
		  }
 return 0;
 }
/*************************************************
*原型:void CopyStr(uchar *p,uchar *s)
*功能:把字符串s拷貝在p
*說明:無
*參數(shù):*p,*S
*返回:指針地址
*日期:06-01-16
**************************************************/
uchar  *CopyStr(uchar *p,uchar *s)
{
  do
    {
	 *p ++ =*s++;
	 }
  while((*s != NULL)&&(*s != 0x0d));
  *p = NULL;
  return p;
 }

 /*************************************************
*原型:uint ReadTime(uchar *p)
*功能: 讀取心跳時(shí)間與復(fù)位時(shí)間
*說明:如果無存心跳時(shí)間為10分鐘,復(fù)位時(shí)間為1天
*參數(shù):uchar *p-接收到,len長度
*返回:val-運(yùn)算完的值
**************************************************/
#define TIMELEN	  4
uint ReadTime(uchar *p)
{
 uchar count;
 uint temp=1;
 uint val = NULL;
 uint tempval;
 uchar bitcount=0;//位計(jì)數(shù)
 //當(dāng)結(jié)束或超過位數(shù)跳出
 while((*p != '"')&&(bitcount < TIMELEN))
 		  {
		   count = *p ++;          //把值讀進(jìn)
		   count = count - 0x30;
		   tempval =(uint)(val * 10);   //乘進(jìn)位
		   val = (uint)(count+tempval);    //存進(jìn)
		   bitcount ++;            //位數(shù)加1
		   }
 return val;
 }
/*************************************************
*原型:void Save_tel(uchar count,uchar *p )
*功能:把從SIM卡讀到電話本存到二維數(shù)組內(nèi)
*說明:最大可存16位號(hào)碼,超出只取前面,時(shí)間0-9999分鐘
*參數(shù):uchar count-定位,*p要填寫的緩沖區(qū)
*返回:無
**************************************************/
void Save_tel(uchar count,uchar *p )
{
 unsigned char i = 0;

  ++ count;
  
  *p++ = 'A';
  *p++ = 'T';
  *p++ = 'D';
 while((Uart.Buf[count]!= '"' )&&(Uart.Buf[count] != '*'))
				  {
				    if(i < TELLEN)//當(dāng)號(hào)碼長度未超過TELLEN,填寫在緩沖區(qū)內(nèi)
						    *p++ = Uart.Buf[count]; 
				   count++;       //指向下一個(gè)接收緩沖區(qū)
				   }
  *p++ =';';
  *p = NULL;//結(jié)束
//如有預(yù)存的定時(shí)時(shí)間			   
 if(Uart.Buf[count] =='*')
 		{
		 ++count;
		 Time.Atd=ReadTime(&Uart.Buf[count]);//轉(zhuǎn)換成時(shí)間
		}
 else 
 	    {
		 Time.Atd = NULL;//定時(shí)標(biāo)志為0
		 }
 } 
/*************************************************
*原型:void UART_RX_interrupt(void)
*功能:接收串口數(shù)據(jù)
*說明:無
*參數(shù):無
*返回:無
**************************************************/
#pragma interrupt_handler UART_RX_interrupt:iv_USART_RX 
void UART_RX_interrupt( void )
 {
    unsigned char data,hz1;
	data = UDR; 
	hz1 = UART_RXHEAD;
	UART_RXHEAD++; 
	Uart.Buf[hz1] = data;    //把數(shù)據(jù)存到接收緩沖區(qū)
   //如果超出范圍從頭收起
	if(UART_RXHEAD>=UARTRXLEN)
				UART_RXHEAD = NULL;

    if((data == 'K')&&(Uart.Buf[--hz1] =='O'))
 		  		DealRxUartBz = TRUE;	

	//在空閑狀態(tài)來電振鈴發(fā)摘機(jī)命令起機(jī)
	else if((data=='G')&&(Uart.Buf[--hz1]=='N')&&(!Busybz))
			   {
			     UART_RXHEAD = NULL; //接收計(jì)數(shù)器與號(hào)碼標(biāo)志指向空 
				 WorkCount = GET;   //任務(wù)計(jì)數(shù)器指向接聽命令
				 }
  }
/*************************************************
*原型:void QueryState(void)
*功能:根據(jù)*ECAV的內(nèi)容判斷通話是否成功
*說明:無
*參數(shù):uchar addrssend
*返回:無
**************************************************/	
void QueryState(uchar addrssend)
{
 uchar count;
 
    if(count=Bj_rx(addrssend,',',0))
		    { 
		     count = count = Bj_rx(addrssend,',',++count);
			 count ++;
		     if(Uart.Buf[count] == '0')
			  				{//接聽馬上掛機(jī)
							 WorkCount = RINGOFF;
							 Time.Sec = 1;
							}
		     }
	else  //發(fā)送掛機(jī)命令
	        {  
			  WorkCount = RINGOFF;//				   
  		   }	 			
   }
/*************************************************
*原型:void Deal_rx(void)
*功能:處理接收到的數(shù)據(jù)
*說明:無
*參數(shù):uchar addrss-雙音計(jì)數(shù)
*返回:無
**************************************************/
void DealRxBuf(uchar addrss)
{
   unsigned char count = NULL;

   CLR_BIT(UCSRB,RXCIE);//關(guān)接收
   
   switch(WorkCount)//任務(wù)指示器
 	    {
		 case LINE:    
		 case SETUPTEL: 
		 	         WorkCount++;
					 break;			
		 case RTEL:
		      //在數(shù)組從COUNT開始到ADDRSS內(nèi)查找一個(gè)字符,無找到返回0
		      if(count=Bj_rx(addrss,'"',count))
						{ 
			   		     Save_tel(count,TelBuf); //讀出電話本與定時(shí)時(shí)間
						 WorkCount = CALLTEL;//有讀到電話本馬上去拔號(hào)處理
						  DealTxUartBz = TRUE;//如果未讀到電話本,紅燈亮
						 }
			   break;
		 case CALLTEL://拔號(hào)成功,接著查詢狀態(tài)
		 	    WorkCount = QUERY;
				Time.Sec = timesec;//2000ms
			   break;
		 case QUERY://根據(jù)回應(yīng)分析狀態(tài)
		 	    QueryState(addrss);
			    break;
	     case GET://有來電接聽掛斷
		 	    WorkCount = RINGOFF;
				break;
		 case RINGOFF://發(fā)掛機(jī)命令成功
		 	    Time.Mec = Time.Min = NULL;
				
				Time.Sec = time3sec;//定時(shí)3秒
		 	    if(!Time.Atd)//如果無定時(shí),直接拔打下一個(gè)
		 	   	       	{
						 Time.Sec = timesec;
						 WorkCount = CALLTEL;
						 }
				else //否則定時(shí)未到,等待定時(shí)到再拔號(hào)
					    {
						 WorkCount = NULLACK;
						 }
				Busybz = FALSE;
			    break;	
		}
   UART_RXHEAD = NULL;    //接收器指向頭
   DealRxUartBz = FALSE;  //串口接收處理標(biāo)志清0
   SET_BIT(UCSRB,RXCIE);  //開接收
   }
/**************************************************
*原型:void InitUART(void)
*功能:初始化UART,接收中斷開,接收/發(fā)送口開
*參數(shù):速率為19.2k,8位數(shù)據(jù)+1位STOP位,bandrate
*返回:無
**************************************************/
void DealTx(void)
{
 switch(WorkCount)
 				  {
				   case LINE://建立連接
						  puts("ATE0");
						  break;
			
				   case SETUPTEL:
				   		  puts("AT+CPBS=\"SM\"");
						  break;
				 
				   case RTEL://查找電話本
				      
				   		  puts("AT+CPBR=1");
						  break;
						  
				   case CALLTEL://在報(bào)警時(shí)發(fā)拔號(hào)命令
				   		 //拔號(hào)定時(shí)重新清0
						  puts("ATH");
						  delay_ms(1500);
						  DealRxUartBz =FALSE;
						  WorkCount = CALLTEL;
						  Time.Sec = time3sec;//定時(shí)3秒
						  puts(TelBuf);
						  Busybz = TRUE;//忙標(biāo)志置1
						  break;
						  
				  case QUERY://查詢拔號(hào)狀態(tài)
				  	      puts("AT+CLCC");
						  Time.Sec = timesec;
						  break;
				  case GET://接聽
				   		  puts("ATA");//發(fā)送摘機(jī)命令
						  break;   
				   case RINGOFF://掛機(jī) 
				   		  puts("ATH");
						  break;
				}

 DealTxUartBz = FALSE;   //已發(fā)送完,把發(fā)送標(biāo)志清0
 UART_RXHEAD = NULL;
 }	

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线不卡| 婷婷综合另类小说色区| 欧美在线视频日韩| 久久99蜜桃精品| 亚洲激情校园春色| 久久久电影一区二区三区| 色成年激情久久综合| 久久99国产精品久久99果冻传媒| 一区精品在线播放| 精品国产乱码久久久久久1区2区| 色综合激情五月| 国产精品18久久久久久久久久久久| 亚洲国产精品久久久久婷婷884| 国产日韩高清在线| 欧美一区二区三区小说| 91浏览器在线视频| 国产成人一区在线| 日韩二区三区四区| 一区二区激情视频| 国产精品免费丝袜| 欧美电影免费观看高清完整版在线| 色婷婷精品大在线视频| 国产电影精品久久禁18| 日本va欧美va瓶| 亚洲精品乱码久久久久久久久| 国产三级一区二区| 精品久久人人做人人爽| 欧美日韩国产系列| 欧洲日韩一区二区三区| 99国产精品一区| 国产99久久久精品| 国产在线播放一区| 麻豆一区二区99久久久久| 五月天精品一区二区三区| 亚洲免费在线观看| 日韩理论片在线| 国产精品成人免费| 中文字幕av一区二区三区高 | 欧美国产日韩精品免费观看| 日韩久久精品一区| 91精品国产欧美一区二区| 欧美日韩情趣电影| 欧美日韩一区二区在线观看 | 欧美国产精品专区| 久久综合九色综合97婷婷女人 | 欧美成人激情免费网| 91精品在线观看入口| 欧美麻豆精品久久久久久| 欧美日韩亚洲高清一区二区| 国产欧美日韩在线| 国产嫩草影院久久久久| 国产精品污污网站在线观看| 欧美激情资源网| 中文字幕在线不卡视频| 亚洲欧美怡红院| 亚洲精品免费在线| 亚洲一级二级在线| 偷窥少妇高潮呻吟av久久免费| 日韩国产在线观看一区| 美女尤物国产一区| 国产精品69久久久久水密桃| 成熟亚洲日本毛茸茸凸凹| 99这里都是精品| 色8久久精品久久久久久蜜| 欧美亚洲另类激情小说| 在线播放欧美女士性生活| 日韩欧美色电影| 2020国产精品久久精品美国| 国产拍揄自揄精品视频麻豆| 中文字幕av不卡| 亚洲激情欧美激情| 日韩和欧美一区二区三区| 九九在线精品视频| av高清不卡在线| 欧美日韩一区二区在线观看| 日韩精品在线一区二区| 欧美激情在线一区二区| 亚洲精品欧美综合四区| 美国三级日本三级久久99| 国产一区二区精品久久| 91看片淫黄大片一级在线观看| 欧美日韩在线观看一区二区| 2020日本不卡一区二区视频| 亚洲日本丝袜连裤袜办公室| 日本欧美韩国一区三区| 国产成人av电影在线播放| 日本乱人伦aⅴ精品| 欧美刺激午夜性久久久久久久| 国产日韩精品一区二区三区在线| 亚洲综合色区另类av| 麻豆精品视频在线观看免费| 不卡电影免费在线播放一区| 欧美三级乱人伦电影| 久久精品亚洲国产奇米99| 一区二区三区在线影院| 国内外精品视频| 欧美亚洲综合在线| 久久精品人人做人人综合| 亚洲国产综合在线| 欧美精品一区二区三区在线播放 | 国产在线播放一区| 欧洲国产伦久久久久久久| 久久影院午夜论| 亚洲成人tv网| 不卡视频在线观看| 精品国产sm最大网站| 亚洲一区在线看| 大胆亚洲人体视频| 日韩三级精品电影久久久| 一区二区在线看| 国产91丝袜在线播放九色| 日韩午夜小视频| 亚洲午夜精品17c| 99热精品国产| 国产亚洲精品资源在线26u| 琪琪久久久久日韩精品| 欧美伊人久久大香线蕉综合69| 中文字幕亚洲精品在线观看 | 亚洲主播在线播放| 不卡视频在线观看| 久久久久久久久久看片| 蜜桃视频在线观看一区二区| 欧美日韩在线播| 亚洲精品高清在线观看| 99精品一区二区| 亚洲国产高清不卡| 国产麻豆日韩欧美久久| 欧美r级电影在线观看| 日精品一区二区三区| 欧美唯美清纯偷拍| 亚洲一区在线视频观看| 色999日韩国产欧美一区二区| 亚洲天堂2014| av中文字幕不卡| 国产精品久久久爽爽爽麻豆色哟哟 | 美女任你摸久久| 91精品国产综合久久精品| 亚洲v中文字幕| 欧美日韩久久一区二区| 亚洲高清不卡在线| 欧美日韩国产大片| 午夜视频一区二区三区| 欧美三区在线观看| 亚洲第一久久影院| 欧美日韩免费一区二区三区| 亚洲国产日韩a在线播放性色| 精品视频一区三区九区| 亚洲一区av在线| 欧美理论电影在线| 免费一区二区视频| 精品少妇一区二区三区在线播放| 九色porny丨国产精品| 精品国产第一区二区三区观看体验| 精品伊人久久久久7777人| 日韩小视频在线观看专区| 精品一区精品二区高清| 国产天堂亚洲国产碰碰| 成人免费毛片高清视频| 亚洲女人****多毛耸耸8| 在线观看一区二区视频| 视频一区视频二区中文| 精品剧情v国产在线观看在线| 狠狠色丁香久久婷婷综| 中文字幕 久热精品 视频在线 | 日韩一区在线看| 在线视频一区二区三区| 日韩制服丝袜av| 26uuuu精品一区二区| 成人黄色一级视频| 亚洲高清免费视频| 精品伦理精品一区| av动漫一区二区| 欧美体内she精视频| 免费观看久久久4p| 亚洲国产精品精华液ab| 在线亚洲一区观看| 日日摸夜夜添夜夜添亚洲女人| 久久夜色精品一区| 色婷婷精品久久二区二区蜜臂av| 日韩精品亚洲专区| 国产日韩成人精品| 日本精品一区二区三区高清 | 另类小说视频一区二区| 国产精品久线在线观看| 欧美日韩精品一区二区三区四区| 激情国产一区二区| 亚洲黄色小视频| 精品粉嫩aⅴ一区二区三区四区| 9久草视频在线视频精品| 日韩高清不卡在线| 国产精品美女久久福利网站| 欧美老肥妇做.爰bbww视频| 亚洲精品在线观看网站| 色综合久久中文字幕综合网| 美女看a上一区| 亚洲欧美经典视频| 久久先锋资源网| 欧美精品乱码久久久久久| 福利一区福利二区| 日韩和欧美一区二区|