ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:172.97KB ,
资源ID:5444105      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5444105.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ISD1760学习笔记附全套程序.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ISD1760学习笔记附全套程序.docx

1、ISD1760学习笔记附全套程序ISD1700笔记录音完成后会形成一个EOM标志,局部擦除与放音操作遇到此标志时停止独立按键操作1、 上电复位后,如果没有存储语音则放音指针和录音指针都指向开始地址,如果有存储的语音信息,放音指针指向最后一段语音段的开始地址,录音指针指向第一行可录音地址2、 录音:放音指针受FWD与REC操作影响(什么影响:当REC操作完成后,放音指针会指向新的录音首地址),录音指针在每次REC命令后更新3、 在录音之前,先在要录音的单元执行擦除命令非常重要,必须保证在录音期间的供电,否则会毁坏循环存储结构,要使芯片恢复正常工作必须执行全部擦除命令4、 放音:两种操作模式:第一

2、种是下降沿触发,当play引脚检测到一个下降沿时芯片开始一次放音操作,在放音期间如果play引脚再次检测到下降沿则会停止当前放音操作,在放音期间LED会闪烁,播放完成时LED熄灭。在此时重复播放当前语音段。第二种播放模式是循环播放,当play引脚持续为低电平时,芯片会持续循环播放所有语音段,只有在play引脚被释放时时才会终止循环播放,并且是在当前语音段播放完成后停止,在播放期间,LED会不停的闪烁。播放停止后,放音指针指向终止语音段的首地址。在录音,擦除和下一曲时第一种放音模式是不合法操作将不会被执行。5、 快进:当放音指针指向最后的语音段时,下一曲操作将会使放音指针指向第一段语音。当芯片处

3、于掉电状态并且放音指针没有指向最后一段语音信息时进行FWD操作使放音指针指向下一段语音;当芯片处于掉电状态并且放音指针指向最后一段语音信息时进行FWD操作使放音指针指向第一段语音;当芯片正处于播放非最后一段语音状态时其进行FWD操作将会停止当前播放,将放音指针移向下一段语音首地址,然后播放新语音段,LED全程闪烁;当芯片正处于播放最后一段语音状态时其进行FWD操作将会停止当前播放,将放音指针移向第一段语音首地址,然后播放新语音段,LED全程闪烁。在擦除,录音时FWD操作不合法,将不会被执行。6、 擦除:在独立模式下,擦除单个录音段只能在放音指针指向第一段或最后一段时执行,擦除除此之外的单个语音

4、段不被允许。而全部擦除则会在任意语音段执行。如果芯片处于掉电模式并且放音指针指向第一或最后一段语音执行ERASE操作会擦除当前语音段,更新放音指针指向第二段也就是存在的第一段语音段或倒数第二段语音段;当芯片处于掉电状态并且放音指针指向非首尾任意语音段时,不进行擦除操作,不改变放音指针;在播放第一或最后语音段时打断播放,擦除当前语音段,更新放音指针指向第二段也就是存在的第一段语音段或倒数第二段语音段;当播放非首尾任意语音段时,不进行任何操作。电平触发持续2.5秒时并且保持会启动全部擦除命令并且擦除全部语音段,全部擦除操作图如下7、 当复位后,芯片将处于掉电状态,两个指针都指向最后一段语音,与第一

5、条描述不符!此引脚不用时连接VCC8、 音量操作,每次脉冲是音量减小一次,当减少到最小值时,将反过来增大音量,由此往复。8阶音量控制,每次改变4分贝,每次复位都将恢复出厂设置的最大值。SPI模式1、 与独立模式相当的命令:播放,录音,擦除,快进,全部擦除,复位。2、 先传低位,命令字节的第四位为LED控制位,当此位是1时,LED被激活。3、 SPI命令分类:A、 优先级最高命令:上电,掉电,停止,读状态,清除中断,读取ID,复位;B、 循环存储命令:播放,录音,快进,擦除,全部擦除,读播放指针,读录音指针;C、 模拟配置命令:读APC,写APC,写NVCFG,装载NVCFG,CHE_MEM;D

