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

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

?? uartnews.h

?? 基于單片機的短信報警機
?? H
字號:

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

/*			字符串輸出函數	   	 */
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)
*功能:在數組內查找一個字符
*說明:如果有找到返回地址,無返回0
*參數: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卡有無預存號
		  if(Uart.Buf[count_1] == data) 
			      return count_1;
		  }
 return 0;
 }
/*************************************************
*原型:void CopyStr(uchar *p,uchar *s)
*功能:把字符串s拷貝在p
*說明:無
*參數:*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)
*功能: 讀取心跳時間與復位時間
*說明:如果無存心跳時間為10分鐘,復位時間為1天
*參數:uchar *p-接收到,len長度
*返回:val-運算完的值
**************************************************/
#define TIMELEN	  4  //時間長度
uint ReadTime(uchar *p)
{
 uchar count;
 uint temp=1;
 uint val = NULL;
 uint tempval;
 uchar bitcount=0;//位計數
 //當結束或超過位數跳出
 while((*p != '"')&&(bitcount < TIMELEN))
 		  {
		   count = *p ++;          //把值讀進
		   count = count - 0x30;
		   tempval =(uint)(val * 10);   //乘進位
		   val = (uint)(count+tempval);    //存進
		   bitcount ++;            //位數加1
		   }
 return val;
 }
/*************************************************
*原型:void Save_tel(uchar count,uchar *p )
*功能:把從SIM卡讀到電話本存到二維數組內
*說明:最大可存16位號碼,超出只取前面,時間0-9999分鐘
*參數:uchar count-定位,*p要填寫的緩沖區
*返回:無
**************************************************/
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)//當號碼長度未超過TELLEN,填寫在緩沖區內
						    *p++ = Uart.Buf[count]; 
				   count++;       //指向下一個接收緩沖區
				   }
  *p++ =';';
  *p = NULL;//結束
//如有預存的定時時間			   
 if(Uart.Buf[count] =='*')
 		{
		 ++count;
		 Time.Atd=ReadTime(&Uart.Buf[count]);//轉換成時間
		}
 else 
 	    {
		 Time.Atd = NULL;//定時標志為0
		 }
 } 
/*************************************************
*原型:void UART_RX_interrupt(void)
*功能:接收串口數據
*說明:無
*參數:無
*返回:無
**************************************************/
#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;    //把數據存到接收緩沖區
   //如果超出范圍從頭收起
	if(UART_RXHEAD>=UARTRXLEN)
				UART_RXHEAD = NULL;

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

	//在空閑狀態來電振鈴發摘機命令起機
	else if((data=='G')&&(Uart.Buf[--hz1]=='N')&&(!Busybz))
			   {
			     UART_RXHEAD = NULL; //接收計數器與號碼標志指向空 
				 WorkCount = GET;   //任務計數器指向接聽命令
				 }
  }
