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

📄 测试._c

📁 ISD1720芯片实现录音,定点录音,播放,定点播放等.
💻 _C
📖 第 1 页 / 共 2 页
字号:
        ISD_SendData(0x00);
		SS_1;   
        delay_ms(120); 
}

/**************************************************************************  
*    函数原型: void SetPLAY(uchar cNum);  
*    功    能: 定点播放  
**************************************************************************/  
void SetPLAY(uchar cNum)
{  
        uint Add_ST,Add_ED;
		uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L;  

        do{  
                RdStatus(); 
        }while((SR0_L&0x01)||(!(SR1&0x01)));        
		//if(SR0_L^0==1){system Err}<CMD_Err==1>  

        ClrInt();//清除中断
		
		GetToneAdd(cNum, &Add_ST, &Add_ED);//取得播放地址
		
        Add_ST_L=(uchar)(Add_ST&0x00ff);  //开始播放的地址
        Add_ST_H=(uchar)((Add_ST>>8)&0x00ff);  
        Add_ED_L=(uchar)(Add_ED&0x00ff);  //播放结束地址
        Add_ED_H=(uchar)((Add_ED>>8)&0x00ff);
		  
        ISD_SendData(SET_PLAY);  
        ISD_SendData(0x00);  
        ISD_SendData(Add_ST_L);                 //S7:S0  开始地址  
        ISD_SendData(Add_ST_H);                  //S10:S8  
        ISD_SendData(Add_ED_L);                  //E7:E0  结束地址  
        ISD_SendData(Add_ED_H);                  //E10:E8  
        ISD_SendData(0x00);  
        SS_1;
        delay_ms(10);               //延迟10ms  
        do{  
                RdStatus();
        }while((SR0_L&0x01)||((SR1&0x04)));       
		 //if(SR0_L^0==1){system Err}<CMD_Err==1>  

}  