6、、 内存直通操作命令:SET_ERASE, SET_REC, SET_PLAY。SPI指令说明1、 上电命令PU(0x01):唤醒ISD1700芯片,使其进入空闲状态。操作完成后RDY以及PU均置1,此操作不产生中断。2、 停止当前操作命令STOP(0x02):此操作将停止当前操作,并且使芯片恢复到此操作之前的状态,此命令只对于PLAY,REC,SET_PLAY,SET_REC命令有效,当在ERASE,G_ERASE,SET_ERASE动作时发送此命令CMD_ERR会置1,当芯片处于空闲状态时此命令不会产生任何动作。此命令会产生中断。3、 复位命令RESET(0x03):终止当前操作,并且令芯

7、片掉电,清除EOM以及INT中断标志。4、 清除中断命令CLR_INT(0x04):命令读取芯片状态信息,并且清除EOM以及INT中断标志。5、 读状态命令RD_STATUS(0x05):止读取芯片当前状态。6、 掉电命令PD(0x07):止将芯片至于掉电状态。在执行PLAY,REC,ERESE操作时发送此命令会等当前命令完成后执行掉电命令。产生中断。7、 读取芯片ID指令(0x09):读取芯片ID。8、 播放指令PLAY(0x40):此操作从当前播放指针开始播放直到遇到EOM标志或接收到STOP命令。在执行放音操作时芯片只对STOP, RESET, CLR_INT, RD_STATUS 和

8、PD命令响应。在播放期间RDY为0,PLAY标志位为1。此操作产生中断。9、 录音指令REC(0x41):此操作令芯片从录音指针初开始录音,直到接收到STOP指令或存储空间满。在录音操作期间芯片只对STOP,RESET,CLR_INT,RD_STATUS 和PD命令响应。在录音期间RDY为0,REC标志位为1。此操作产生中断。10、 擦除指令ERASE(0x42):放音指针指向第一段或最后一段信息时,此命令一行行擦除信息,遇到EOM标志时停止操作。擦除操作时芯片只对RESET,CLR_INT,RD_STATUS,PD命令响应。在擦除期间RDY为0,ERASE标志位为1。此操作产生中断。11、

9、全部擦除操作G_ERASE(0x43):芯片此操作擦除所有存储的语音信息,而不管放音指针在哪里,全部擦除期间芯片只对RESET,CLR_INT,RD_STATUS和PD命令响应。在全部擦除期间RDY为0,ERASE标志位为1。此操作产生中断。12、 快进操作FWD(0x48):此操作使播放指针移向下一段语音首地址。SPI模式下的FWD操作不会像独立模式中的FWD能打断当前播放操作执行下一曲,而只能在芯片空闲状态时发送执行。产生中断。13、 读取放音指针指令RD_PLAY_PTR(0x06):读取放音指针,发送此指令时确保用CHK_MEM指令使循环存储结构满足条件,否则会返回不合法数据。14、

10、读取录音指针指令RD_REC_PTR (0x08):读取录音指针,发送此指令时确保用CHK_MEM指令使循环存储结构满足条件,否则会返回不合法数据。15、 存储空间检查命令CHK_MEM(0x49):此命令使芯片检查语音段的排布是否符合环形存储空间协议,此命令必须在上电而且空闲状态下发送执行,当不符合时CMD_ERR位置1,当成功时放音指针指向最后一段语音,录音指针指向最近可用存储单元。16、 读取APC寄存器指令RD_APC (0x44):读取APC寄存器内容。17、 写APC寄存器指令1,WR_APC1 (0x45):此指令将配置信息写入APC寄存器,此命令对音量的配置是从引脚VOL控制,

11、而不是VOL Bit,改变音量时需要特别注意芯片是否在执行其他动作,否则会发生意外错误。18、 写APC寄存器指令2,WR_APC1 (0x65):此指令将配置信息写入APC寄存器,此命令对音量的配置是从通过VOL Bit控制音量,而不是通过VOL引脚,改变音量时需要特别注意芯片是否在执行其他动作,否则会发生意外错误。19、 自由播放指令SET_PLAY(0x80):此命令从开始地址开始播放一直到结束地址,RDY位只有在芯片锁存地址后,为1,一旦此位为1,就可再次发送此命令,以此实现最小延时连续播放。执行此命令时芯片只对SET_PLAY, STOP, RESET, CLR_INT, RD_ST

