这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机控制语音芯片代码

共1条 1/1 1 跳转至

单片机控制语音芯片代码

助工
2014-11-04 19:13:58     打赏
include "REG_MPC82L52.H"
 #include <stdio.h>


void delay_ms(unsigned int count) ;
void delay_us(unsigned int count);
void SC_Speech(unsigned char cnt);

/**************端口定义*****************/
sbit SC_RST=P3^0;      //P3.0是脉冲复位脚
sbit SC_DATA=P3^1;     //P3.1是脉冲数据脚

/*************主程序****************/
main (void)
{
  SC_DATA=0;
  SC_RST=1;
  delay_us(100);            //上电复位防止干扰发声芯片放音
  SC_RST=0;
  delay_us(100);
  while(1)
  {
 SC_Speech(8);      //发8个触发信号,发第8段声音
 delay_ms(5000);    //延时放音时间5秒
   }
}
/**************************************
;延时X毫秒
;不同的工作环境,需要调整此函数
;入口参数:count
;出口参数:无
**************************************/
void delay_ms(unsigned int count)     
{
 unsigned int i,j;
 for(i=0;i<count;i++)
 {
    for(j=0;j<500;j++);
 }
}
/**************************************
;延时X微秒
;不同的工作环境,需要调整此函数
;入口参数:count
;出口参数:无
**************************************/
void delay_us(unsigned int count)
{
 unsigned int i,j;
 for(i=0;i<count;i++)
 {
    for(j=0;j<2;j++);
 }
}
/**************************************
;控制地址段放音
;入口参数:cnt;
;出口参数:无
**************************************/
void SC_Speech(unsigned char cnt)
{    
     unsigned char i;   
    
     SC_RST=1;
     delay_us(100);            //DAC,大于32段为15MS
     SC_RST=0;
     delay_us(100); 
     for(i=0;i < cnt;i++)
     {   
        SC_DATA=1;             //数据脉冲高
        delay_us(100);         //延时100US
        SC_DATA=0;             //数据脉冲低
        delay_us(100);         //延时100US
     } 
}

 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]