⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recever.c

📁 手把手教你学AVR单片机C程序设计实验程序
💻 C
字号:
void Rece(void)
{
  if(Flag==1)				
   {  						
    SREG=0x00;		
	switch(ReceverCnt)	
	{						
	case 0:if(temp=='(')ReceverCnt=1;	
	       else if(temp=='{')ReceverCnt=20;	
		   else if(temp=='<')ReceverCnt=40;	
		   else ReceverEndFlag=0;break;
	case 1:if((temp>=0x30)&&(temp<=0x39)){a[0]=temp-0x30;ReceverCnt=2;}//year
		   else ReceverEndFlag=0;break;	
    case 2:if((temp>=0x30)&&(temp<=0x39)){a[1]=temp-0x30;ReceverCnt=3;}
		   else ReceverEndFlag=0;break;	
    case 3:if((temp>=0x30)&&(temp<=0x39)){a[2]=temp-0x30;ReceverCnt=4;}
		   else ReceverEndFlag=0;break;	
    case 4:if((temp>=0x30)&&(temp<=0x39)){a[3]=temp-0x30;ReceverCnt=5;}
		   else ReceverEndFlag=0;break;
    case 5:if(temp==',')ReceverCnt=6;	
		   else ReceverEndFlag=0;break;	
	case 6:if((temp>=0x30)&&(temp<=0x39)){a[4]=temp-0x30;ReceverCnt=7;}//month
		   else ReceverEndFlag=0;break;	
    case 7:if((temp>=0x30)&&(temp<=0x39)){a[5]=temp-0x30;ReceverCnt=8;}
		   else ReceverEndFlag=0;break;	
	case 8:if(temp==',')ReceverCnt=9;	
		   else ReceverEndFlag=0;break;		   
    case 9:if((temp>=0x30)&&(temp<=0x39)){a[6]=temp-0x30;ReceverCnt=10;}//date
		   else ReceverEndFlag=0;break;
    case 10:if((temp>=0x30)&&(temp<=0x39)){a[7]=temp-0x30;ReceverCnt=11;}
		   else ReceverEndFlag=0;break;	
	case 11:if(temp==',')ReceverCnt=12;	
		   else ReceverEndFlag=0;break;		   
	case 12:if((temp>=0x30)&&(temp<=0x39)){a[8]=temp-0x30;ReceverCnt=13;}//hour
		   else ReceverEndFlag=0;break;	
    case 13:if((temp>=0x30)&&(temp<=0x39)){a[9]=temp-0x30;ReceverCnt=14;}
		   else ReceverEndFlag=0;break;	
	case 14:if(temp==',')ReceverCnt=15;	
		   else ReceverEndFlag=0;break;		   
    case 15:if((temp>=0x30)&&(temp<=0x39)){a[10]=temp-0x30;ReceverCnt=16;}//minute
		   else ReceverEndFlag=0;break;
    case 16:if((temp>=0x30)&&(temp<=0x39)){a[11]=temp-0x30;ReceverCnt=17;}
		   else ReceverEndFlag=0;break;	   
	case 17:if(temp==')'){ReceverCnt=0;ReceverEndFlag=1;}
	        else if(temp=='{')ReceverCnt=20;	
			else ReceverEndFlag=0;break;	
	//************************************************   
	case 20:if((temp>=0x30)&&(temp<=0x39)){b[0]=temp-0x30;ReceverCnt=21;}//set_hour1
		   else ReceverEndFlag=0;break;	
    case 21:if((temp>=0x30)&&(temp<=0x39)){b[1]=temp-0x30;ReceverCnt=22;}
		   else ReceverEndFlag=0;break;	
	case 22:if(temp==',')ReceverCnt=23;	
		   else ReceverEndFlag=0;break;	
	case 23:if((temp>=0x30)&&(temp<=0x39)){b[2]=temp-0x30;ReceverCnt=24;}//set_minute1
		   else ReceverEndFlag=0;break;	
    case 24:if((temp>=0x30)&&(temp<=0x39)){b[3]=temp-0x30;ReceverCnt=25;}
		   else ReceverEndFlag=0;break;	
	case 25:if(temp==';')ReceverCnt=26;	
	//-------------------------------------------------	      	   
	case 26:if((temp>=0x30)&&(temp<=0x39)){c[0]=temp-0x30;ReceverCnt=27;}//set_hour2
		   else ReceverEndFlag=0;break;	
    case 27:if((temp>=0x30)&&(temp<=0x39)){c[1]=temp-0x30;ReceverCnt=28;}
		   else ReceverEndFlag=0;break;	
	case 28:if((temp>=0x30)&&(temp<=0x39)){c[2]=temp-0x30;ReceverCnt=29;}//set_minute2
		   else ReceverEndFlag=0;break;	
    case 29:if((temp>=0x30)&&(temp<=0x39)){c[3]=temp-0x30;ReceverCnt=30;}
		   else ReceverEndFlag=0;break;		
	case 30:if((temp=='}')||(temp==')')){ReceverCnt=0;ReceverEndFlag=2;}
	        else if(temp=='<')ReceverCnt=40;	
			else ReceverEndFlag=0;break;	
    //**************************************************
	case 40:if((temp>=0x30)&&(temp<=0x39)){d[0]=temp-0x30;ReceverCnt=41;}//set_hour1_on/off
		   else ReceverEndFlag=0;break;	
	case 41:if(temp==';')ReceverCnt=42;	
		   else ReceverEndFlag=0;break;		
	case 42:if((temp>=0x30)&&(temp<=0x39)){d[1]=temp-0x30;ReceverCnt=43;}//set_hour2_on/off
		   else ReceverEndFlag=0;break;	 
	case 43:if((temp=='>')||(temp==')')){ReceverCnt=0;ReceverEndFlag=3;}
	        else ReceverEndFlag=0;break;		        
	default:ReceverCnt=0;break;		
	}						
      Flag=0;				
      SREG=0x80;			
   }						
}
//-------------------
void mov(void)
{
year=((uint)(a[0]*1000))+((uint)(a[1]*100))+((uint)(a[2]*10))+((uint)(a[3]));
month=a[4]*10+a[5];
date=a[6]*10+a[7];
hour=a[8]*10+a[9];
minute=a[10]*10+a[11];
set_hour1=b[0]*10+b[1];
set_minute1=b[2]*10+b[3];
set_hour2=c[0]*10+c[1];
set_minute2=c[2]*10+c[3];
}
/***********************/
void uart0_send(unsigned char i)	
{							
while(!(UCSRA&(1<<UDRE)));
UDR=i;						
}							

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -