- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机播放音乐简谱的函数库
51单片机播放音乐简谱的函数库 作者:PLC 来源: 单片机学习网 ? 2006-10-21
51单片机播放音乐简谱的函数库:
/**************************************************************************?? ???? ?????SOUND PLAY FOR 51MCU? ?????????????? ??COPYRIGHT (c)?? 2005 BY JJJ.?????????????????????? ??--? ALL RIGHTS RESERVED? --? ?? File Name:?????? SoundPlay.h?? Author:????????? Jiang Jian Jun?? Created:???????? 2005/5/16?? Modified:??NO?? Revision: ??1.0? *******************************************************************************/
/*说明**************************************************************************?曲谱存贮格式 unsigned char code MusicName{音高,音长,音高,音长...., 0,0};?末尾:0,0 表示结束(Important)
?音高由三位数字组成:???个位是表示 1~7 这七个音符 ???十位是表示音符所在的音区:1-低音,2-中音,3-高音;???百位表示这个音符是否要升半音: 0-不升,1-升半音。??音长最多由三位数字组成: ???个位表示音符的时值,其对应关系是: ????|数值(n):? |0 |1 |2 |3 | 4 | 5 | 6 ????|几分音符: |1 |2 |4 |8 |16 |32 |64 ??音符=2^n???十位表示音符的演奏效果(0-2):? 0-普通,1-连音,2-顿音???百位是符点位: 0-无符点,1-有符点
?调用演奏子程序的格式???Play(乐曲名,调号,升降八度,演奏速度);?|乐曲名?????????? : 要播放的乐曲指针,结尾以(0,0)结束;?|调号(0-11)?????? :?是指乐曲升多少个半音演奏;?|升降八度(1-3)?? : 1:降八度, 2:不升不降, 3:升八度;?|演奏速度(1-12000):?值越大速度越快;
***************************************************************************/#ifndef __SOUNDPLAY_H_REVISION_FIRST__#define __SOUNDPLAY_H_REVISION_FIRST__
#i nclude
//**************************************************************************
#define SYSTEM_OSC ?//定义晶振频Z#define SOUND_SPACE ?4/5 ??//定义普通音符演奏的长度分率,//每4分音符间隔sbit??? BeepIO??? =?? ?P2^6;??//定义输出管脚
unsigned int? code FreTab[12]? = { 262,277,294,311,330,349,369,392,415,440,466,494 }; //原始频率表unsigned char code SignTab[7]? = { 0,2,4,5,7,9,11 }; ????????? //1~7在频率表中的位置unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 };??????unsigned char Sound_Temp_TH0,Sound_Temp_TL0;?//音符定时器初值暂存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1;?//音长定时器初值暂存//**************************************************************************void InitialSound(void){?BeepIO = 1;?Sound
文档评论(0)