12、ATUS,PD命令做出相应。20、 自由录音指令SET_REC(0x81):此命令从开始地址开始录音一直到结束地址,RDY位只有在芯片锁存地址后,为1,一旦此位为1,就可再次发送此命令,以此实现最小延时连续录音。执行此命令时芯片只对SET_REC, STOP, RESET, CLR_INT, RD_STATUS,PD命令做出相应。21、 自由擦除SET_ERASE(0x82):;此命令从开始地址开始擦除一直到结束地址,RDY位在擦除过程中一直为低电平,直到擦除完成。擦除过程中芯片只对RESET, CLR_INT, RD_STATUS,PD命令作出相应SPI操作要点开始时录音指针和放音指针都指向

13、开头存储空间0x010。录音完成后,录音指针指向下一个可录音单元,放音指针则随着录音片段的增加指向最新录制完成的语音片段。播放时可接受的命令:STOP,RESET,CLR_INT,RD_STATUS 和 PD,在播放期间RDY以及PLAY标志位均为0。录音时可接受的命令:STOP,RESET,CLR_INT,RD_STATUS 和PD,在录音期间RDY以及REC标志位均为0。擦除时可接受的命令:RESET,CLR_INT,RD_STATUS,PD,在擦除期间RDY以及ERASE标志位均为0。擦除时必须保证指针指向第一段或最后一段语音片段。全部擦除时可接受的命令:RESET,CLR_INT,RD

14、_STATUS和PD,在全部擦除期间RDY以及ERASE标志位均为0。快进操作只能在芯片空闲状态时发送。读取放音指针和录音指针最好在CHK_MEM操作后进行。CHK_MEM使录音指针指向最近可录音单元,是放音指针指向最后一个语音段。复位,掉电,清除中断,读取状态在播放、擦除或录音时能接收执行,另外播放和录音时能够接收停止指令。停止命令只有对放音、录音、自由放音和自由录音有效。中断是一个操作完成的标志,在下一个命令发送之前必须将中断清零。产生中断的命令:放音 录音 下一曲 擦除 全部擦除 更新指针 CHK_MEM 停止 复位电路连接Reset引脚在不用时接高电平Anala受APC的D3位影响MI

15、C-/+受APC的D4位影响SP-/+受APC的D8位影响AUD/AUX受APC的D7位影响AGC引脚可使失真减小到最少,将4.7F的电容接到此引脚使其工作ROSC引脚接一个电阻到地决定采样率FT引脚独立按键模式低电平激活,激活后模拟信号会直接从Anlal引脚传送到SP-/+或AUX/AUD;SPI模式受APC的D6控制INT/RDY引脚,在独立模式下位RDY功能,在SPI模式下时INT功能,当一个SPI命令完成后为低电平,清除中断后为高电平。/*-.C.H文件-*/H文件#ifndef _1760_H#define _1760_H/*-ISD1700 SPI通信引脚位定义-*/sbit SS

16、 = P13;/芯片片选引脚,低电平有效sbit SCK = P14;/时钟线sbit MOSI = P15;/主入从出数据引脚sbit MISO = P16;/主出从入数据引脚uint8 SPI_Senddata(uint8 dat);void ISD_PU(void);void ISD_STOP(void);void ISD_RESET(void);void ISD_CLR_INT(void);void Read_Status(void);void ISD_PD(void);uint8 ISD_DEVID(void);void ISD_PLAY(void);void ISD_REC(voi

17、d);void ISD_ERASE(void);void ISD_G_ERASE(void);void ISD_FWD(void);void ISD_RD_PLAY_PTR(void);void ISD_RD_REC_PTR(void);void ISD_CHK_MEM(void);void ISD_WR_APC1(uint8 apcdatl,uint8 apcdath);void ISD_WR_APC2(uint8 apcdatl,uint8 apcdath);void ISD_SET_PLAY(uint8 s_addl,uint8 s_addh,uint8 e_addl,uint8 e_a

18、ddh);void ISD_SET_REC(uint8 s_addl,uint8 s_addh,uint8 e_addl,uint8 e_addh);void ISD_SET_ERASE(uint8 s_addl,uint8 s_addh,uint8 e_addl,uint8 e_addh);void ISD_Init(void);#endif/C文件#include main.h#include 1760.h#include delay.h#include 1602.hcode uint8 message = System Init;/SPI数据传送函数,必须保证外部SS=1/但是不能在此函