/**************************************************************************  
*    函数原型: void SetREC(uchar cNum);  
*    功    能: 定点录音  
**************************************************************************/  
void SetREC(uchar cNum)
{    
        uint Add_ST,Add_ED;
		uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L;
        do{  
                RdStatus();  
        }while(SR0_L&0x01);        
		//if(SR0_L^0==1){system Err}<CMD_Err==1>  

        ClrInt();//清除中断
		do{  
                RdStatus();  
        }while(!(SR1&0x01));//RDY 
		
		GetToneAdd(cNum, &Add_ST, &Add_ED);//取出要录音的地址
		
		SetERASE(cNum);
		ClrInt();//清除中断
		
        Add_ST_L=(uchar)(Add_ST&0x00ff);  //录音开始地址
        Add_ST_H=(uchar)((Add_ST>>8)&0x00ff);  
        Add_ED_L=(uchar)(Add_ED&0x00ff);  //录音结束地址
        Add_ED_H=(uchar)((Add_ST>>8)&0x00ff);  

        ISD_SendData(SET_REC);  
        ISD_SendData(0x00);  
        ISD_SendData(Add_ST_L);                  //S7:S0  开始地址  
        ISD_SendData(Add_ST_H);                  //S10:S8  
        ISD_SendData(Add_ED_L);                  //E7:E0  结束地址  
        ISD_SendData(Add_ED_H);                 //E10:E8  
        //ISD_SendData(0x00);  
        SS_1;  
        delay_ms(50);               //延迟10ms 
        do{  
                RdStatus();
       // }while((SR0_L&0x01)||((SR1&0x08)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>  
        }while((SR0_L&0x01)||(!(SR1&0x01)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>   
}  

/**************************************************************************  
*    函数原型: void ISD_Init(void);  
*    功    能: 初始化  
**************************************************************************/  
void ISD_Init(void){  
		ISD_Reset();//复位  
        do{  
                ISD_PU(); //上电 
                RdStatus();  //读状态
        }while((SR0_L&0x01)||(!(SR1&0x01)));        //if(SR0_L^0==1){system Err}<CMD_Err==1>  

        ID=RD_DevID();//读取芯片ID,----1760为0xa0  
        ClrInt();  
        ISD_WR_APC2(0x60);  
        RdAPC();
}  

/**************************************************************************  
*    函数原型: void ISD_Init(void);  
*    功    能:主函数
**************************************************************************/
/*void shu(uchar shu)
{
   data[0]=shu/100+'0';
   data[1]=shu%100/10+'0';
   data[2]=shu%10+'0';
} */ 
void main()
{
    uchar i,j,k;
	kaiji();
	DDRD=0XFF;
	spi_sent_init();
	ISD_Init();
	delay_ms(500);
	writecomd(0x01);//清屏显示
	wezhi(1,1);
    zhiti(data_ziju);
	while(1)
	{
	  if(key_press())
	  {
		delay_ms(2);
		i=key_scan();
		while(key_press());
/*************************************
		if(i==1)
		{
		ISD_REC();
		}
		if(i==2)
		{
		  ISD_Stop();
		}
		if(i==3)
		{
		  ClrInt();
		  ISD_Play();
		}
		if(i==4)
		{
		  ClrInt();
		  ISD_FWD();
		}
/********************************************/
		if(i==11)
		{
		   j=0;   //按下10键开始录音
		   for(k=0;k<4;k++)
		    {data_ziju[k]=data_zi[k];}
		    data_ziju[4]=data_zi[8];
		    data_ziju[5]=data_zi[9];
		    data_ziju[8]=data_zi[20];
			data_ziju[9]=data_zi[21];
	        wezhi(1,1);
            zhiti(data_ziju);
		}
		if(i==15)
		{
		   j=1;   //按下11键开始播放
		    for(k=4;k<8;k++)
		    {data_ziju[k-4]=data_zi[k];}
			data_ziju[4]=data_zi[8];
		    data_ziju[5]=data_zi[9];
	        wezhi(1,1);
            zhiti(data_ziju);
		}
/******************************************/
		if(i==10)//1
	    {
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[11];
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(0);
		 SetREC(0);
	    }
		if(i==0)//2
		{
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[12];
	     wezhi(1,1);
         zhiti(data_ziju);
		  if(j)SetPLAY(1);
		 SetREC(1);
		}
		if(i==1)//3
		{
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[13];
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(2);
		 SetREC(2);
		}
		if(i==2)//4
		{
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[14];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(3);
		 SetREC(3);
		}
		if(i==3)//5
		{
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[15];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(4);
		 SetREC(4);
		}
		if(i==14)//6
		{
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[16];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(5);
		 SetREC(5);
		}
		if(i==4)//7
		{
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[17];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(6);
		 SetREC(6);
		}
		if(i==5)//8
		{
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[18];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(7);
		 SetREC(7);
		}
		if(i==6)//9
		{
		 data_ziju[6]=data_zi[10];
		 data_ziju[7]=data_zi[19];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(8);
		 SetREC(8);
		}
		if(i==13)//10
		{
		 data_ziju[6]=data_zi[11];
		 data_ziju[7]=data_zi[10];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(9);
		 SetREC(9);
		}
		if(i==7)//11
		{
		 data_ziju[6]=data_zi[11];
		 data_ziju[7]=data_zi[11];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(10);
		 SetREC(10);
		}
		if(i==8)//12
		{
		 data_ziju[6]=data_zi[11];
		 data_ziju[7]=data_zi[12];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(11);
		 SetREC(11);
		}
		if(i==9)//13
		{
		 data_ziju[6]=data_zi[11];
		 data_ziju[7]=data_zi[13];
	     delay_ms(2);
	     wezhi(1,1);
         zhiti(data_ziju);
		 if(j)SetPLAY(12);
		 SetREC(12);
		}
		if(i==12)//14
		{
		 for(k=22;k<26;k++)
		 {data_ziju[k-22]=data_zi[k];}
	     wezhi(1,1);
         zhiti(data_ziju);
		 Erase_All();//擦除当前曲目
		}
	  }
	}
}

⌨️ 快捷键说明

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