SD8608音乐芯片在许多迎宾门铃上都有应用[url=]附件[/url],内部储存有32首(或16首)乐曲(含语音及警报声),四级音量循环可调,模块上有10个引线,其中1~5引线为触发开关,可以单独或两个组合,高电平发出控制信息,进行选曲、设定音量、触发播放声乐、语音或报警声。芯片的外形及引线如下:
32首乐曲的曲目如下:
按键的部分功能如下(测试时其中K4按键没有启用):
为方便测试,音乐芯片连接在扩展座上:
下图为正在测试:
本次测试仅仅是进行了选曲、调节音量、播放选定的乐曲、播放报警声和播放“欢迎光临”的语音等功能。
下面是sd8608.h文件:
/*
* File: sd8608.h
* Author: Administrator
*
* Created on 2020年7月17日, 上午9:58
*/
#ifndef SD8608_H
#define SD8608_H
#ifdef __cplusplus
extern "C" {
#endif
#define sd1_on() SNDN_PIN_SetHigh()
#define sd1_off() SNDN_PIN_SetLow()
#define sd2_on() SNDP_PIN_SetHigh()
#define sd2_off() SNDP_PIN_SetLow()
#define sd3_on() SD_3_SetHigh()
#define sd3_off() SD_3_SetLow()
#define sd5_on() SD_5_SetHigh()
#define sd5_off() SD_5_SetLow()
#ifdef __cplusplus
}
#endif
void sd_send(void);
void sd_welcome(void);
void sd_alarm(void);
void sd_select(void);
void sd_volume(void);
void sd_recome(void);
void sd_test1(void);
void sd_test2(void);
void sd_test3(void);
void sd_test4(void);
#endif /* SD8608_H */
下面是sd8608.c文件:
#include "sd8608.h"
#include "mcc_generated_files/mcc.h"
/********************************************************************
* 程序名称:sd_send()
* 作 用: 触发播放预设的乐曲
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_send(void)
{
sd2_on();
__delay_ms(100);
sd2_off();
}
/********************************************************************
* 程序名称:sd_welcome()
* 作 用: 触发播放欢迎语音
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_welcome(void)
{
sd5_on();
__delay_ms(100);
sd5_off();
}
/********************************************************************
* 程序名称:sd_alarm()
* 作 用: 触发播放警报声
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_alarm(void)
{
sd3_on();
__delay_ms(100);
sd3_off();
}
/********************************************************************
* 程序名称:sd_select()
* 作 用: 触发播放警报声
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_select(void)
{
sd1_on();
__delay_ms(100);
sd1_off();
}
/********************************************************************
* 程序名称:sd_volume()
* 作 用: 音量调节
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_volume(void)
{
sd1_on();
sd3_on();
__delay_ms(100);
sd1_off();
sd3_off();
}
/********************************************************************
* 程序名称:sd_recome()
* 作 用: 返回所选曲目
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_recome(void)
{
sd1_on();
sd2_on();
__delay_ms(100);
sd1_off();
sd2_off();
}
/********************************************************************
* 程序名称:sd_recome()
* 作 用: 返回所选曲目
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_test1(void)
{
sd3_on();
sd5_on();
__delay_ms(100);
sd3_off();
sd5_off();
}
/********************************************************************
* 程序名称:sd_recome()
* 作 用: 返回所选曲目
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_test2(void)
{
sd2_on();
sd3_on();
__delay_ms(100);
sd2_off();
sd3_off();
}
/********************************************************************
* 程序名称:sd_recome()
* 作 用: 返回所选曲目
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_test3(void)
{
sd2_on();
sd5_on();
__delay_ms(100);
sd2_off();
sd5_off();
}
/********************************************************************
* 程序名称:sd_recome()
* 作 用: 返回所选曲目
* 输入参数:无
* 输入参数:无
*******************************************************************/
void sd_test4(void)
{
sd1_on();
sd5_on();
__delay_ms(100);
sd1_off();
sd5_off();
}
|