19、数中令SS=1/因为命令为多字节命令,发送命令时必须保证SS=0uint8 SPI_Senddata(uint8 dat) uint8 i,j,SPI_Buf = dat; for(i = 0;i 8;i+) SCK = 0; for(j=0;j= 1; if(MISO) SPI_Buf |= 0x80; SCK = 1; for(j=0;j4;j+); return SPI_Buf; /*/*/*/上电void ISD_PU(void) SS = 0; SR0_L = SPI_Senddata(0X01); SR0_H = SPI_Senddata(0X00); MOSI = 0;/保证MO

20、SI引脚在输入SPI命令之前为低电平 SS = 0;/停止当前操作void ISD_STOP(void) SS = 0; SR0_L = SPI_Senddata(0X02); SR0_H = SPI_Senddata(0X00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1; /复位void ISD_RESET(void) SS = 0; SR0_L = SPI_Senddata(0X03); SR0_H = SPI_Senddata(0X00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/清除中断void ISD_

21、CLR_INT(void) SS = 0; SR0_L = SPI_Senddata(0X04); SR0_H = SPI_Senddata(0X00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/读取状态寄存器void Read_Status(void) SS = 0; SR0_L = SPI_Senddata(0X05); SR0_H = SPI_Senddata(0X00); SR1 = SPI_Senddata(0X00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/掉电void ISD_PD(void)

22、SS = 0; SR0_L = SPI_Senddata(0X07); SR0_H = SPI_Senddata(0X00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/读取IDuint8 ISD_DEVID(void) uint8 ID; SS = 0; SR0_L = SPI_Senddata(0X09); SR0_H = SPI_Senddata(0X00); ID = SPI_Senddata(0X00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1; return ID;/*/*/*/放音void ISD_P

23、LAY(void) SS = 0; SR0_L = SPI_Senddata(0X40); SR0_H = SPI_Senddata(0X00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/录音void ISD_REC(void) SS = 0; SR0_L = SPI_Senddata(0x41); SR0_H = SPI_Senddata(0x00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/局部擦除void ISD_ERASE(void) SS = 0; SR0_L = SPI_Senddata(0x42)

24、; SR0_H = SPI_Senddata(0x00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/全部擦除void ISD_G_ERASE(void) SS = 0; SR0_L = SPI_Senddata(0x43); SR0_H = SPI_Senddata(0x00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/下一曲void ISD_FWD(void) SS = 0; SR0_L = SPI_Senddata(0x48); SR0_H = SPI_Senddata(0x00); MOSI = 0;/保

25、证MOSI引脚在输入SPI命令之前为低电平 SS = 1;/读取放音指针void ISD_RD_PLAY_PTR(void) SS = 0; SR0_L = SPI_Senddata(0x06); SR0_H = SPI_Senddata(0x00); PlayAddL = SPI_Senddata(0x00); PlayAddH = SPI_Senddata(0x00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1; /读取录音指针void ISD_RD_REC_PTR(void) SS = 0; SR0_L = SPI_Senddata(0x08); S

26、R0_H = SPI_Senddata(0x00); RecAddL = SPI_Senddata(0x00); RecAddH = SPI_Senddata(0x00); MOSI = 0;/保证MOSI引脚在输入SPI命令之前为低电平 SS = 1; /存储空间检查函数void ISD_CHK_MEM(void) SS = 0; SPI_Senddata(0x49); SPI_Senddata(0x00); MOSI = 0; SS = 1;/ISD1760配置函数1void ISD_WR_APC1(uint8 apcdatl,uint8 apcdath) SS = 0; SPI_Senddata(0x45); SPI_Senddata(apcdatl); SPI_Senddata(apcdath); SS = 1;/ISD1760配置函数2void ISD_WR_APC2(uint8 apcdatl,uint8 apcdath) SS = 0; SPI_Senddata(0x65); SPI_Senddata(apcdatl); SPI_Senddata(apcdath); SS = 1;/*/*/*

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1