YY111111电影院少妇影院无码,亚洲www啪成人一区二区麻豆 ,黑人video粗暴亚裔,熟女无套内射线观56

新聞中心

聯(lián)系方式

廣東速佑半導(dǎo)體有限公司
電  話:0755-81796865  

      400-160-3880
傳  真:0755-28171850
手  機(jī):13823368981
      15889550163
Q   Q:1321386535點(diǎn)擊這里給我發(fā)消息
郵  編:518109
Email:stchip@stchip.com
網(wǎng)  址:
 yixishe.cn

當(dāng)前位置: 首頁(yè) > 新聞中心 > 行業(yè)知識(shí)
行業(yè)知識(shí)

單片機(jī)控制語(yǔ)音芯片代碼

在產(chǎn)品開發(fā)中很多工程師會(huì)問到單片機(jī)如何控制語(yǔ)音芯片放音,下面具體說一下。首先我們?cè)陂_發(fā)產(chǎn)品時(shí)需要用到很多少聲音,一般常用語(yǔ)音芯片如SC080 SC020B SC8035等支持的段數(shù)為32或63段先我們把一些重復(fù)使用的語(yǔ)音先分好段編好地址盡量精簡(jiǎn)。然后用單機(jī)片程序組合成我們需要的語(yǔ)句。如“1-9”,“十”,“百”,“米“?,F(xiàn)在我們要發(fā)“100米”的語(yǔ)音,我們先發(fā)一個(gè)“1”再發(fā)“百”為再發(fā)“米”就可以了,下面討論一下程序怎么樣處理。

1.SC8035單片機(jī)控制接線圖如下:

 

語(yǔ)音芯片

2.時(shí)序圖:

語(yǔ)音芯片

單片機(jī)每次控制語(yǔ)音芯片放音前先發(fā)一個(gè)RST信號(hào)把語(yǔ)音芯片里的計(jì)數(shù)器清0,然后DATA腳發(fā)N個(gè)100US的脈沖高電平,就控制放第N個(gè)里的語(yǔ)音。

3.程序:

 

include "REG_MPC82L52.H"

 #include

 

 

void delay_ms(unsigned int count) ;

void delay_us(unsigned int count);

void SC_Speech(unsigned char cnt);

void SC_WBusy(void);

void SC_Speechs(void);

 

/**************端口定義*****************/

sbit SC_RST=P3^0;      //P3.0是脈沖復(fù)位腳

sbit SC_DATA=P3^1;     //P3.1是脈沖數(shù)據(jù)腳

sbit SC_BUSY=P3^2;     //P3.2是放音BUSY腳

 

unsigned int sp[3];    //定義一個(gè)組合語(yǔ)音用的數(shù)組變量

 

/*************主程序****************/

main (void)

{

  SC_DATA=0;

  SC_RST=1;

  delay_us(100);            //上電復(fù)位防止干擾發(fā)聲芯片放音

  SC_RST=0;

  delay_us(100);

  sp[0]=0;

  sp[1]=0;

  sp[2]=0;

  while(1)

  {

  

        sp[0]=1;

        sp[1]=11;

        sp[2]=12;

        SC_Speechs();      //組合1,11,12地址段放音‘100米‘

   delay_ms(5000);    //延時(shí)放音時(shí)間5秒

   }

}

/**************************************

;延時(shí)X毫秒

;不同的工作環(huán)境,需要調(diào)整此函數(shù)

;入口參數(shù):count

;出口參數(shù):無(wú)

**************************************/

void delay_ms(unsigned int count)    

{

 unsigned int i,j;

 for(i=0;i

 {

    for(j=0;j<500;j++);

 }

}

/**************************************

;延時(shí)X微秒

;不同的工作環(huán)境,需要調(diào)整此函數(shù)

;入口參數(shù):count

;出口參數(shù):無(wú)

**************************************/

void delay_us(unsigned int count)

{

 unsigned int i,j;

 for(i=0;i

 {

    for(j=0;j<2;j++);

 }

}

/**************************************

;控制地址段放音

;入口參數(shù):cnt;

;出口參數(shù):無(wú)

**************************************/

void SC_Speech(unsigned char cnt)

{   

     unsigned char i;  

   

     SC_RST=1;

     delay_us(100);           

     SC_RST=0;

     delay_us(100);

     for(i=0;i < cnt;i++)

     {  

        SC_DATA=1;             //數(shù)據(jù)脈沖高

        delay_us(100);         //延時(shí)100US

        SC_DATA=0;             //數(shù)據(jù)脈沖低

        delay_us(100);         //延時(shí)100US

     }

}

/**************************************

;控制地址段組合放音

;入口參數(shù):無(wú)

;出口參數(shù):無(wú)

**************************************/

void SC_Speechs(void)

{   

    SC_Speech(sp[0]);

    SC_WBusy();

    SC_Speech(sp[1]);

    SC_WBusy();

    SC_Speech(sp[2]);

    sp[0]=0;

    sp[1]=0;

    sp[2]=0;

}

 

/**************************************

;等待BUSY信號(hào)變低;

;入口參數(shù):無(wú)

;出口參數(shù):無(wú)

**************************************/

void SC_WBusy(void)

{

    unsigned int times;

    for(times=0;times<50;times++)        //等待超過5秒最長(zhǎng)語(yǔ)音段自動(dòng)退出;

    {

       delay_ms(100);                    //調(diào)節(jié)組合語(yǔ)音間隔

       if(SC_BUSY==0) break;

    }  

 

}

 

 

 

 

 

 

 

 

 

分享到:
點(diǎn)擊次數(shù):  更新時(shí)間:2012-10-08 23:22:39  【打印此頁(yè)】  【關(guān)閉