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

📄 isd1700.h

📁 AVR使用硬件SPI控制ISD1760源代码
💻 H
字号:

#ifndef __ISD1700__

#define __ISD1700__

//==============================================================================
//语音段干起始地址
#define VOICE_SEGMENT1  0x10 //声音片断1地址
#define VOICE_SEGMENT2  0x1E
#define VOICE_SEGMENT3  0x26
#define VOICE_SEGMENT4  0x2F
#define VOICE_SEGMENT5  0x38
#define VOICE_SEGMENT6  0x49
#define VOICE_SEGMENT7  0x51
#define VOICE_SEGMENT8  0x58
#define VOICE_SEGMENT9  0x61
#define VOICE_SEGMENT10 0x72
#define VOICE_SEGMENT11 0x7B

#define MAX_SOUND_ID     0x0A  //最大声音索引,数组中最后一位为结束地址
#define INVALID_SOUND_ID 0xFF  //无效声音ID

//==============================================================================
//语音芯片控制命令
#define ISD_PWRUP      0x01   //ISD芯片上电 
#define ISD_PU         0x01
#define ISD_STOP       0x02   //停止当前操作
#define ISD_RESET      0x03   //ISD芯片复位
#define ISD_CLRINT     0x04   //清除EOM标志和中断信号
#define ISD_RDSTATUS   0x05   //返回状态寄存器的内容
#define ISD_RDPLAYPTR  0x06   //返回状态和放音指针
#define ISD_PWRDOWN    0x07   //芯片下电
#define ISD_PD         0x07
#define ISD_RDRECPTR   0x08   //返回状态和录音指针
#define ISD_RDDEVID    0x09   //读取芯片ID
#define ISD_PLAY       0x40   //从当前地址放音
#define ISD_REC        0x41   //从当前地址录音
#define ISD_ERASE      0x42   //擦除当前段
#define ISD_ERASEALL   0x43   //擦除所有当前段
#define ISD_RDAPC      0x44   //返回状态寄存器和
#define ISD_WRAPC      0x45   //将<D11:D0>写入APC寄存器
#define ISD_WRAPCVOL   0x65   //将<D11:D0>写入APC寄存器,并由<D2:D0>控制音量
#define ISD_WRNVCFG    0x46   //将APC的内容写非易失存储器
#define ISD_LDNVCFG    0x47   //将NVCFG的内容装入APC中
#define ISD_FWD        0x48   //将放音指针指向下一段语音起始地址
#define ISD_CHKMEM     0x49   //检测环形存储
#define ISD_ENEXTCLK   0x4A   //使能外部时钟
#define ISD_SETPLAY    0x80   //按指定地址放音
#define ISD_SETREC     0x81   //按指定地址录音
#define ISD_SETERASE   0x82   //按指定地址擦除

//==============================================================================
struct ISD_STATUS
{
  unsigned char SR0_L;
  unsigned char SR0_H;
  unsigned char SR1;
};



//==============================================================================
void isd_init(void);                //芯片初始化
void isd_setapc2(void);             //设置APC(带音量)
void isd_reset(void);               //芯片复位
void isd_pu(void);                  //芯片上电
UCHAR isd_senddata(UCHAR data);     //发送一个字节
bool isd_is_free(void);             //返回当前是否为空闲状态
bool isd_is_done(void);             //当前操作是否完成       
void isd_play(void);                //播放当前段;
void isd_wrnvcfg(void);             //APC配置写入永久记录
void isd_clearint(void);            //清除中断
UCHAR isd_readid(void);             //读芯片ID
void isd_stop(void);                //停止
void isd_pd(void);                  //芯片掉电
void isd_setplay(UINT st_addr, UINT end_addr);   //播放指定段
struct ISD_STATUS isd_rdstatus(void);            //读取状太,返回在一个全局结构中
void isd_playid(UCHAR SoundID);                  //播放指定片断
void isd_forward(void);                          //播放指针跳到下一首
//==============================================================================

#endif

⌨️ 快捷键说明

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