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

📄 语音芯片isd4004.txt

📁 基于ISD4004语言芯片
💻 TXT
字号:
 //语音芯片ISD4004
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SS=P0^0;            //端口定义
sbit MOSI=P0^1;
sbit MISO=P0^2;
sbit SCLK=P0^3;
sbit INT=P0^4;
void delay_ms(unsigned int x)
{
  unsigned int i,j;
  for(i=0;i<x;i++)
  {
    j=108;
    while(j--);
  }
}
void send_data(uint addr,uchar adata)  //发送24位命令格式
{
	unsigned char i=16,j=8;
	SCLK=1;
	SS=0;
        while(i--)                     //发送16位地址
        {   
        	if(addr&0x0001) 
         		MOSI=1;
        	else 
        		MOSI=0;
        	SCLK=0;
        	addr>>=1;
        	_nop_();
        	SCLK=1;
        }
        while(j--)                     //发送8位控制格式
        {   
        	if(adata&0x01) 
         		MOSI=1;
        	else 
        		MOSI=0;
        	SCLK=0;
        	adata>>=1;
        	_nop_();
        	SCLK=1;
        } 
        SS=1;                          //启动录放音      
}
void fangyin(uint addr)
{
	send_data(0x0000,0x20);        //POWER UP
	delay_ms(25);                  //8KHz时延时 25ms
	send_data(addr,0xe0);          //SET PLAY
	send_data(0x0000,0xf0) ;       //PLAY
	while(INT);                    //等待EOM段放音结束 暂未考虑录满情况(VOF)
		    //也可以监控 RAC口 8.0KHz 行输出
            //也可以监控 MISO口标志位(EOM、VOF) 
}
void luyin(uint addr)
{
	send_data(0x0000,0x20);        //POWER UP
	delay_ms(25);                 //8KHz时延时 25ms
	send_data(0x0000,0x20);        //POWER UP
	delay_ms(50);                //延时 2倍
	send_data(addr,0xa0);          //SET REC
	send_data(0x0000,0xf0);        //REC
	while(INT);                    //等待EOM段录音结束 暂未考虑录满情况(VOF)
}
void main()
{ 
   	SS=1;
	SCLK=1;
  	EA=0;     			//设置系统不接受所有的中断
  	EX0=1;				//设置接受INT0的中断
  	IT0=1;				//设置外部中断0为边沿触发方式 
  	while(1)
   	{
/*********************应用程序举例************************************/
     		luyin(0x0123);          //设置录音起始地址,并开始录音
     		fangyin(0x0123);        //设置放音起始地址,并开始放音	
     		                        //不停的调用放音地址可以实现连续播放
/*********************  边录边放  ************************************/
     	}  
}  

⌨️ 快捷键说明

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