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

📄 voice.c

📁 2005年全国大学生电子设计竞赛论文集
💻 C
字号:
#include "spce061v004.h"
#include "s480.h"
void voice_line(int number,int x,int y);
void voice_circle(int x,int y,int r);
void voice_ini(int x,int y);
void voice_trace(void);
void voice_complete(void);

	
//=========================================================================================
//                             报直线                                                    //
//=========================================================================================
void voice_line(int number,int x,int y)
{ 	                           
	int temp;  
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(15,3,3);            //报“直线模式”			
    while(SACM_S480_Status()&0x01)           
	   	SACM_S480_ServiceLoop();                     
	SACM_S480_Play(15,3,3);   	
	
	if(number>1)
	{
		*P_INT_Ctrl=0x0040;
		return;
	}
	else
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(10,3,3);              //报“目标点”			
 	    while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(10,3,3);   	
		
		temp=x/10;                              //报“x”
		x=x-temp*10;
		if(temp==0)
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(x,3,3);             			
   			while(SACM_S480_Status()&0x01)           
		   		SACM_S480_ServiceLoop();                     
			SACM_S480_Play(x,3,3);   
		}
		else
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(temp,3,3);             		
 	  	    while(SACM_S480_Status()&0x01)           
			   	SACM_S480_ServiceLoop();                     
			SACM_S480_Play(temp,3,3);   
			
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(20,3,3);              		
 	 		while(SACM_S480_Status()&0x01)           
				SACM_S480_ServiceLoop();                     
			SACM_S480_Play(20,3,3); 
		
            if(x==0)
            {
           		;
            }
			else
			{
				SACM_S480_Initial(1);	                         
				SACM_S480_Play(x,3,3);              	
 	  	    	while(SACM_S480_Status()&0x01)           
			   		SACM_S480_ServiceLoop();                     
				SACM_S480_Play(x,3,3);
			}   		
		}
				
		temp=y/100;                              //报“y”
		if(temp==1)
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(temp,3,3);             			
   			while(SACM_S480_Status()&0x01)           
		   		SACM_S480_ServiceLoop();                     
			SACM_S480_Play(temp,3,3);   
			
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(21,3,3);             			
   			while(SACM_S480_Status()&0x01)           
		   		SACM_S480_ServiceLoop();                     
			SACM_S480_Play(21,3,3);   
		}
		else
		{
			temp=y/10;
			y=y-temp*10;
			if(temp==0)
			{
				SACM_S480_Initial(1);	                         
				SACM_S480_Play(y,3,3);             			
   				while(SACM_S480_Status()&0x01)           
		   			SACM_S480_ServiceLoop();                     
				SACM_S480_Play(y,3,3);   
			}
			else
			{
				SACM_S480_Initial(1);	                         
				SACM_S480_Play(temp,3,3);             		
 	  		    while(SACM_S480_Status()&0x01)           
				   	SACM_S480_ServiceLoop();                     
				SACM_S480_Play(temp,3,3);   
			
				SACM_S480_Initial(1);	                         
				SACM_S480_Play(20,3,3);              		
 	 			while(SACM_S480_Status()&0x01)           
					SACM_S480_ServiceLoop();                     
				SACM_S480_Play(20,3,3); 
		
        	    if(y==0)
         	   {
        	   		;
         	   }
				else
				{
					SACM_S480_Initial(1);	                         
					SACM_S480_Play(y,3,3);              	
 	  	 	   		while(SACM_S480_Status()&0x01)           
			   			SACM_S480_ServiceLoop();                     
					SACM_S480_Play(y,3,3);
				}   		
			}		
		}
	}
	*P_INT_Ctrl=0x0040;
	return;
}
//=========================================================================================
//                                                     报圆                              //
//=========================================================================================
void voice_circle(int x,int y,int r)
{
	int temp;  
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(16,3,3);            //报“圆模式”			
    while(SACM_S480_Status()&0x01)           
	   	SACM_S480_ServiceLoop();                     
	SACM_S480_Play(16,3,3);   	
	
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(11,3,3);            //报“圆心”			
    while(SACM_S480_Status()&0x01)           
	   	SACM_S480_ServiceLoop();                     
	SACM_S480_Play(11,3,3);   	
	
	temp=x/10;                              //报“x”
	x=x-temp*10;
	if(temp==0)
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(x,3,3);             			
   		while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(x,3,3);   
	}
	else
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(temp,3,3);             		
 	    while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(temp,3,3);   
		
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(20,3,3);              		
 	 	while(SACM_S480_Status()&0x01)           
			SACM_S480_ServiceLoop();                     
		SACM_S480_Play(20,3,3); 
		
        if(x==0)
        {
       		;
        }
		else
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(x,3,3);              	
 	  	   	while(SACM_S480_Status()&0x01)           
		   		SACM_S480_ServiceLoop();                     
			SACM_S480_Play(x,3,3);
		}   		
	}
	
	temp=y/10;                              //报“y”
	y=y-temp*10;
	if(temp==0)
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(y,3,3);             			
   		while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(y,3,3);   
	}
	else
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(temp,3,3);             		
 	    while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(temp,3,3);   
		
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(20,3,3);              		
 	 	while(SACM_S480_Status()&0x01)           
			SACM_S480_ServiceLoop();                     
		SACM_S480_Play(20,3,3); 
		
        if(y==0)
        {
       		;
        }
		else
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(y,3,3);              	
 	  	   	while(SACM_S480_Status()&0x01)           
		   		SACM_S480_ServiceLoop();                     
			SACM_S480_Play(y,3,3);
		}   		
	}
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(12,3,3);            //报“半径”			
    while(SACM_S480_Status()&0x01)           
	   	SACM_S480_ServiceLoop();                     
	SACM_S480_Play(12,3,3);   
		
	temp=r/10;                              //报“r”
	r=r-temp*10;
	if(temp==0)
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(r,3,3);             			
   		while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(r,3,3);   
	}
	else
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(temp,3,3);             		
 	    while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(temp,3,3);   
		
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(20,3,3);              		
 	 	while(SACM_S480_Status()&0x01)           
			SACM_S480_ServiceLoop();                     
		SACM_S480_Play(20,3,3); 
		
        if(r==0)
        {
       		;
        }
		else
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(r,3,3);              	
 	  	   	while(SACM_S480_Status()&0x01)           
		   		SACM_S480_ServiceLoop();                     
			SACM_S480_Play(r,3,3);
		}   		
	}
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(13,3,3);            //报“厘米”			
    while(SACM_S480_Status()&0x01)           
	   	SACM_S480_ServiceLoop();                     
	SACM_S480_Play(13,3,3);
	*P_INT_Ctrl=0x0040;
	return;   
}
//=========================================================================================
//                                                    报初始化                           //
//=========================================================================================
void voice_ini(int x,int y)
{
	int temp;
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(17,3,3);            //报“初始化完毕”			
    while(SACM_S480_Status()&0x01)           
	   	SACM_S480_ServiceLoop();                     
	SACM_S480_Play(17,3,3);
	
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(14,3,3);            //报“当前坐标”			
    while(SACM_S480_Status()&0x01)           
	   	SACM_S480_ServiceLoop();                     
	SACM_S480_Play(14,3,3);
	
	temp=x/10;                              //报“x”
	x=x-temp*10;
	if(temp==0)
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(x,3,3);             			
   		while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(x,3,3);   
	}
	else
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(temp,3,3);             		
 	    while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(temp,3,3);   
		
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(20,3,3);              		
 	 	while(SACM_S480_Status()&0x01)           
			SACM_S480_ServiceLoop();                     
		SACM_S480_Play(20,3,3); 
		
        if(x==0)
        {
       		;
        }
		else
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(x,3,3);              	
 	  	   	while(SACM_S480_Status()&0x01)           
		   		SACM_S480_ServiceLoop();                     
			SACM_S480_Play(x,3,3);
		}   		
	}
	
	temp=y/100;                              //报“y”
	if(temp==1)
	{
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(temp,3,3);             			
   		while(SACM_S480_Status()&0x01)           
		   	SACM_S480_ServiceLoop();                     
		SACM_S480_Play(temp,3,3);   
			
		SACM_S480_Initial(1);	                         
		SACM_S480_Play(21,3,3);             			
   		while(SACM_S480_Status()&0x01)           
	  		SACM_S480_ServiceLoop();                     
		SACM_S480_Play(21,3,3);   
	}
	else
	{
		temp=y/10;
		y=y-temp*10;
		if(temp==0)
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(y,3,3);             			
   			while(SACM_S480_Status()&0x01)           
		   		SACM_S480_ServiceLoop();                     
			SACM_S480_Play(y,3,3);   
		}
		else
		{
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(temp,3,3);             		
 	  	    while(SACM_S480_Status()&0x01)           
			   	SACM_S480_ServiceLoop();                     
			SACM_S480_Play(temp,3,3);   
			
			SACM_S480_Initial(1);	                         
			SACM_S480_Play(20,3,3);              		
 	 		while(SACM_S480_Status()&0x01)           
				SACM_S480_ServiceLoop();                     
			SACM_S480_Play(20,3,3); 
		
       	    if(y==0)
       	    {
       	   		;
       	    }
			else
			{
				SACM_S480_Initial(1);	                         
				SACM_S480_Play(y,3,3);              	
 	  	   		while(SACM_S480_Status()&0x01)           
		   			SACM_S480_ServiceLoop();                     
				SACM_S480_Play(y,3,3);
			}   		
		}		
	}
	*P_INT_Ctrl=0x0040;
	return;
}
//=========================================================================================
//                                                    报自动跟踪                         //
//=========================================================================================
void voice_trace(void)
{
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(18,3,3);              	
    while(SACM_S480_Status()&0x01)           
		SACM_S480_ServiceLoop();                     
	SACM_S480_Play(18,3,3);
	*P_INT_Ctrl=0x0040;
	return;
}
//=========================================================================================
//                                                    报任务完成                         //
//=========================================================================================
void voice_complete(void)
{
	SACM_S480_Initial(1);	                         
	SACM_S480_Play(19,3,3);              	
    while(SACM_S480_Status()&0x01)           
		SACM_S480_ServiceLoop();                     
	SACM_S480_Play(19,3,3);
	*P_INT_Ctrl=0x0040;
	return;
}

 

⌨️ 快捷键说明

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