main.c
来自「嵌入式开发试验:蜂鸣器播放音乐实验」· C语言 代码 · 共 181 行
C
181 行
/*
* main.c - demo of beep api
*
* Author: li ming <admin@lumit.org>
* Date: 2005-6-11
* Copyleft: http://www.lumit.org
*/
#include "beep_api.h"
/*
实现播放新的曲子很简单,只要按照 main.c 中的歌曲格式,输入一个新的歌曲音符数组即可。
以 <<东方红>> 歌曲为例, 其中最开始的音符
{ { 5, 2, 4 },{ 0, 0, 0 },
5 表示应该唱 So
2 表示中八度,如果为 1 表示低八度,4 表示高八度
4 表示是一个四分音符, 如果是 2 则表示是一个 二分音符,8 则表示 八分音符
{ 0, 0, 0 } 则表示 此处有一个简短的停顿,以使得歌曲播放起来比较有节奏感。
{ -1, 0, 0 } 则表示歌曲结束。
大家可以根据这个格式,输入新的歌曲简谱,修改 main.c 文件重新编译即可。
*/
/* 歌曲 <<东方红>> */
int dfh[][3] = { { 5, 2, 4 }, { 0, 0, 0 },
{ 5, 2, 8 },
{ 6, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 2 }, { 0, 0, 0 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 0, 0, 0 },
{ 1, 2, 8 },
{ 6, 1, 8 }, { 0, 0, 0 },
{ 2, 2, 2 }, { 0, 0, 0 }, { 0, 0, 0 },
{ 5, 2, 4 }, { 0, 0, 0 },
{ 5, 2, 4 }, { 0, 0, 0 },
{ 6, 2, 8 },
{ 1, 4, 8 }, { 0, 0, 0 },
{ 6, 2, 8 },
{ 5, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 0, 0, 0 },
{ 1, 2, 8 },
{ 6, 1, 8 }, { 0, 0, 0 },
{ 2, 2, 2 }, { 0, 0, 0 }, { 0, 0, 0 },
{ 5, 2, 4 }, { 0, 0, 0 },
{ 2, 2, 4 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 0, 0, 0 },
{ 7, 1, 8 },
{ 6, 1, 8 }, { 0, 0, 0 },
{ 5, 1, 4 }, { 0, 0, 0 },
{ 5, 2, 4 }, { 0, 0, 0 },
{ 2, 2, 4 }, { 0, 0, 0 },
{ 3, 2, 8 },
{ 2, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 0, 0, 0 },
{ 1, 2, 8 },
{ 6, 1, 8 }, { 0, 0, 0 },
{ 2, 2, 8 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 8 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 8 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 7, 1, 8 },
{ 6, 1, 8 }, { 0, 0, 0 },
{ 5, 1, 2 }, { 5, 1, 8 }, { 0, 0, 0 }, { 0, 0, 0 },
{ -1, 0, 0 }
};
/* 歌曲 <<友谊地久天长>> */
int youyi[][3] = { { 5, 1, 4 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 1, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 4 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 4 }, { 2, 2, 16 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 4 },
{ 3, 2, 4 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 1, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 3, 2, 4 },
{ 5, 2, 4 }, { 0, 0, 0 },
{ 6, 2, 2 }, { 6, 2, 4 }, { 0, 0, 0 }, { 0, 0, 0 },
{ 6, 2, 4 }, { 0, 0, 0 },
{ 5, 2, 4 }, { 5, 2, 8 }, { 0, 0, 0 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 3, 2, 4 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 4 }, { 2, 2, 8 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 4 },
{ 3, 2, 4 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 1, 2, 8 }, { 0, 0, 0 },
{ 6, 1, 8 }, { 0, 0, 0 },
{ 6, 1, 4 },
{ 5, 1, 4 }, { 0, 0, 0 },
{ 1, 2, 2 }, { 1, 2, 4 }, { 0, 0, 0 }, { 0, 0, 0 },
{ -1, 0, 0 }
};
/* 歌曲 <<两只老虎>> */
int laohu[][3] = { { 1, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 8 }, { 0, 0, 0 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 8 }, { 0, 0, 0 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 4, 2, 8 }, { 0, 0, 0 },
{ 5, 2, 4 }, { 0, 0, 0 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 4, 2, 8 }, { 0, 0, 0 },
{ 5, 2, 4 }, { 0, 0, 0 },
{ 5, 2, 16 }, { 0, 0, 0 },
{ 6, 2, 16 }, { 0, 0, 0 },
{ 5, 2, 16 }, { 0, 0, 0 },
{ 4, 2, 16 }, { 0, 0, 0 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 5, 2, 16 }, { 0, 0, 0 },
{ 6, 2, 16 }, { 0, 0, 0 },
{ 5, 2, 16 }, { 0, 0, 0 },
{ 4, 2, 16 }, { 0, 0, 0 },
{ 3, 2, 8 }, { 0, 0, 0 },
{ 1, 2, 8 }, { 0, 0, 0 },
{ 2, 2, 8 }, { 0, 0, 0 },
{ 5, 1, 8 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 0, 0, 0 },
{ 2, 2, 8 }, { 0, 0, 0 },
{ 5, 1, 8 }, { 0, 0, 0 },
{ 1, 2, 4 }, { 0, 0, 0 },
{ -1, 0, 0 }
};
int main( void )
{
/* test beep Do, Re, Mi ... */
beep_test();
beep_init();
beep_rest();
/* 歌曲 <<东方红>> */
beep_music( dfh );
beep_rest();
/* 歌曲 <<友谊地久天长>> */
beep_music( youyi );
beep_rest();
/* 歌曲 <<两只老虎>> */
beep_music( laohu );
beep_rest();
return 0;
}
void __rt_entry( void )
{
main();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?