亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6856|回復: 2
收起左側

51單片機 語音芯片YF017 驅動函數以及簡單調用例程

[復制鏈接]
ID:425175 發表于 2019-12-1 11:33 | 顯示全部樓層 |閱讀模式

YF017--數據手冊-剪影

YF017--數據手冊-剪影
YF017-語音片段.jpg



YF017-run.png



//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);
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:334749 發表于 2019-12-6 09:33 | 顯示全部樓層
有辦法做到不阻塞嗎?
回復

使用道具 舉報

ID:425175 發表于 2019-12-6 14:08 | 顯示全部樓層
老農要進城 發表于 2019-12-6 09:33
有辦法做到不阻塞嗎?

我頂多算個新手,關于阻塞問題,不太懂
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表