语音芯片WTN6的类

现在所使用的WTN型语音芯片,应用还是挺广泛的,为方便对其操作,创建一个yuyin类,其数据成员部分包括语句数据、命令数据和音量数据,其中语句数据是事先已经烧录进语音芯片中的。类中成员函数可进行的操作是:1、指定播放第几个语句数据   2、调节音量的大小  3,、改变语句的播放模式。

class  yuyin

{  

}



Yuyin.h文件

#ifndef YUYIN_H_
#define YUYIN_H_
#include <stdio.h>
#define YUYIN_xunhuandangqiang   0xF2
#define YUYIN_lianmabofang       0xF3
#define YUYIN_charujinyin        0xF8
#define YUYIN_tingzhidangqian   0xFE


class  Yuyin
{  
private: 
int yuju_n; 
int yinliang_n ; 
byte P_DATA;
 char   yuju[225];
 char   yinliang[16];


public:


Yuyin(int n ,byte pin , byte PinMode);
~Yuyin();

  void  writedata(  char SB_DATA) ;    
 void tiaodayinliang();                 
void  tiaoxiaoyinliang();               
void bofangyuju(int yuju_i);           
void bofangmoshi(int  moshi_i);   


};
#endif


Yuyin.cpp文件


#if ARDUINO >= 100 
  
#include "Arduino.h"


#else
  
#include "WProgram.h"


#endif


#include "Yuyin.h"


Yuyin::Yuyin(int n, byte m)
{

 pinMode(pin, PinMode); 
    yuju_n=n;
    P_DATA=m;
   yinliang_n=15;
   yuju[ 225]={0X00,0X01,0X02};
   mingling[4]={0XF2,0XFE,0XF3,0XF8};
   yinliang[16]={0XE0,0XE1,0XE2,0XE3,0XE4,0XE5,0XE6,0XE7,0XE8,0XE9,0XEa,0XEb,0XEc,0XEd,0XEe,0XEf};


}


Yuyin::~Yuyin()


Yuyin:: writedata( char SB_DATA)
{
unsigned char S_DATA;
boolean  B_DATA;
S_DATA = SB_DATA;
digitalWrite(P_DATA,LOW);
delay(5); 
B_DATA = S_DATA&0X01;
for(int j=0;j<8;j++)
{
if(B_DATA == true)
{
digitalWrite(P_DATA,HIGH);
delayMicroseconds(600);
digitalWrite(P_DATA,LOW);
delayMicroseconds(200); 
}
else
{
digitalWrite(P_DATA,HIGH);
delayMicroseconds(200); 
digitalWrite(P_DATA,LOW);
delayMicroseconds(600);
}
S_DATA = (S_DATA>>1);
B_DATA = S_DATA&0X01;
}
digitalWrite(P_DATA,HIGH);
}


Yuyin::tiaoxiaoyinliang()


{
    if(yinliang_n>0)
    {
     yinliang_n --;
     writedata(yinliang[yinliang_n]);
    }
    else
    yinliang_n=0;


}


Yuyin::tiaodayinliang()
{
    if(yinliang_n<15)
    {
     yinliang_n++;
     writedata(yinliang[yinliang_n]);
    }
    else
    yinliang_n=15;


}








Yuyin::bofangyuju(int yuju_i)
{
    if(0<=yuju_i<=yuju_n)
     writedata(yuju[yuju_i]);
    else if(yuju_i<0)
     writedata(yuju[0]);
    else (yuju_i>yuju_n)
     writedata(yuju[yuju_n]);


}


Yuyin::bofangmoshi(int  moshi_i)
{
if(moshi_i==YUYIN_xunhuandangqiang)
     writedata(YUYIN_xunhuandangqiang);
    else if(moshi_i==YUYIN_lianmabofang)
     writedata(YUYIN_lianmabofang);
    else if(moshi_i==YUYIN_charujinyin)
     writedata(YUYIN_charujinyin);
    else (moshi_i==YUYIN_tingzhidangqian)
     writedata(YUYIN_tingzhidangqian);
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值