您现在的位置: 通信界 >> 通信终端 >> 技术正文  
 
基于Proteus的单片机演奏音乐的实现[图]
[ 通信界 / 佚名 / www.cntxj.net / 2012/7/5 21:32:04 ]
 

摘要:介绍了基于Proteus 的单片机演奏系统的基本原理、硬件电路及软件设计。 在编辑乐曲的过程中,每一音符对应着确定的频率,将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。 实验结果表明,该方案电路简单,切实可行且效果不错。

当前的很多用单片机实现音乐演奏的系统都是利用开发板结合仿真器实现的,这种方法不是很复杂,实现也较方便,但是调试不是很方便,且成本也较高。 本文提出的一种基于Proteus 的单片机演奏音乐的方法,非常简单实用,且该方法基于软件来实现的,所以成本非常低,调试方便,效果也很不错,适合于爱好音乐的单片机学习者。 单片机系统的设计分两大部分:硬件设计部分和软件设计部分。

1 硬件设计

硬件部分比较简单,如果在开发板上做实验可仿下面图1 电路连接。

AT89C51 单片机的P2.5 口控制一个8550 的三极管,三极管控制电磁蜂鸣器的电源通断。

如果用Proteus 软件来仿真的话,电路更加简单,见图2。

图2 在Proteus 环境下用单片机控制蜂鸣器发声的原理图。

需要的关键元件:单片机和蜂鸣器。

为了便于软件编程,先要了解单片机唱歌的基本原理。

什么是声音呢?声音是空气的振荡,不同的振荡频率我们就可以听到不同声调的声音。 音的频谱范围约在几十到几千赫兹。

其次,如何让蜂鸣器发声?蜂鸣器有很多种类,但大致分为两类:有源式(直流电就发声,但频率单一);无源式(根据输入方波频率而发出不同的声音)。 这里选择无源式蜂鸣器。

单片机唱歌的基本原理:利用程序来控制单处机某个口线出一定频率的方波到蜂鸣器,蜂鸣器就可以发出一定音调的声音,若再利用不同的延时程序改变输出频率,就可以改变音调,进而就可让单片机发出"1"、"2","3","4","5","6","7"的音乐。

2 软件设计

通过软件延时或者定时器延时来的方式以不同频率改变口线的的高低电平状态来实现的。 如果只是让蜂鸣器发声这已经够了。 但是我们要的是唱歌,所以还有一些工作需要作。

2.1 音调

输出不同频率的方波,以实现1、2、3、4 等的不同音调;比如,发出200HZ 的音频,其周期为1/200s,即5ms. 这样,当 P2.5 的高电平或低电平的持续时间为2.5ms 时,就能发出200HZ 的音调。 我们可以写一个延时子程序,用R3 来提供参数,R3=1 时,延时为20us,那么R3 取2500/20=125(7DH)时,就可以发出200Hz 的音调,提供不同的R3 常数,可以得到不同的音调变化。

利用通用发声程序可以编写乐曲演奏程序,乐曲是按照一定的高低,长短和强弱的关系组成的音调,在一首乐曲中,每音符的音高和音长与频率和节拍有关(如图3 所示)。

图3 音符的音高和音长与频率的关系

图3 画出了两个音阶(一个音阶是8 个音符)的钢琴键和每个键的音符名及其频率(HZ),低音阶以低C(130.8Hz)到中C(261.7Hz)高音阶以中C 到高C(523.3Hz)黑键比它旁边的白键高半个音或低半个音。 组成乐曲的每个音符的频率和持续时间是乐曲程序发声所需要的两个重要数据。 频率可以从图中得到,音符的持续时间可根据乐曲速度及每个音符的节拍数来确定,是可以从乐谱中得到的。

2.2 节拍

控制一个音符输出的时间,比如1 拍、1/4 拍。 在4/4(四四拍)中,四分音符为一拍,每小节4 拍,全音符持续4 拍,二分音符持续2 拍,四分音符持续1 拍,八分音符持续半拍。 而全音符需要1s 的时间,则二分音符持续时间为0.5s(50×10ms),四分音符的持续时间为0.25s(25×10ms),八分音符持续时间为0.125s(12.5×10ms)。

知道了音调与频率和时间的关系,就可以按照乐曲的曲谱将每个音符的频率和持续时间定义成两个数据表,然后编写程序依次取出表中的时间值和频率值。

仅上所叙还不够,要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。 例如,一首曲子的节奏为每分种94 拍,那么一拍就为60/94=0.64s.

音乐的节拍我们可用定时器来控制,简单的说,一个一拍的音符唱0.64s,我们就设置一个定时器定时0.64s,时间一到就换下一个音符。 但是,由于单片机的T0,在12MHz 晶振下最大定时时间只能为65ms,因此不可能直接用改变T0 的时间初值来实现不同节拍。 如何定时一个更大的时间,我们可以用T0 来产生10ms 的时间基准,然后设置 一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。

例如对1/4 拍音符,定时时间为0.16s,相应的时间常数(中段计数器)为16(即10H);对3 拍音符,定时时间为1.92s,相应时间长数为192(即C0H)。

2.3 电路实现

因为一首曲子不止一个音符,我们不可能对每一个音符的音阶都去"手工"的提供时间常数,为了实现的简化,我们编制一个将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成的表格,在程序里用查表指令依次查出每一个音符的频率和对应节拍时间,产生音符并控制节奏,就可以实现演奏效果。

此外,结束符和体止符可以分别用代码00H 和FFH 来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。

为了产生手弹的节奏感,在某些音符(例两个相同音符)音插入一个时间单位的频率略有不同的音符。

程序框图如下图4. 本程序演奏的是民歌"八月桂花遍地开",C 调,节奏为94 拍/min。

用Keil 对程序进行编译,见图5,具体方法可文献[5],编译无误后生成。hex 文件,然后双击Proteus环境下的原理图中的AT89C51,找到这个。 hex 文件,然后点按钮Play,这时单片机控制的蜂鸣器就可以开始播放音乐了。

图4 程序流程图

图5 在Keil 环境下对程序进行编译

3 结论

以上介绍的方法已通过测试,运行良好。 对初学单片机者有一定的启示作用。 读者也可以自行找出一首歌,将乐曲翻译成码表输入单片机,而程序不变。 本实验方法简便,即使不懂音乐的人,也可方便地将一首陌生的曲子翻译成代码。

 

作者:佚名 合作媒体:不详 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管