a185980800 发表于 2021-8-27 00:10:34

WT588F语音播放芯片

扩展库准备中,先贴个。H文件占个坑。:lol:lol:lol



/*************技术支持与购买说明    **************
产品主页:http://tw51.haohaodada.com
淘宝搜索:天问51,可购买。目前基础版99元,带彩屏标准备版149元,旗舰版299
技术支持QQ群一:1138055784
******************************************/

#ifndef __WT588F02B_H
#define __WT588F02B_H
#include <STC8HX.h>

/*引脚定义*/
#ifndef         WT588F_CLK
#define                 WT588F_CLK         P3_3      //SO时钟信号
#endif

#ifndef         WT588F_CLK_MODE
#define         WT588F_CLK_MODE    {P3M1&=~0x08;P3M0|=0x08;}        //推挽输出
#endif

#ifndef         WT588F_DATA
#define                 WT588F_DATA         P3_2      //SI数据信号
#endif

#ifndef         WT588F_DATA_MODE
#define         WT588F_DATA_MODE    {P3M1&=~0x04;P3M0|=0x04;}        //推挽输出
#endif

#ifndef         WT588F_BUSY
#define                 WT588F_BUSY         P3_0      //BUSY语音忙信号
#endif

#ifndef         WT588F_BUSY_MODE
#define         WT588F_BUSY_MODE    {P3M1|=0x01;P3M0&=~0x01;}        //高阻输入
#endif

#if defined (_C51)      //引入延时函数
#include "C51_delay.h"

#elif defined (_STC12)
#include "STC12_delay.h"


#elif defined (_STC15)
#include "STC15_delay.h"

#else
#include "delay.h"

#endif

void WT588F_init();//WT588F初始化
void Line_2A_WT588F(unsigned char DDATA); //发送数据
void LIAN_WT588F(unsigned char DDATA);    //组合语音连发

/*------------------------------------------------------------/
模块名称:Line_2A_WT588F(unsigned char DDATA);
功 能:实现二线串口通信函数 ;
入 参:DDATA 为发送数据 ;
出 参:WT588F_CLK ;
时钟线:WT588F_DATA ;
数据线:
/-----------------------------------------------------------*/
void WT588F_init()//WT588F初始化
{
        WT588F_CLK_MODE;
        WT588F_DATA_MODE;
        WT588F_BUSY_MODE;
}


/*------------------------------------------------------------/
模块名称:Line_2A_WT588F(unsigned char DDATA);
功 能:实现二线串口通信函数 ;
入 参:DDATA 为发送数据 ;
出 参:WT588F_CLK ;
时钟线:WT588F_DATA ;
数据线:
/-----------------------------------------------------------*/

void Line_2A_WT588F(unsigned char DDATA)
{
        unsigned char S_DATA,j;
        bit B_DATA;

        WT588F_CLK = 1;        //时钟线拉高
        WT588F_DATA = 1; //数据线拉高
        S_DATA = DDATA; //传入数据
        WT588F_CLK = 0; //时钟线拉低
        delay(5); //延时 5ms
        B_DATA = S_DATA&0X01; //准备第一位数据
        for(j=0;j<8;j++)
        {
                WT588F_CLK = 0; //时钟线拉低
                WT588F_DATA = B_DATA; //传输数据一位
                delay100us(); //延时 300us
                delay100us();
                delay100us();
                WT588F_CLK = 1; //时钟线拉高
                delay100us(); //延时 300us
                delay100us();
                delay100us();
                S_DATA = S_DATA>>1; //数据右移一位
                B_DATA = S_DATA&0X01;//准备下一位数据
        }
        WT588F_DATA = 1; //数据线拉高
        WT588F_CLK = 1; //时钟线拉高
}
/*------------------------------------------------------------/
模块名称:LIAN_WT588F(unsigned char DDATA) ;
功 能:连续二线串口通信函数 ;
入 参:DDATA 为发送数据 ;
出 参:WT588F_CLK ;
时钟线:WT588F_DATA ;
数据线:
/-----------------------------------------------------------*/
void LIAN_WT588F(unsigned char DDATA)//组合语音连发
{
        Line_2A_WT588F(0XF3);
        delay(2); //延时 2ms       
        Line_2A_WT588F(DDATA);
        delay(2); //延时 2ms
}


#endif


页: [1]
查看完整版本: WT588F语音播放芯片