




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除简易的单片机音乐控制作者:侯静针对以前转贴的那篇单片机音乐控制,其算法对初学者不是很容易弄懂此,我根据网上提供的资料.用c语言写了一个八月桂花香的音乐控制.音调是由不同的频率产生的,而每一个音调都是由一个音符和一个节拍组成,音符决定该音调的高低,节拍则决定了该音调是多少拍。因此,一个音调是由两个字节组成的。根据音符字节产生该大小次数的延时,声音输出口取反,就可以得到该音调的高低音。根据设置单位节拍的延时大小,可以控制音乐演唱速度。因此算法很简单:定义单片机的一个I/O端脚为声音输出口,在规定的节拍内,根据音符字节的大小产生延时,将声音输出
2、口不断的置高置低(即取反),就可以得到该音调。只要选取合适的单位节拍延时,就可以输出动听的音乐。2 / 7算法流程图如下:资料内容仅供您学习参考,如有不当之处,请联系改正或者删除include<reg51.h>#include',SoundPlayoh"uchardatacount=0:voidinit_com()TM0D=0x01;TH0=0xff;TLO=Oxff;EA=1;ETO=1;voidtimerO(void)interruptlusing3counter=counter+l;THO=0xd8:TL0=0xef;voiddelay(ucharn)uch
3、ari;while(n)for(i=0:i(125;i+);voidsound_delay(ucharn)2 / 7资料内容仅供您学习参考,如有不当之处,请联系改正或者删除uchari;while(n)(for(i=0;i<2;i+);)voidmain()(uinti;ucharsound_signal;ucharsound_pace;init_com()/arrayi=0x00代表歌曲演唱完毕/arrayi=0xff代表是休止符while(1)i=0;while(arrayi!=0x00)如果是休止符,延时100ms,并终止本次循环,进入下一个循环if(arrayi=0xff)TRO
4、=0;i+;delay(100);continue;从表中取得音符大小sound_signal=arrayi;i=i+l:从表中取得节拍大小sound_pace=arrayi;TRO=1;当节拍数未达到时候,继续循环,产生该音调的声音while(counter!=sound_pace)8 / 7sound二sound;(sound_signal);i+;sound_delaycounte尸0;节拍计数器置0,进入下一个音调delay(10);歌曲演唱完毕后,延时一段时间)/*soundplay。h*#ifndef_SOUNDPLAY_H_REVISION_FIRST_#define_SOUND
5、PLAY_H_REVISION_FIRST_ttdefineucharunsignedchar#defineuintunsignedintsbitsound=Pl2;uintcounter=O;ucharcodearray口二0x18,0x30,OxlC,0x10,0x20,0x40,OxlC,0x10,0x18,0x10,0x20,0x10,OxlC,0x10,0x18,0x40,OxlC,0x20,0x20,0x20,OxlC,0x20,0x18,0x20,0x20,0x80,OxFF,0x20,0x30,OxlC,0x10,0x18,0x20,0x15,0x20,OxlC,0x20,0x
6、20,0x20,0x26,0x20, 0x26,0x20, 0x20,OxlC, 0x10,0x20,0x20, 0x20,OxlC, 0x10,0x20,0x26, 0x20,0x20, 0x26, 0x20,0x30, 0x20,0x15,0x20,0x40,0x40,0x20,0x20,0x2B,0x20,0x30,0x80,OxFF,0x20,0x20,0x18,0x10,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x40,0x20,0x20,OxlC,0x10,0x18,0x10,0x26,0x20,0x2B,0x20,0x30,0x20,0x2
7、B,0x40,0x20,0x30,0x18,0x20,0x15,0x20,OxlC,0x20,0x20,0x20,0x26,0x40,0x20,0x2B,0x20,0x20,0x20,0x30,0x80,0x20,0x30,OxlC,0x10,0x20,0x10,OxlC,0x10,0x20,0x2B,0x20,0x2B,0x40,0x20,OxlF,0x05,0x20,0x10,OxlC,0x10,0x20,0x26,0x20,0x2B,0x20,0x30,0x20,0x2B,0x20,0x30,OxlC,0x10,0x18,0x20,0x15,0x20,OxlC,0x20,0x20,0x20,0x26,0x40,0x20,0x20,0x2B,0x20,0x26,0x20,0x20,0x20,0x30,0x30,OxlC, 0x2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重难点解析人教版八年级上册物理《声现象》专项训练试题(含详解)
- 考点解析-人教版八年级上册物理声现象《声音的特性》单元测试试卷(解析版含答案)
- 经融经济考试题及答案
- 达标测试人教版八年级上册物理声现象《声音的产生与传播》同步练习试卷(含答案详解版)
- 滴灌带厂相关培训知识课件
- 蜘蛛人上岗前考试题及答案解析
- 建筑施工企业安全管理人员考核题库b类及答案解析
- 期货从业考试专场考及答案解析
- 贷款担保书集合15篇
- 销售客服工作总结集锦15篇
- 2026届新高考语文冲刺复习2025年高考全国2卷作文讲解
- 肝病科医师晋升副主任医师职称病例分析专题报告(服氟康唑致严重肝损伤诊疗分析)
- 吉林省长春市2025年中考英语真题附真题答案
- 2025年放射学影像学诊断综合考试卷答案及解析
- 2025年宿州首创水务有限责任公司招聘15人笔试模拟试题及答案解析
- 2025浙江湖州市产业投资发展集团下属市飞英融资租赁有限公司招聘笔试历年参考题库附带答案详解
- 酒驾复议申请书
- 软件项目开发团队管理方案
- 教师招聘培训课件
- 招江西省交通投资集团有限责任公司招聘笔试真题2024
- dj打碟培训课件
评论
0/150
提交评论