main.c

来自「电子词典的设计开发」· C语言 代码 · 共 635 行 · 第 1/2 页

C
635
字号
	  case 13 :{tel_find[tel_find_name]=value1;flag=1;tel_find_name++;}break;  
	  case 14 :{tel_find[tel_find_name]=value2;flag=1;tel_find_name++;}break;  
	  case 15 :{tel_find[tel_find_name]=value3;flag=1;tel_find_name++;}break;  
 	  case 16 :{tel_find[tel_find_name]=value4;flag=1;tel_find_name++;}break; 
    } 
    if(tel_find_name)Play_Num(tel_find,tel_find_name);
   } 
}    
 
  
 	
 

  
  
 

//=================================================================================
//void play_music() 播放音乐子程序
//================================================================================= 
/*void play_music()
{
        unsigned int i,j;
		SACM_A2000_Initial(Auto);                                //A2000播放初始化  函数包含在Sacmv32.lib
   		SACM_A2000_Play(0,DAC1+DAC2,Ramp_Up_On+Ramp_Dn_On);	     //A2000语音播放  函数包含在Sacmv32.lib
    	if((SACM_A2000_Status()&0x01) == 0)                      //判断语音是否播放结束 函数包含在Sacmv32.lib
         	SACM_A2000_Play(0,DAC1+DAC2,Ramp_Up_On+Ramp_Dn_On);  //语音播放	函数包含在Sacmv32.lib
        
        for(j=0;j<=3;j++)                                        //延时
           for(i=0;i<0xffff;i++)          
                 Clear_Watch_Dog(); 	
}
*/
//=====================================================
//main() 主程序
//=====================================================
main()
{
    unsigned int   temp0=1;                              //发送第一个字符标志
	unsigned int   key=1,i;

	SP_Init_IOA();                                        //带数据缓存器的高电平输出	初始化A口为输出口 	
    SP_Init_IOB();                                        //初始化B口低字节的高四位带数据缓存器的高电平为输出口
	

    Init_sys();		                                       //初始化字库      函数定义在Splc501sys.asm
	FG_InitGraphic();	                                   //初始化LCDIO口   函数定义在Splc501sys.asm
	
                                                          //低四位为带下拉电阻的输入端
	KeyFlag = NoKey; 
    SP_INT_128Hz();                                       //key scan
  	while(1)
	  {	
	    Clear_Watch_Dog();
	    if(flag_dictionary)  Play_Num(KeycodeLED,ret);
	    if(flag_edit_tel)    Play_Num0(line,row);
	    if(flag_find_tel)    Play_Num(tel_find,tel_find_name);
	    if(flag_dictionary+flag_edit_tel+flag_find_tel==0)
	    { 
	     FG_ClearScreen(0); 
	     FG_PutStr("Electronic",3,110,50);
	     FG_PutStr("Dictionary",3,110,35);
	     delay();
	    } 

        if(KeyFlag==1)                                    //有键按下
		{
          KeyFlag=NoKey;
          KeyVal=F_Get_Key();
		    
	      switch( KeyVal)
		  {
		    case 15:                                    //按下此键可以切换字母与数字
		    while(1)
		    {
		       FG_ClearScreen(0); 
		       FG_PutStr("1.Number",3,100,50);
		       FG_PutStr("2.Character",3,100,35);
		       temp=F_Get_Key();
		       delay();
			   if(temp==13) {flag_change=1;break;} 
		       else if(temp==14){flag_change=0;break;}
		    }   
		    break;
		   
			case 7:                               
			  FG_ClearScreen(0); 
			  if(flag_change==0)                //a,b,c
			  {
			    while(1)
			    { 
			      FG_PutStr("a",3,120,20);FG_PutStr("b",3,110,20);
			      FG_PutStr("c",3,100,20);FG_PutStr("kg",3,80,20);    
			      choose(97,98,99,32);
			      if(flag||temp==11) {flag=0;break;} 
			    }
			   } 
			  else if(flag_change&&flag_edit_tel){telephone[line][row]=7;row++;}//数字7
            break; 
              
            case 8:                             
			  FG_ClearScreen(0); 
			  if(flag_change==0)                //d,e,f
			  {
			   while(1)
			   { 
			     FG_PutStr("d",3,120,20);FG_PutStr("e",3,110,20);FG_PutStr("f",3,100,20);    
			     choose(100,101,102,0); 
			     if(flag||temp==11) {flag=0;break;} 
			   }
			  }  
              else if(flag_change&&flag_edit_tel){telephone[line][row]=8;row++;}//数字8
            break;
                 
            case 9:                             //g,h,i
			  FG_ClearScreen(0); 
			  if(flag_change==0)
			  {
			   while(1)
			   { 
			     FG_PutStr("g",3,120,20);FG_PutStr("h",3,110,20);FG_PutStr("i",3,100,20);   
			     choose(103,104,105,0); 		          
                 if(flag||temp==11) {flag=0;break;}
               }
             }  
             else if(flag_change&&flag_edit_tel){telephone[line][row]=9;row++;}//数字9
            break; 
            
            case 4:                             //j,k,l
			  FG_ClearScreen(0);
			  if(flag_change==0)
			  { 
			   while(1)
			   { 
			     FG_PutStr("j",3,120,20);FG_PutStr("k",3,110,20);FG_PutStr("l",3,100,20);    
			     choose(106,107,108,0); 
			     if(flag||temp==11) {flag=0;break;} 
			   }  
			  }       
              else if(flag_change&&flag_edit_tel){telephone[line][row]=4;row++;}//数字4
            break; 
            
            case 5:                             //m,n,o
			  FG_ClearScreen(0); 
			  if(flag_change==0)
			  {
			    while(1)
			    { 
			      FG_PutStr("m",3,120,20);FG_PutStr("n",3,110,20);FG_PutStr("o",3,100,20);    
			      choose(109,110,111,0);
			      if(flag||temp==11) {flag=0;break;} 
			    } 
			  } 
              else if(flag_change&&flag_edit_tel){telephone[line][row]=5;row++;}//数字5
            break; 
            
            case 6:                             //p,r,q,s
			  FG_ClearScreen(0); 
			  if(flag_change==0)
			  {
			   while(1)
			   { 
			     FG_PutStr("p",3,120,20);FG_PutStr("q",3,110,20);
			     FG_PutStr("r",3,100,20);FG_PutStr("s",3,90,20);
			     choose(112,113,114,115); 
			     if(flag||temp==11) {flag=0;break;}
			   }  
			  }  
			  else if(flag_change&&flag_edit_tel){telephone[line][row]=6;row++;} //数字6       
            break;
            
            case 1:                             //t,u,v
			  FG_ClearScreen(0); 
			  if(flag_change==0)
			  {
			   while(1)
			   { 
			     FG_PutStr("t",3,120,20);FG_PutStr("u",3,110,20);FG_PutStr("v",3,100,20);    
			     choose(116,117,118,0); 
			     if(flag||temp==11) {flag=0;break;}
			   } 
			  }         
              else if(flag_change&&flag_edit_tel){telephone[line][row]=1;row++;}//数字1
            break;
            
            case 2:                             //w,x,y,z
			  FG_ClearScreen(0);
			  if(flag_change==0)
			  { 
			   while(1)
			   { 
			     FG_PutStr("w",3,120,20);FG_PutStr("x",3,110,20);
			     FG_PutStr("y",3,100,20);FG_PutStr("z",3,90,20);
			     choose(119,120,121,122); 
			     if(flag||temp==11) {flag=0;break;} 
			   }
			  }  
			 else if(flag_change&&flag_edit_tel){telephone[line][row]=2;row++;}//数字2       
            break;
            
            case 3:
               if(flag_change&&flag_edit_tel){telephone[line][row]=3;row++;}//数字3
            break;
            
            case 16:                                 // 查找电话本或单词
            FG_ClearScreen(0); 
            while(1)
             {
              if(flag_dictionary)                   //查找单词		  
			  {
			    Play_Num(KeycodeLED,ret);
			    ciku();delay();
			    temp=F_Get_Key();
			    if(temp==11) 
			    {
			     while(1)
			     {
			        FG_ClearScreen(0); 
			        FG_PutStr("GO On Find Word?",3,120,55);
			        FG_PutStr("1.YES",3,110,40);
			        FG_PutStr("2. NO",3,110,25);
			        if(temp==13) {ret=0;break;} 
			        if(temp==14) {flag_dictionary=0;ret=0;break;}
			        delay();
			     }			      
			    } 			    
			  }  
			  
			  else if(flag_edit_tel)               //电话本编辑结束
			  {
			    FG_ClearScreen(0); 
			    if(key){FG_PutStr("Have Saved",3,120,40);delay();delay();FG_ClearScreen(0);key=0;}
			   
			    FG_PutStr("GO ON Edit?",3,110,55);
			    FG_PutStr("1.YES",3,110,40);
			    FG_PutStr("2. NO",3,110,25);
			    delay();
			    temp=F_Get_Key();
			    if(temp==13) {line++;row=0;key=1;break;} 
			    if(temp==14) {flag_edit_tel=0;line++;row=0;key=1;break;}
			  } 
			   else if(flag_find_tel)                //查找电话本
			    {
			      tel_num_find();
			      delay();
			      temp=F_Get_Key();
			      if(temp==11) {flag_find_tel=0;tel_num_you=0;tel_find_name=0;break;} 
			    }
			   else break;
			 }
			break;  
			  	  
		
            case 10: 			                     //按此键可以输入单词或数字0
			    if(flag_change&&flag_edit_tel){telephone[line][row]=0;row++;}
			    else
			    { 
			      if(flag_dictionary==0)flag_dictionary=1;
			      flag_you=0;		 
                  delay();
                }
             break;   

	      
			case 11:                            //如果是删除键,ret依次减一
			if(flag_dictionary)  {if(ret>0)  ret--;}
	    	else if(flag_edit_tel)  {if(row>0)	row--;}  
			     else if(flag_find_tel)  {if(tel_find_name>0)	tel_find_name--;}  
			break; 
		
											 			   					       					 
		    case 12:                          //按编辑电话本键,编辑电话本
		        
			    while(1)
                {  
                   FG_ClearScreen(0);            
                   FG_PutStr("DO WHAT?",3,120,60);
                   FG_PutStr("1.Edit Tel Book",3,120,45);
                   FG_PutStr("2.Find Tel Book",3,120,30);
                   temp=F_Get_Key();
                   delay();               
                   if(temp==13)
                   {
                     flag_edit_tel=1;
                     break;
                   }
                   else if(temp==14)
                   {
                      flag_find_tel=1;
                      break;
                   } 
                       else if(temp==11)break;
                }                                                      
              break;               
			       
           }  			    
	   }
   }		        
}

                        
                   
				     
			    

	
	
	
	
	
	
	
	
	
	
	
  

⌨️ 快捷键说明

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