?? sound5008.c
字號(hào):
/****************************************************************/
/* 程序說(shuō)明 */
/* */
/* BMP5008語(yǔ)音芯片播音程序 */
/* 該程序很奇怪,不用送使能信號(hào)就能播放聲音 */
/* */
/* 日期:2008,9,14 */
/****************************************************************/
#include "sound5008.h"
unsigned char xdata soundNumPos=0x00;
unsigned char xdata soundNumList[10]={0xee};//0xee為結(jié)束標(biāo)志
void Sound5008Play(unsigned char num)
{
if(num==0||num==0xff)
{
SOUND5008_DATA=num;
return;
}
SOUND5008_DATA=~(num&0x1f);
Delayms(400);
// SOUND5008_PLAY=0;
SOUND5008_DATA=0xff;
}
/****************************************************************************/
//該函數(shù)的使用方法:
//將該函數(shù)放在while主循環(huán)中即可,如果有需要播放的聲音,將他們的組合序號(hào)放在
//soundNumList數(shù)組中,該數(shù)組最大容量為10,初始化該數(shù)組時(shí),一定要將其最后一個(gè)數(shù)
//置成0xee做為結(jié)束標(biāo)記
/****************************************************************************/
void Sound5008PlaySome()// using 0
{
char i=0;
while(i++<10)
{
if(soundNumList[soundNumPos]!=0xee) //不是結(jié)束標(biāo)志
{
while(!SOUND5008_TEST_BUSY);//如果空閑
Sound5008Play(soundNumList[soundNumPos]);
soundNumPos++;
}
else
{
soundNumPos=0;
soundNumList[0]=0xee;//如果你需要將同樣的播放聲音列表播放兩遍,可以將該句注釋掉,
//但以后每次播放完聲音列表之后需要手動(dòng)清空列表或在下一次播放之前清空列表
break;
}
}
}
/*
unsigned char soundMakeUpList[5];//255以內(nèi)的數(shù),最大是五個(gè)的組合.不夠五個(gè)的,以0xee結(jié)尾
void ComListMakeUP(unsigned char i)//根據(jù)數(shù)字(最大255)組合出聲音列表,如:35,組合成聲音列表就是:三 十 五
{
if(i<=10)// <=10的數(shù)
{
soundMakeUpList[0]=i;
soundMakeUpList[1]=0xee;
}
else if((i>=11&&i<=20)||(i<100&&i%10==0)) // >=11并<=20的數(shù) 和 20,30,40,50,...,90,100
{
if(i/10==1)
{
soundMakeUpList[0]=shi;
soundMakeUpList[1]=i%10;
}
else
{
soundMakeUpList[0]=i/10;
soundMakeUpList[1]=shi;
}
soundMakeUpList[2]=0xee;
}
else if(i<100) // 除上述兩類數(shù)之外的小于100的數(shù)
{
soundMakeUpList[0]=i/10;
soundMakeUpList[1]=shi;
soundMakeUpList[2]=i%10;
soundMakeUpList[3]=0xee;
}
else if(i%100==0)//這里指100和200這兩個(gè)數(shù)
{
soundMakeUpList[0]=i/100;
soundMakeUpList[1]=bai;
soundMakeUpList[2]=0xee;
}
else if((i>=101&&i<=109)||(i>=201&&i<=209))
{
soundMakeUpList[0]=i/100;
soundMakeUpList[1]=bai;
soundMakeUpList[2]=ling;
soundMakeUpList[3]=i%10;
soundMakeUpList[4]=0xee;
}
else if(i%10==0)// 大于100的數(shù)中被10整除的數(shù)
{
soundMakeUpList[0]=i/100;
soundMakeUpList[1]=bai;
soundMakeUpList[2]=i%100/10;
soundMakeUpList[3]=shi;
soundMakeUpList[4]=0xee;
}
else
{
soundMakeUpList[0]=i/100;
soundMakeUpList[1]=bai;
soundMakeUpList[2]=i%100/10;
soundMakeUpList[3]=shi;
soundMakeUpList[4]=i%10;
}
}
*/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -