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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

ISD1730程序编写.docx

1、ISD1730程序编写#include #include #include #include #include /-/SPI与MCU引脚连接sbit SS = P27;sbit MISO = P24;sbit MOSI = P25;sbit SCLK = P26;sbit led=P20;uchar bdata SR0_L; uchar bdata SR0_H; uchar bdata SR1; uchar ID,APCL=0,APCH=0; uint temshow4; /*延时n ms子函数*/ void delay_ms(unsigned int tt)/延时1ms unsigned c

2、har j; while(tt-) for(j=0;j125;j+); void I_delay(void) unsigned char i; for(i=0;i18;i+) _nop_(); /* * 函数原型: void ISD_Init(void); * 功 能: 初始化 */ void ISD_Init(void) ISD_Reset(); do P1=1; ISD_PU(); RdStatus(); / DogReset(); while(SR0_L&0x01)|(!(SR1&0x01); /if(SR0_L0=1)system Err SBUF=RD_DevID();/读取芯片ID

3、,-1760为0xa0 P2=RD_DevID(); ClrInt(); ISD_WR_APC2(0xa8); RdAPC(); /* * 函数原型: void ISD_CHK_ME(void); * 功 能: 空间检查 */ void ISD_CHK_MEM(void) ISD_SendData(CHK_MEM); ISD_SendData(0x00); SS=1; delay_ms(10); /* * 函数原型: void ISD_PU(void); * 功 能: 上电 */ void ISD_PU(void) ISD_SendData(0x11); ISD_SendData(0x00);

4、 SS=1; delay_ms(50); /* * 函数原型: void ISD_Stop(void); * 功 能: 停止 */ void ISD_Stop(void) ISD_SendData(STOP); ISD_SendData(0x00); SS=1; delay_ms(50); /* * 函数原型: void ISD_Reset(void); * 功 能: 复位 */ void ISD_Reset(void) ISD_SendData(0x13); ISD_SendData(0x00); SS=1; delay_ms(50); /* * 函数原型: void ISD_PD(void

5、); * 功 能: 掉电 */ void ISD_PD(void) ISD_SendData(PD); ISD_SendData(0x00); SS=1; /* * 函数原型: void ISD_SendData(uchar BUF_ISD); * 功 能: 发送数据 */ uchar ISD_SendData(uchar BUF_ISD) uchar i,dat=BUF_ISD; SCLK=1; SS=0; for(i=0;i=1; if(MISO) dat|=0x80; SCLK=1; I_delay(); MOSI=0; / SS=1; return(dat); /* * 函数原型: v

6、oid RdStatus(void); * 功 能: 读取状态 */ void RdStatus(void) ISD_SendData(RD_STATUS); ISD_SendData(0x00); ISD_SendData(0x00); SS=1; delay_ms(10); /延迟10ms SR0_L =ISD_SendData(RD_STATUS); SR0_H =ISD_SendData(0x00); SR1 =ISD_SendData(0x00); SS=1; delay_ms(10); /* * 函数原型: void RdStatus(void); * 功 能: 读取ID */ u

7、char RD_DevID(void) ISD_SendData(RD_DEVID); ISD_SendData(0x00); ISD_SendData(0x00); SS=1; delay_ms(10); /延迟10ms SR0_L =ISD_SendData(RD_DEVID); SR0_H =ISD_SendData(0x00); ID =ISD_SendData(0x00); SS=1; delay_ms(10); return(ID); /* * 函数原型: void RD_APC(void); * 功 能: 读取APC */ void RdAPC(void) ISD_SendDat

8、a(RD_APC); ISD_SendData(0x00); ISD_SendData(0x00); ISD_SendData(0x00); SS=1; delay_ms(10); /延迟10ms SR0_L =ISD_SendData(RD_APC); SR0_H =ISD_SendData(0x00); APCL =ISD_SendData(0x00); APCH =ISD_SendData(0x00); SS=1; delay_ms(10); /延迟10ms /* SBUF=SR0_L; delay_ms(1); SBUF=SR0_H; delay_ms(1); SBUF=APCL; d

9、elay_ms(1); SBUF=APCH; */ /* * 函数原型: void ClrInt(void); * 功 能: 清除中断 */ void ClrInt(void) ISD_SendData(CLI_INT); ISD_SendData(0x00); SS=1; delay_ms(10); /延迟10ms /* * 函数原型: void ISD_WR_APC2(uchar voiceValue); * 功 能: 设置APC2 */ void ISD_WR_APC2(uchar voiceValue) ISD_SendData(WR_APC2); ISD_SendData(0xa8|

10、voiceValue); /0xa8声音最大,0xaf声音最小 ISD_SendData(0x0c); /D11=1,在SETPLAY模式下,执行到EOM自动结束。或者在连续两个SET_PLAY命令后,执行到第一个EOM自动跳到第二段开始 SS=1; delay_ms(10); /延迟10ms ISD_WR_NVCFG(); /永久写入寄存器 /* * 函数原型: void ISD_WR_NVCFG(void); * 功 能: 永久写入寄存器 */ void ISD_WR_NVCFG(void) ISD_SendData(WR_NVCFG); ISD_SendData(0x00); SS=1;

11、 delay_ms(10); /延迟10ms /* * 函数原型: void GetToneAdd(uchar cNum, Uint * ipStartAdd, Uint * ipEndAdd); * 功 能: 取出当前语音的首末地址 */ void GetToneAdd(uchar cNum, uint * ipStartAdd, uint * ipEndAdd) uint caToneAdd26=0x0010,0x0017,0x00018,0x001D,0x0020,0x0023,0x0028,0x002C,0x0031,0x0035, 0x0036,0x003B,0x003D,0x004

12、2,0x0044,0X0049,0x004B,0x0051,0X0053,0x0058, 0x005C,0x005E,0x0065,0x0067,0x006C,0x6F; /先通过独立按键模式每隔0.6-1.0秒分别录取发音(0,1,2,3,4,5,6,7,8,9,十,点,摄氏度) *ipStartAdd=caToneAddcNum*2; / ipStartAdd为每段起始地址 *ipEndAdd=caToneAddcNum*2+1; / ipEndAdd为每段结束地址 /* * 函数原型: void SetPLAY(uchar cNum); * 功 能: 定点播放 */ void SetPL

13、AY(uchar cNum) uint Add_ST, Add_ED; uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L; do RdStatus(); /DogReset(); while(SR0_L&0x01)|(!(SR1&0x01); /if(SR0_L0=1)system Err ClrInt(); / GetToneAdd(cNum, &Add_ST, &Add_ED); Add_ST=0x10; Add_ED=0xff; Add_ST_L=(uchar)(Add_ST&0x00ff); Add_ST_H=(uchar)(Add_ST8)&0

14、x00ff); Add_ED_L=(uchar)(Add_ED&0x00ff); Add_ED_H=(uchar)(Add_ED8)&0x00ff); delay_ms(1); /send_char_com(Add_ST_L) ; SBUF=Add_ST_L; delay_ms(1); /send_char_com(Add_ST_H); SBUF=Add_ST_H; delay_ms(1); /send_char_com(Add_ED_L); SBUF=Add_ED_L; delay_ms(1); /send_char_com(Add_ED_H); SBUF=Add_ED_H; delay_m

15、s(1); ISD_SendData(0x90); ISD_SendData(0x00); ISD_SendData(Add_ST_L); /S7:S0 开始地址 ISD_SendData(Add_ST_H); /S10:S8 ISD_SendData(Add_ED_L); /E7:E0 结束地址 ISD_SendData(Add_ED_H); /E10:E8 ISD_SendData(0x00); SS=1; delay_ms(10); /延迟10ms do RdStatus(); / DogReset(); while(SR0_L&0x01)|(SR1&0x04); /if(SR0_L0=

16、1)system Err /* * 函数原型: void SetREC(uchar cNum); * 功 能: 定点录音 */ void SetREC(uchar cNum) uint Add_ST, Add_ED; uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L; do RdStatus(); /DogReset(); while(SR0_L&0x01)|(!(SR1&0x01); /if(SR0_L0=1)system Err ClrInt(); / GetToneAdd(cNum, &Add_ST, &Add_ED); Add_ST=0x10;

17、Add_ED=0xff; Add_ST_L=(uchar)(Add_ST&0xff); Add_ST_H=(uchar)( _iror_(Add_ST, 8)&0xff); Add_ED_L=(uchar)(Add_ED&0xff); Add_ED_H=(uchar)( _iror_(Add_ED, 8)&0xff); delay_ms(1); send_char_com(Add_ST_L); /SBUF=Add_ST_L; delay_ms(1); send_char_com(Add_ST_H); /SBUF=Add_ST_H; delay_ms(1); send_char_com(Add_

18、ED_L); /SBUF=Add_ED_L; delay_ms(1); send_char_com(Add_ED_H); /SBUF=Add_ED_H; delay_ms(1); ISD_SendData(0x91); ISD_SendData(0x00); ISD_SendData(Add_ST_L); /S7:S0 开始地址 ISD_SendData(Add_ST_H); /S10:S8 ISD_SendData(Add_ED_L); /E7:E0 结束地址 ISD_SendData(Add_ED_H); /E10:E8 ISD_SendData(0x00); SS=1; delay_ms

19、(10); /延迟10ms do RdStatus(); / DogReset(); while(SR0_L&0x01)|(SR1&0x08); /if(SR0_L0=1)system Err / while(SR0_L&0x01)|(!(SR1&0x01); /if(SR0_L0=1)system Err /* * 函数原型: void SetERASE(uchar cNum); * 功 能: 定点删除,容易破坏存储结构(CMA),所以不用 */ void SetERASE(uchar cNum) uint Add_ST, Add_ED; uchar Add_ST_H, Add_ST_L,

20、Add_ED_H, Add_ED_L; Add_ST_L=(uchar)(Add_ST&0xff); Add_ST_H=(uchar)(Add_ST8); Add_ED_L=(uchar)(Add_ED&0xff); Add_ED_H=(uchar)(Add_ED8); ISD_SendData(SET_ERASE); ISD_SendData(0x00); ISD_SendData(Add_ST_L); /S7:S0 开始地址 ISD_SendData(Add_ST_H); /S10:S8 ISD_SendData(Add_ED_L); /E7:E0 结束地址 ISD_SendData(Add_ED_H); /E10:E8 ISD

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

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