打印

语音芯片ISD4003 求助

[复制链接]
1641|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huchengxtu|  楼主 | 2009-7-26 13:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天调试语音芯片ISD4003 上电的命令有效果
就是录音的命令没放映 RAC脚一直都是高电平 
请问有谁用过ISD4003没 帮帮看下程序
谢谢!

#include "reg51.h" 
#include "intrins.h" 

#define    OUTPUT_LOW(PIN)     PIN=0         
#define    OUTPUT_HIGH(PIN)    PIN=1

sbit _ss=P1^3; 
sbit _sclk=P1^0; 
sbit _mosi=P1^1; 
//sbit _miso=P1^2; 
//sbit _rac=P1^3; 
//sbit _int=P3^2; 

void delayms(unsigned int i);
void stopmode(void);   
void powerup(void);
void powerdown(void);
void record(unsigned int address);
void spiwrite(unsigned int ch);

void delayms(unsigned int time)
{
  TMOD=0x01;
  for(time;time>0;time--)
  {
    TH0=0xF0;
    TL0=0x10; //
    TR0=1;      //    
    while(TF0!=1)     {;}

    TF0=0;
    TR0=0;
  }
}
void spiwrite(unsigned int ch)
{
  unsigned char i;
  _ss=0;
  for(i=0;i<16;i++)
  {
    OUTPUT_LOW(_sclk); 
    if(ch&0x0001)
     OUTPUT_HIGH(_mosi);
    else   OUTPUT_LOW(_mosi);
    _nop_(); _nop_();
    _nop_(); _nop_();

    OUTPUT_HIGH(_sclk);     
    _nop_(); _nop_();    
     _nop_(); _nop_();
    ch>>=1;
    OUTPUT_LOW(_sclk);   
  }
 _ss=1;
}
void stopmode(void) //Í

unsigned char m; 
m=0x30; 
spiwrite(m);


void powerdown(void) // 
{  
unsigned int m;  
m=0x1000; 
spiwrite(m); 


void powerup(void) //

unsigned int m;   
m=0x2000; 
spiwrite(m); 

void record(unsigned int address)      // 

unsigned char i; 
unsigned int m;
powerup(); 
delayms(30);
powerup();
delayms(60);          //上电延时
                     
_ss=0;                      //Òô
address&=0x07ff;
address|=0xA000;  
for(i=0;i<16;i++)
  {
        OUTPUT_LOW(_sclk);    
        if(address&0x0001) OUTPUT_HIGH(_mosi);
        else   OUTPUT_LOW(_mosi);
    _nop_(); _nop_();_nop_(); _nop_();

         OUTPUT_HIGH(_sclk);
    _nop_(); _nop_();
 
        address>>=1;
        OUTPUT_LOW(_sclk);   
  } 
 _ss=1;
  delayms(10);
 m=0xb000;
 spiwrite(m);
  delayms(10);            


void audioout(unsigned int address) //

unsigned char i;  
unsigned int m;

powerup();
delayms(50);
 
_ss=0; 
address&=0x7ff;
address|=0xE000;  
for(i=0;i<16;i++)
  {
        OUTPUT_LOW(_sclk);
 
        if(address&0x0001) OUTPUT_HIGH(_mosi);
        else   OUTPUT_LOW(_mosi);
    _nop_(); _nop_();
   _nop_(); _nop_();
        OUTPUT_HIGH(_sclk);
    _nop_(); _nop_();
  
        address>>=1;
   OUTPUT_LOW(_sclk);   
  }
 _ss=1;
 delayms(10);
 m=0xf000;
spiwrite(m);
 delayms(10);  


 void main()
 {  delayms(4000);    
    record(0x0000);//写录音命令
    //delayms(4000);
    //audioout(0xE000);  //放音命令
 while(1)
 {
    ;
 }
}

相关帖子

沙发
唯创科技| | 2009-12-14 17:32 | 只看该作者
如果ISD用不了,可以考虑用一下WTR-S4(8M)录音模块,同样是高品质的录音芯片,控制方式会十分的容易,是模拟的三线串口。价钱比ISD4003系列便宜一半,品质又有保证。
同时,我也做ISD的拷贝机,包括ISD4000的拷贝机和测试板,有需要可以联系我。
广州唯创  钟生
13560352302  QQ:705604965

使用特权

评论回复
板凳
wtzjp009| | 2010-1-11 14:16 | 只看该作者
如果用不到录音功能,建议可以用OTP的,WTV系列。或者用FLASH型,WT588D系列,控制方式简单,价格相对便宜。如果需要资料,可以联系我QQ:780054382     邮箱:sos18@1999c.com

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

58

帖子

0

粉丝