




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 质检技术在农村发展中的应用考核试卷
- 装饰材料企业生产流程优化考核试卷
- 自行车出行数据监测考核试卷
- 连续搬运设备故障预测技术研究现状与发展趋势预测考核试卷
- 口腔科用牙科D打印设备考核试卷
- 葡萄栽培的农业环境保护与绿色种植考核试卷
- 稀有金属加工中的企业文化与核心竞争力培育考核试卷
- 跨界艺术合作的模式与案例分析考核试卷
- 通信设备行业绿色生产与环保认证考核试卷
- 填充手术疤痕护理常规
- 形势与政策(2025春)超星尔雅学习通答案满分章节测试
- ISO28000:2022供应链安全管理体系
- 深圳市失业人员停止领取失业保险待遇申请表样表
- 集团公司专家库建设管理手册
- BIM、智慧工地建设管理方案及措施
- 心理契约的概念、维度及特点
- JIS G4305-2021 冷轧不锈钢板材、薄板材和带材
- 年产1亿支盐酸普鲁卡因注射液实用工艺设计
- EMC_CX系列存储
- (完整版)围堰筑岛围堰施工专项方案
- 扣件式钢管脚手架检查评分表
评论
0/150
提交评论