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

📄 isd4004.c

📁 isd4004语音,我实验过,成功,欢迎下载!
💻 C
字号:
/*spi isd4004.h*/
#include "reg51.h"
#include "intrins.h"

#define uchar unsigned char 
#define  unint  unsigned int

uchar a,addr,table;


sbit ISD4004_SS = P1^7;
sbit ISD4004_SCLK= P2^1;
sbit ISD4004_MOSI= P3^6;
sbit ISD4004_MOSO= P3^7;
sbit _rac = P0^4;
sbit _int = P3^2;

//============================================================
//函数名称:void delay25ms()
//函数功能:延迟25ms
//日期:2007.03.31
//============================================================
void delay25ms()
{
    unsigned int i;
    for(i=0;i<=5000;i++);
}




//===========================================================
//函数名称:void ISD4004_ISD4004_Send(unsigned char m)
//函数功能:给ISD4004送命令
//日期:2007.03.31
//===========================================================
void ISD4004_Send(unsigned char m)
{
    unsigned char i,j;
    for(i=0;i<8;i++)
    {
        ISD4004_SCLK = 0;
        if(m&0x01)
            ISD4004_MOSI=1;
        else
            ISD4004_MOSI=0;
        for(j=0;j<5;j++);
        ISD4004_SCLK=1;
        for(j=0;j<5;j++);
        m=m>>1;
    }
}


//===========================================================
//函数名称:void ISD4004_Powerup()
//函数功能:ISD4004上电
//日期:2007.03.31
//===========================================================
void ISD4004_Powerup()
{
    ISD4004_SS=0;                        //开片选
    ISD4004_Send(0x20);
    delay25ms();
    ISD4004_SS=1;                        //关片选
}


//============================================================
//函数名称:void ISD4004_Stop()
//函数功能:ISD4004停止
//日期:2007.03.31
//============================================================
void ISD4004_Stop()
{
    ISD4004_SS=0;
    ISD4004_Send(0x30);
    ISD4004_SS=1;
}


//===========================================================
//函数名称:void ISD4004_Powerdown()
//函数功能:下电  停止并掉电
//日期:2007.03.31
//===========================================================
void ISD4004_Powerdown()
{
    ISD4004_SS=0;
    ISD4004_Send(0x10);
    ISD4004_SS=1;
}


//==========================================================
//函数名称:void ISD4004_Play(unsigned char addr_h,unsigned char addr_l)
//函数功能:放音
//日期:2007.03.31
//==========================================================
void ISD4004_Play(unsigned char addr_h,unsigned char addr_l)
{
    
    ISD4004_SS=0;
    ISD4004_Send(addr_l);
    ISD4004_Send(addr_h);
    ISD4004_Send(0xe0);
    ISD4004_SS=1;
	
    ISD4004_SS=0;
    ISD4004_Send(0xf0);
    ISD4004_SS=1;
}

//================================================================
void ISD4004_Rec(unsigned char addr_h,unsigned char addr_l)
{
    ISD4004_SS=0;
    ISD4004_Send(addr_l);
    ISD4004_Send(addr_h);
    ISD4004_Send(0xa0);
    ISD4004_SS=1;

    ISD4004_SS=0;
    ISD4004_Send(0xb0);
    ISD4004_SS=1;
}


//================================================================
//函数名称:void fangyin()
//函数功能:语音 addr为地址
//日期:2007.03.31
//================================================================
void fangyin(uchar addr)
{ 
    uchar a;
    ISD4004_Powerup();
    delay25ms();
    a = addr * 2;   
    ISD4004_Play(table[a],table[a+1]);     
}

//================================================================
//函数名称:void luyin()
//函数功能:语音 addr为地址
//日期:2007.03.31
//================================================================
void luyin(uchar addr)
{ 
    uchar a;
    ISD4004_Powerup();
    delay25ms();
	delay25ms();
    a = addr * 2;   
    ISD4004_Rec(table[a],table[a+1]);     
} 

⌨️ 快捷键说明

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