/*************************************************
*原型:void QueryState(void)
*功能:根據*ECAV的內容判斷通話是否成功
*說明:無
*參數: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')
			  				{//接聽馬上掛機
							 WorkCount = RINGOFF;
							 Time.Sec = 1;
							}
		     }
	else  //發送掛機命令
	        {  
			  WorkCount = RINGOFF;//				   
  		   }	 			
   }
/*************************************************
*原型:void Deal_rx(void)
*功能:處理接收到的數據
*說明:無
*參數:uchar addrss-雙音計數
*返回:無
**************************************************/
void DealRxBuf(uchar addrss)
{
   unsigned char count = NULL;

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

 DealTxUartBz = FALSE;   //已發送完,把發送標志清0
 UART_RXHEAD = NULL;
 }	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色狠狠色噜噜噜综合网| 久久蜜桃av一区二区天堂| 中文字幕一区二区三区av| 国产成人精品一区二| 久久嫩草精品久久久精品| 国产一二精品视频| 99精品视频在线免费观看| 欧洲一区二区三区在线| 综合精品久久久| 韩国一区二区视频| 国产日韩欧美一区二区三区乱码| 国产精品1024| 国产精品美女久久久久久久网站| av动漫一区二区| 亚洲日本欧美天堂| 欧美日韩一二区| 蜜臀av国产精品久久久久| 欧美mv日韩mv国产网站app| 国产在线播放一区三区四| 精品国精品国产| 成人黄色片在线观看| 一区二区三区欧美激情| 91精品国产综合久久久久久| 韩国精品在线观看| 中文字幕av一区二区三区高| 色哟哟在线观看一区二区三区| 亚洲成av人影院| 久久久噜噜噜久噜久久综合| 91在线观看美女| 久久激情五月激情| 亚洲一二三四在线观看| 欧美一区二区三区色| 福利电影一区二区| 亚洲高清久久久| 欧美不卡视频一区| 91天堂素人约啪| 蜜臀久久99精品久久久画质超高清 | 亚洲成人精品在线观看| 精品无码三级在线观看视频 | 99久久久精品免费观看国产蜜| 亚洲欧美电影院| 欧美精品久久天天躁| 精品一区二区三区视频| 国产精品久久久久7777按摩 | 91免费国产视频网站| 奇米影视一区二区三区小说| 久久众筹精品私拍模特| 在线观看精品一区| 国内精品伊人久久久久av影院 | 亚洲最大成人网4388xx| 精品国产乱码久久久久久闺蜜| 2020国产成人综合网| 国产不卡在线播放| 亚洲影院理伦片| 精品国产乱码久久久久久闺蜜| 91亚洲精华国产精华精华液| 天天色 色综合| 亚洲自拍偷拍网站| 欧美日韩不卡在线| bt欧美亚洲午夜电影天堂| 精品国产sm最大网站免费看| av亚洲精华国产精华精华| 欧美一区二区三区四区视频| 国产不卡免费视频| 麻豆精品精品国产自在97香蕉| 亚洲国产高清aⅴ视频| 日韩欧美亚洲另类制服综合在线 | 国产精品资源站在线| 亚洲精品视频自拍| 国产精品麻豆一区二区| 日韩美女主播在线视频一区二区三区| 色欧美日韩亚洲| 国产精品66部| 午夜精品福利一区二区蜜股av | 国模冰冰炮一区二区| 五月激情综合网| 亚洲精品高清在线| 亚洲综合久久久| 亚洲乱码精品一二三四区日韩在线 | 国产剧情一区二区| 一区二区三区久久久| 中文文精品字幕一区二区| 91精品国产高清一区二区三区蜜臀| 国产91精品久久久久久久网曝门| 亚洲国产综合色| 亚洲成人av一区二区三区| 自拍偷拍欧美精品| 久久久99精品免费观看不卡| 日韩女同互慰一区二区| 欧美高清www午色夜在线视频| 91麻豆视频网站| www.亚洲免费av| 处破女av一区二区| 国产91丝袜在线播放九色| 久久国产三级精品| 亚洲成人777| 欧美国产精品一区二区三区| 国产精品狼人久久影院观看方式| 国产亚洲欧美色| 久久久99精品久久| 欧美国产精品劲爆| 亚洲三级在线免费| 亚洲日本在线a| 一区二区视频在线看| 亚洲乱码国产乱码精品精98午夜| 亚洲日本一区二区| 夜夜精品视频一区二区| 一区二区三区国产精华| 亚洲人精品一区| 手机精品视频在线观看| 91精品午夜视频| 日韩视频一区二区三区在线播放| 欧美一区二区视频观看视频| 欧美一级片在线| 精品成人免费观看| 国产亚洲综合色| 国产精品久久久久久福利一牛影视| 国产午夜精品一区二区| 人禽交欧美网站| 国模无码大尺度一区二区三区| 国产乱对白刺激视频不卡| 久久精品国产在热久久| 国产成人精品免费看| 一本色道久久加勒比精品| 制服.丝袜.亚洲.另类.中文| 精品国产91乱码一区二区三区 | 日韩免费观看2025年上映的电影| 91精品麻豆日日躁夜夜躁| 欧美xingq一区二区| 国产欧美一区二区在线观看| 中文字幕一区免费在线观看| 亚洲高清在线视频| 麻豆国产欧美一区二区三区| 粉嫩久久99精品久久久久久夜| 色94色欧美sute亚洲线路二| 日韩一区二区电影网| 国产精品国产精品国产专区不蜜| 亚洲电影欧美电影有声小说| 亚洲国产视频网站| 不卡欧美aaaaa| 欧美三级日韩三级| 国产午夜精品福利| 亚洲国产成人av| 国产成人在线看| 欧美久久一二三四区| 久久精品无码一区二区三区| 一区二区三区电影在线播| 激情丁香综合五月| 欧美挠脚心视频网站| 日本一区二区不卡视频| 日本va欧美va欧美va精品| 99视频国产精品| 精品国产乱码久久久久久闺蜜| 亚洲精品第一国产综合野| 国产在线国偷精品免费看| 日韩欧美在线123| 亚洲精品久久久久久国产精华液| 日韩欧美国产一区二区在线播放| 国产精品久久久久一区二区三区 | 亚洲成人免费视| 国产成人精品aa毛片| 欧美精品在欧美一区二区少妇| 国产精品视频九色porn| 久久成人精品无人区| 欧美在线啊v一区| 中文字幕亚洲一区二区va在线| 国产一区亚洲一区| 欧美一级高清大全免费观看| 亚洲欧美综合网| 国产精品综合一区二区三区| 91精品国产综合久久福利软件 | 久久er99热精品一区二区| 欧美亚洲动漫另类| 国产精品传媒在线| 国产一区二区三区免费看| 久久九九99视频| 久久成人18免费观看| 3751色影院一区二区三区| 亚洲国产视频一区| 欧美中文字幕一二三区视频| 亚洲人一二三区| 99国产精品久久久久久久久久| 亚洲图片激情小说| 国产一区福利在线| 国产大陆a不卡| 国产成人自拍网| 欧美日韩一本到| 亚洲精品成人少妇| 色哦色哦哦色天天综合| 中文字幕一区在线| 99精品热视频| 亚洲黄色免费电影| 91久久香蕉国产日韩欧美9色| 国产精品激情偷乱一区二区∴| 国产美女视频91| 欧美激情中文字幕一区二区| 成人国产精品视频| 亚洲乱码国产乱码精品精98午夜| 91久久国产综合久久| 亚洲制服丝袜在线|