关于语音芯片yf017
时间:10-02
整理:3721RD
点击:
使用yf017连续播放一段声音失败,播放出来的是乱的,求使用过的大神解答,
#include<reg52.h>
#include<string.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
sbit rst1=P1^2;
sbit Da1=P1^1;
sbit busy1=P1^0;
sbit key1=P1^5;
void delay(uint ms)//延时
{
uint x,y;
for(x=ms;x>0;x--)
for(y=110;y>0;y--);
}
void music_1(uchar a)//语音控制函数
{
rst1=1;
delay(2);//发送一个复位脉冲
rst1=0;
delay(2);
while(a>0)
{
Da1=1;
delay(1);//发送脉冲,确定控制的语音段
Da1=0;
delay(1);
a--;
}
}
void main()
{
while(1)
{
if(key1==0)
{
delay(10);
if(key1==0)
{
delay(2);
music_1(25);
while(busy1==0);
music_1(22);
while(busy1==0);
music_1(11);
while(busy1==0);
music_1(13);
while(busy1==0);
music_1(3);
while(busy1==0);
music_1(11);
while(busy1==0);
music_1(4);
while(busy1==0);
music_1(14);
}
}
}
}
芯片的相关信息可以点以下链接
http://wenku.baidu.com/link?url=GOfMvYOH0e1cx-x8KNos66jnL5SIfPqsCqrpvMNYRWO0eSKqEbUsuJhOvpKHnWdk-OzpMqXcK4dIOYf8W8wm19AQvelAhEM0VorHnDX56cK
#include<reg52.h>
#include<string.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
sbit rst1=P1^2;
sbit Da1=P1^1;
sbit busy1=P1^0;
sbit key1=P1^5;
void delay(uint ms)//延时
{
uint x,y;
for(x=ms;x>0;x--)
for(y=110;y>0;y--);
}
void music_1(uchar a)//语音控制函数
{
rst1=1;
delay(2);//发送一个复位脉冲
rst1=0;
delay(2);
while(a>0)
{
Da1=1;
delay(1);//发送脉冲,确定控制的语音段
Da1=0;
delay(1);
a--;
}
}
void main()
{
while(1)
{
if(key1==0)
{
delay(10);
if(key1==0)
{
delay(2);
music_1(25);
while(busy1==0);
music_1(22);
while(busy1==0);
music_1(11);
while(busy1==0);
music_1(13);
while(busy1==0);
music_1(3);
while(busy1==0);
music_1(11);
while(busy1==0);
music_1(4);
while(busy1==0);
music_1(14);
}
}
}
}
芯片的相关信息可以点以下链接
http://wenku.baidu.com/link?url=GOfMvYOH0e1cx-x8KNos66jnL5SIfPqsCqrpvMNYRWO0eSKqEbUsuJhOvpKHnWdk-OzpMqXcK4dIOYf8W8wm19AQvelAhEM0VorHnDX56cK
是不是有中断,打乱你的主程序了?
或者是CPU处理不及时
你也可以关掉中断在试试
没有任何终端,直接是调用而已
检查一下语音芯片的电路吧,纹波大不大,示波器看看,看看信号稳不稳。