|
YF017.png (293.06 KB, 下載次數: 76)
下載附件
YF017--數據手冊-剪影
2019-12-1 11:22 上傳
YF017-語音片段.jpg (33.4 KB, 下載次數: 57)
下載附件
2019-12-1 11:27 上傳
YF017-run.png (71.58 KB, 下載次數: 61)
下載附件
2019-12-1 11:31 上傳
//YF017---語音播報程序
#include <reg52.h>
#include <intrins.h>
sbit MUSIC_REST =P2^0;//語音芯片復位腳
sbit MUSIC_DATA =P2^1;//語音芯片脈沖識別
sbit bus =P2^2;//語音芯片工作狀態識別信號
void delay_us(unsigned int us)
{
while(us--)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
void Music(unsigned char music_count)
{
MUSIC_REST=1;
delay_us(200);
MUSIC_REST=0;
delay_us(200);
while(music_count>0)
{
MUSIC_DATA=1;
delay_us(100);
MUSIC_DATA=0;
delay_us(100);
music_count--;
}
}
void Msc_Alarm(uchar dis[]) //距離播報
{
if((dis[0]+dis[1]+dis[2])!=0) //當超出測量范圍時不進行播報
{
Music(17); //播報:“距離”
while(!bus);
if(dis[0]==0){
Music(2); //播報:“十位數具體值” 0
while(!bus);
}
else {
Music(dis[0]+2); //播報:“十位數具體值”
while(!bus);
}
if((dis[1]+dis[2])!=0){
Music(14); //播報:“點”
while(!bus);
Music(dis[1]+2); //播報:“十分位的具體值”
while(!bus);
Music(dis[2]+2); //播報:“百分位的具體值”
while(!bus);
}
Music(26); //播報:“米”
while(!bus);
}
}
void Msc_temp(uint temp)//溫度播報
{
temp0=temp/100;
temp1=temp%10/10;
temp2=temp%10; //小數
Music(21); //播報:“溫度”
while(!bus);
if((temp[0]+temp[1])!=0)
{
if(temp[0]==0){
Music(temp[1]+2); //播報:“個位的具體值”(不播報十位數了)
while(!bus);
}
Music(temp[0]+2); //播報:“十位的具體值”
while(!bus);
Music(temp[1]+2); //播報:“個位的具體值”
while(!bus);
}
else{
Music(temp[1]+2); //播報:“0”
while(!bus);
}
if(temp2!=0){
Music(14); //播報:“點”
while(!bus);
Music(temp[2]+2); //播報:“小數位”
while(!bus);
Music(29); //播報:“度”
while(!bus);
}
Music(29); //播報:“度”
while(!bus);
}
void MscAlarm()
{
Music(23); //播報:“危險”
while(!bus);
}
|
評分
-
查看全部評分
|