您当前的位置:五五电子网电子知识单片机-工控设备51单片机ISD1760录放音程序 正文
ISD1760录放音程序

ISD1760录放音程序

点击数:7948 次   录入时间:03-04 11:51:14   整理:http://www.55dianzi.com   51单片机
ISD_SendData(0x00); 
SS=1; 
delay_ms(10);               //延迟10ms 


/************************************************************************** 
*    函数原型: void ISD_WR_APC2(uchar voICeValue); 
*    功    能: 设置APC2 
**************************************************************************/ 
void ISD_WR_APC2(uchar voiceValue){ 
ISD_SendData(WR_APC2); 
ISD_SendData(0xa8|voiceValue); //0xa8声音最大,0xaf声音最小 
ISD_SendData(0x0c); //D11=1,在SETPLAY模式下,执行到EOM自动结束。或者在连续两个SET_PLAY命令后,执行到第一个EOM自动跳到第二段开始 
SS=1; 
delay_ms(10);               //延迟10ms 
ISD_WR_NVCFG(); //永久写入寄存器 


/************************************************************************** 
*    函数原型: void ISD_WR_NVCFG(void); 
*    功    能: 永久写入寄存器 
**************************************************************************/ 
void ISD_WR_NVCFG(void){ 
ISD_SendData(WR_NVCFG); 
ISD_SendData(0x00); 
SS=1; 
delay_ms(10);               //延迟10ms 


/************************************************************************** 
*    函数原型: void GetToneAdd(uchar cNum, Uint * ipStartAdd, Uint * ipEndAdd); 
*    功    能: 取出当前语音的首末地址 
**************************************************************************/ 
/* 
void GetToneAdd(uchar cNum, uint * ipStartAdd, uint * ipEndAdd){ 

*ipStartAdd=caToneAdd[cNum*2]; 
*ipEndAdd=caToneAdd[cNum*2+1]; 


/************************************************************************** 
*    函数原型: 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(); 
DogReset(); 
}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_ST>>8)&0x00ff); 
/* 
delay_ms(1); 
SBUF=Add_ST_L; 
delay_ms(1); 
SBUF=Add_ST_H; 
delay_ms(1); 
SBUF=Add_ED_L; 
delay_ms(1); 
SBUF=Add_ED_H; 
delay_ms(1); 
*/ 
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(); 
DogReset(); 
}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(); 
DogReset(); 
}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_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(10);               //延迟10ms 

do{ 
RdStatus(); 
DogReset(); 
// }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 SetERASE(uchar cNum); 
*    功    能: 定点删除,容易破坏存储结构(CMA),所以不用 
**************************************************************************/ 
/* 
void SetERASE(uchar cNum){ 

uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L; 

Add_ST_L=(uchar)(Add_ST&0xff); 
Add_ST_H=(uchar)(Add_ST>>8); 
Add_ED_L=(uchar)(Add_ED&0xff); 
Add_ED_H=(uchar)(Add_ED>>8); 

ISD_SendData(SET_ERASE); 
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(120); 


/************************************************************************** 
*    函数原型: void Erase_All(void); 
*    功    能: 全部删除 

上一页  [1] [2] [3] [4]  下一页


本文关键字:程序  51单片机单片机-工控设备 - 51单片机

上一篇:触摸屏原理