?? playsound.c
字號:
#include "playSound.h"
extern xdata uchar MeasureType;
extern xdata uchar s_MHz;//the second part of the period,The Millions of the frequency value
extern xdata uint ms_KHz,us_Hz;////the ms and us part of the period
extern xdata uint decimal;//the part after point of the frequency and period
extern unsigned char xdata soundNumList[10];//0xee為結束標志
void soundPeriod()
{
if(MeasureType==1)
Sound5008Play(PERIOD_SOUND);//周期
else if(MeasureType==2)
Sound5008Play(INTERVAL_SOUND);//間隔
Delayms(3*ONE_WORD);
if(s_MHz>0)
{
soundInteger(s_MHz);
Sound5008Play(POINT_SOUND);//點
Delayms(ONE_WORD);
soundDecimal(ms_KHz,3);
soundDecimal(us_Hz,3);
soundDecimal(decimal,3);
Sound5008Play(SECOND_SOUND);//秒
Delayms(3*ONE_WORD);
}
else if(ms_KHz>0)
{
soundInteger(ms_KHz);
Sound5008Play(POINT_SOUND);//點
Delayms(ONE_WORD);
soundDecimal(us_Hz,3);
soundDecimal(decimal,3);
Sound5008Play(MS_SOUND);//毫秒
Delayms(3*ONE_WORD);
}
else if(us_Hz>=0)
{
if(us_Hz==0)
Sound5008Play(10);//零
else
soundInteger(us_Hz);
Delayms(ONE_WORD);
Sound5008Play(POINT_SOUND);//點
Delayms(ONE_WORD);
soundDecimal(decimal,3);
Sound5008Play(US_SOUND);//微秒
Delayms(3*ONE_WORD);
}
}
void soundFrequency()
{
Sound5008Play(FREQUENCY_SOUND);
Delayms(3*ONE_WORD);
if(s_MHz>0)
{
soundInteger(s_MHz);
Sound5008Play(POINT_SOUND);//點
Delayms(ONE_WORD);
soundDecimal(ms_KHz,3);
soundDecimal(us_Hz,3);
soundDecimal(decimal,4);
Sound5008Play(MHZ_SOUND);
Delayms(3*ONE_WORD);
}
else if(ms_KHz>0)
{
soundInteger(ms_KHz);
Sound5008Play(POINT_SOUND);//點
Delayms(ONE_WORD);
soundDecimal(us_Hz,3);
soundDecimal(decimal,4);
Sound5008Play(KHZ_SOUND);
Delayms(3*ONE_WORD);
}
else if(us_Hz>=0)
{
if(us_Hz==0)
Sound5008Play(10);//零
else
soundInteger(us_Hz);
Delayms(ONE_WORD);
Sound5008Play(POINT_SOUND);//點
Delayms(ONE_WORD);
soundDecimal(decimal,4);
Sound5008Play(HZ_SOUND);
Delayms(3*ONE_WORD);
}
}
void soundDecimal(uint Number,uchar len)
{
xdata uchar ch,j;
uchar i=0;
while(Number)
{
soundNumList[i] = Number%10;
if(0==soundNumList[i])
soundNumList[i]=10;
i++;
Number = Number/10;
}
for(j=i;j<len;j++)
soundNumList[j]=10;
i=len;
for(j=0;j<i/2;j++)
{
ch=soundNumList[j];
soundNumList[j]=soundNumList[i-1-j];
soundNumList[i-1-j]=ch;
}
soundNumList[len] = 0xee;
//幾個數字聲音地址已經設置好
//直接連續播放這些數字
Sound5008PlaySome();//播放聲音
Delayms(ONE_WORD);
}
void soundInteger(uint Number)//限3位數
{
xdata uchar ch,j;
uchar i=0;
//分別取出個/十/百位
while(Number)
{
soundNumList[i] = Number%10;
if(0==soundNumList[i])
soundNumList[i]=10;
i++;
Number = Number/10;
}
//調整好順序百/十/個
for(j=0;j<i/2;j++)
{
ch=soundNumList[j];
soundNumList[j]=soundNumList[i-1-j];
soundNumList[i-1-j]=ch;
}
//開始播放
switch(i)
{
case 3:
soundNumList[5]=0xee;
if(soundNumList[2]==0)
soundNumList[4]=0xee;
else
soundNumList[4]=soundNumList[2];
soundNumList[3]=TEN_SOUND;
if(0==soundNumList[1])
soundNumList[2]=10;
else
soundNumList[2]=soundNumList[1];
soundNumList[1]=HUNDRED_SOUND;
break;
case 2:
soundNumList[3]=0xee;
if(soundNumList[1]==0)
soundNumList[2]=0xee;
else
soundNumList[2]=soundNumList[1];
soundNumList[1]=TEN_SOUND;
break;
case 1:
soundNumList[1]=0xee;
}
Sound5008PlaySome();//播放聲音
Delayms(ONE_WORD);
}
/*
void soundInteger(uint Number)//限3位數
{
xdata uchar ch,j;
uchar i=0;
//分別取出個/十/百位
while(Number)
{
soundNumList[i] = Number%10;
if(0==soundNumList[i])
soundNumList[i]=10;
i++;
Number = Number/10;
}
//調整好順序百/十/個
for(j=0;j<i/2;j++)
{
ch=soundNumList[j];
soundNumList[j]=soundNumList[i-1-j];
soundNumList[i-1-j]=ch;
}
//開始播放
switch(i)
{
case 3:
Sound5008Play(soundNumList[0]);
Delayms(ONE_WORD);
Sound5008Play(12);//百;
Delayms(ONE_WORD);
//不要break;
case 2:
Sound5008Play(soundNumList[1]);
Delayms(ONE_WORD);
if(soundNumList[1]!=10)//十位不是0才讀出“十”
{
Sound5008Play(11);//十;
Delayms(ONE_WORD);
}
//不要break;
case 1:
if(soundNumList[2]!=10)//個位不是0才讀出
{
Sound5008Play(soundNumList[2]);//十;
Delayms(2*ONE_WORD);
}
}
}
*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -