没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
顶顶电子携助你 轻松玩转单片机 www.ddmcu.com
将单片机和实惠一网打尽
1
IS
一、
1.IS
D4000 语音开发板实例说明(C语言)
——取自《轻松玩转 51 单片机 C 语言》一书第 20 章部分内容
ISD4000 语音开发板实例说明(C 语言) ...................................................................... 1
一、ISD4000 驱动程序软件包的制作 ................................................................... 1
二、实例解析 ........................................................................................................... 5
实例解析 1——语音的录制与播放 ........................................................................ 5
实例解析 2——语音报站器 .................................................................................... 8
实例解析 3——语音报时电子钟 .......................................................................... 12
ISD4000 驱动程序软件包的制作
ISD4000 系列芯片中,ISD4002/4003 与 ISD4004 操作指令不尽相同,因此,二者的驱
动程序软件包也不尽一致,ISD4002 和 ISD4004 驱动程序软件包的详细内容如下:
D4002 驱动程序软件包
ISD4002 驱动程序软件包文件名为 ISD4002_drive.h,具体内容如下:
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitSS=P1^0; //ISD4000 片选端
sbitSCLK=P1^1; //ISD4000 时钟端
sbitMOSI=P1^2; //ISD4000 数据输入
sbitMISO=P1^3; //ISD4000 数据输出
sbitISD_INT=P3^2; //中断
sbitLED=P2^6; //指示灯
/********以下是 yus 微秒延时函数********/
voiddelay(uintyus)
{
while(yus!=0)yus‐‐;
}
/********以下是 xms 毫秒延时函数********/
voidDelay_ms(uintxms) //延时程序,xms 是形式参数
{
uinti,j;
for(i=xms;i>0;i‐‐) //i=xms,即延时 xms,xms 由实际参数传入一个值
for(j=115;j>0;j‐‐); //此处分号不可少
}
/********以下是 SPI 串行发送函数********/
voidspi_send(ucharisdx)
{
顶顶电子携助你 轻松玩转单片机 www.ddmcu.com
将单片机和实惠一网打尽
2
ucharisd_count;
SS=0; //ss=0,打开 SPI 通信端
SCLK=0;
for(isd_count=0;isd_count<8;isd_count++)//先发低位再发高位,依次发送
{
if((isdx&0x01)==1)
MOSI=1;
else
MOSI=0;
isdx=isdx>>1;
SCLK=1;
delay(2);
SCLK=0;
delay(2);
}
}
/********以下是发送上电指令********/
voidisd_powerup(void)
{
delay(10);
SS=0;
spi_send(0x20);
SS=1;
Delay_ms(50);
}
/********以下是发送掉电指令函数********/
voidisd_poweroff(void)
{delay(10);
spi_send(0x10);
SS=1;
Delay_ms(50);
}
/********以下是发送 play(播放)指令函数********/
voidisd_play(void)
{
LED=0;
spi_send(0xf0);
SS=1;
}
/********以下是发送 rec(录音)指令函数********/
voidisd_rec(void)
{
LED=0;
spi_send(0xb0);
顶顶电子携助你 轻松玩转单片机 www.ddmcu.com
将单片机和实惠一网打尽
3
SS=1;
}
/********以下是发送 stop(停止)指令函数********/
voidisd_stop(void)
{
delay(10);
spi_send(0x30);
SS=1;
Delay_ms(50);
}
/********以下是发送 setplay(放音起始地址)指令函数********/
voidisd_setplay(ucharadl,ucharadh)
{
spi_send(adl);//发送起始地址低位
adh=adh|0xe0;
spi_send(adh);//发送起始地址高位
SS=1;
}
/********以下是发送 setrec(录音起始地址)指令函数********/
voidisd_setrec(ucharadl,ucharadh)
{
spi_send(adl);//发送起始地址低位
adh=adh|0xa0;
spi_send(adh);//发送起始地址高位
SS=1;
}
/********以下是检查芯片是否溢出函数(读 OVF,并返回 OVF 值)********/
ucharcheck_ovf(void)
{
SS=0;
delay(2);
SCLK=0;
delay(2);
SCLK=1;
SCLK=0;
delay(2);
if(MISO==1)
{
SCLK=0;
SS=1; //关闭 spi 通信端
isd_stop(); //发送 stop 指令
return1; //OVF 为 1,返回 1
}
else
顶顶电子携助你 轻松玩转单片机 www.ddmcu.com
将单片机和实惠一网打尽
4
{
SCLK=0;
SS=1; //关闭 spi 通信端
isd_stop(); //发送 stop 指令
return0; //OVF 为 0,返回 0
}
}
2.ISD4004 驱动程序软件包的制作
与 ISD4002/3 不同的是,ISD4004 芯片的语音地址是 16 位,在发送带地址指令(如 setplay
函数,setrec 函数)时,需要先发送两个字节的地址信息,再发送一个字节的命令字;其它函
数与 ISD4002 完全相同,ISD4004 驱动程序软件包文件名为 ISD4004_drive.h,具体内容如
下:
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitSS=P1^0; //ISD4000 片选端
sbitSCLK=P1^1; //ISD4000 时钟端
sbitMOSI=P1^2; //ISD4000 数据输入
sbitMISO=P1^3; //ISD4000 数据输出
sbitISD_INT=P3^2; //中断
sbitLED=P2^6; //指示灯
/********以下是 yus 微秒延时函数********/
与 ISD4002 驱动程序完全相同(略)
/********以下是 xms 毫秒延时函数********/
与 ISD4002 驱动程序完全相同(略)
/********以下是 SPI 串行发送函数********/
voidspi_send(ucharisdx)
与 ISD4002 驱动程序完全相同(略)
/********以下是发送上电指令********/
voidisd_powerup(void)
与 ISD4002 驱动程序完全相同(略)
/********以下是发送掉电指令函数********/
与 ISD4002 驱动程序完全相同(略)
/********以下是发送 play(播放)指令函数********/
与 ISD4002 驱动程序完全相同(略)
/********以下是发送 rec(录音)指令函数********/
与 ISD4002 驱动程序完全相同(略)
/********以下是发送 stop(停止)指令函数********/
与 ISD4002 驱动程序完全相同(略)
/********以下是发送 setplay(放音起始地址)指令函数********/
voidisd_setplay(ucharadl,ucharadh)
{
Delay_ms(1);
spi_send(adl); //发送放音起始地址低位
剩余17页未读,继续阅读
资源评论
- tech-J2013-07-01程序写的还好,没试验,估计可以
lb693294195
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功