标题:
CHV030语音芯片驱动代码,自己写,测试好用
[打印本页]
作者:
dcc024
时间:
2023-6-7 14:48
标题:
CHV030语音芯片驱动代码,自己写,测试好用
1686120356396.png
(13.32 KB, 下载次数: 58)
下载附件
2023-6-7 14:47 上传
8脚芯片,CHV030语音芯片驱动代码,自己写,测试好用。单线串口,STC单片机都可以驱发声音。
CHV30_drv.c
#include "CHV30_drv.h"
///////////////////////////////////////////////////////////////////////////////////////////
//函数名称: CHV30_W_byte();
//函数功能: 将数据dat送出,可以是地址,也可以是数据,发完后等待应答
//输入参数: uchar dat 要写入的字节型数据或地址
//////////////////////////////////////////////////////////////////////////////////////////
void CHV30_W_byte(uchar dat)
{
uchar i;
CHV30_SDA=0;
DELAY_ms(6);
EA=0;
for (i=0;i<8;i++)
{
if (dat&0x01)
{
CHV30_SDA=1 ;
DELAY_us(600);
CHV30_SDA=0;
DELAY_us(200);
}
else
{
CHV30_SDA=1 ;
DELAY_us(200);
CHV30_SDA=0;
DELAY_us(600);
}
dat = dat >> 1 ;
}
CHV30_SDA=1;
while(CHV30_BUSY!=1);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
//函数描述: 播放
///////////////////////////////////////////////////////////////////////////////////////////////
void CHV30_S_PLAY(uchar ADD)
{
CHV30_W_byte(ADD) ;
DELAY_ms(20);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
//函数描述: 组合播放命令
///////////////////////////////////////////////////////////////////////////////////////////////
void CHV30_S_ZH(void)
{
CHV30_W_byte(0xF3) ;
DELAY_ms(25);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
//函数描述: 重复播放某一段
///////////////////////////////////////////////////////////////////////////////////////////////
void CHV30_S_PLAY_R(uchar ADD)
{
CHV30_W_byte(ADD) ;
DELAY_ms(25);
CHV30_W_byte(0xF2) ;
DELAY_ms(25);
}
//////////////////////////////////////////////////////////////////////////////////////////
//函数描述: 5 级音量,0xE0H 为最小音量 0,0xEFH 最大音量 (上电默认)
//////////////////////////////////////////////////////////////////////////////////////////
void CHV30_S_VOL (uchar VOL)
{
if(VOL>=15)
{
VOL=15;
}
CHV30_W_byte(0xE0|VOL); //0xE0-0xEF
DELAY_ms(20);
}
//////////////////////////////////////////////////////////////////////////////////////////
//函数描述: 关闭语音 进入超低功耗状态=1.7uA
//////////////////////////////////////////////////////////////////////////////////////////
void CHV30_S_OFF (void)
{
CHV30_W_byte(0xF0);
}
//////////////////////////////////////////////////////////////////////////////////////////
//函数描述: 开启
//////////////////////////////////////////////////////////////////////////////////////////
void CHV30_S_ON (void)
{
CHV30_SDA=0;
DELAY_ms(40);
}
//////////////////////////////////////////////////////////////////////////////////////////
//函数描述: 停下播放
//////////////////////////////////////////////////////////////////////////////////////////
void CHV30_S_STOP (void)
{
CHV30_W_byte(0xFE);
}
复制代码
CHV30_drv.h
#ifndef _CHV30_DRV_
#define _CHV30_DRV_
#include "main.h"
sbit CHV30_SDA = P1^6; //PIN3 PA1 SDA
sbit CHV30_BUSY = P1^7; //PIN1 PBO BUSY
///////////////////////////////////////////////////////////////////////////////////////////
////////////CHV30发送////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
extern void CHV30_W_byte(uchar dat);
void CHV30_S_PLAY(uchar ADD); //地址播放
void CHV30_S_ZH(void); //组合命令
void CHV30_S_PLAY_R(uchar ADD); //重复播放
void CHV30_S_VOL (uchar VOL); //音量调节
void CHV30_S_OFF(void); //关闭
void CHV30_S_ON(void); //打开
void CHV30_S_STOP(void); //停止
#endif
复制代码
作者:
joyb
时间:
2023-6-8 08:26
给个电路原理图
作者:
feixue2007
时间:
2023-6-9 10:04
有完整的图纸和程序文件吗????那个厂家的芯片????
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1