王啸东 涂林军 王春燕 李作奇
【摘 要】电子琴是音乐与电子科技结合的产物,在现代音乐中扮演着重要的角色,单片机具有强大的控制功能和灵活的编程能力,在人们的生产、生活中得到了普遍应用。本文主要介绍了以AT89C51单片机为核心,设计智能电子琴的方法,主要包括原理图设计、软件系统设计等。
【关键词】单片机;音乐;创新;电子琴
1.引言
1907年,美国人卡西尔发明第一台用电磁线圈产生音阶的电子琴,电子琴在国外的发展已有上百年的历史。1978年,中國引进了第一台作为研究用的电子琴,到了20世纪80年代中期,电子琴已经被中国的专业音乐者和音乐爱好者所普遍认识。随后,中国的电子琴蓬勃发展起来了,并取得了令国内外音乐界、电子琴界所瞩目的成就。本文将介绍基于单片机的智能电子琴的设计与制作方法。
2.智能电子琴的系统设计要求
智能电子琴系统分为两个部分,一个是音乐播放,另一个就是电子琴弹奏。关于声音的处理,使用汇编语言编程实现,利用定时器来控制频率,而每个音符的符号,存放在定义的表中。具体要求如下:要求达到电子琴的基本功能,可以用弹奏出简单的乐曲。用键盘作出电子琴的按键,每键代表一个音符。各音符按一定的顺序排列,必须符合电子琴的按键排列顺序。固定音乐播放有按键控制:“播放”、“弹奏/停止”,并且在播放音乐时,相应按键的指示灯亮,便于模仿学习。弹奏电子琴时能播放出准确的声音,不弹奏时可以播放内置音乐。
3.智能电子琴的系统设计
3.1 系统的组成
单片机因体积小、功能强、价格低廉而得到广泛应用。基于单片机设计的智能琴系统组成有:AT89C51、扩展矩阵键盘、发光二极管等。
从功能方面分,智能电子琴系统分为两个部分,一个是音乐播放部分,另一个就是电子琴弹奏部分。
音乐播放部分:电子琴利用AT89C51的两个定时器(如T0,T1)控制,在P3.5脚上输出方波周期信号,产生音乐,通过矩阵键盘按键产生不同的音符,弹奏人员可以随心所欲的弹奏自己所喜爱的乐曲,当不想弹奏时通过按放歌键可以演奏事先存放在单片机中的动听的曲子。当歌曲演奏完时,通过按复位键便可回到初始状态,这样就做出了一台智能电子琴。
由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号。乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。
电子琴弹奏部分:把每个按键所对应的值经过处理后发给单片机,再在单片机内把数字当作指针指向所对应的音符。
3.2 硬件电路设计
智能电子琴采用AT89C51单片机作为核心控制元件(如图1所示),键盘按键作为输入端,通过键盘,可发出DO、RE、MI等音符的高中低音。系统设有一个功能选择键,一个音乐选择键和一个蜂鸣器。通过按下功能选择键,可以实现弹奏功能和乐曲播放功能的切换。在弹奏功能下,可以通过不同的按键来弹奏不同的音调;在音乐播放功能下,可以通过音乐选择按键来选择不同的乐曲进行播放,在播放乐曲时,相应按键的指示灯亮。
图1 智能电子琴系统图
图2 程序流程图
3.3 软件系统设计
在智能电子琴开始工作时,系统默认电子琴处于弹奏状态,歌曲选择功能键的目的是赋予键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能通过弹奏/停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过键盘来选择和切换曲目。软件系统控制程序编程思路是:根据乐谱及定时常数、延时常数数值表,利用定时器T0,工作模式采用方式1(16位定时器),利用定时器的定时功能,将数值表制成数据表格,其中音调对应的定时常数制成表1(TABLE1),乐曲中音符和节拍对应的数值制成表2(TABLE)。在程序中,采用查表方式,将乐谱对应的定时常数读入计数器中,同时利用延时程序,控制乐谱的节拍,使喇叭发出音乐声。
智能电子琴程序处理流程图(如图2所示),系统初始化后,进行键盘扫描,确定有无键盘按下。如没有键盘按下,则继续扫描,有键盘按下,识别当前按键,选择音乐播放,或者选择电子琴弹奏。
部分程序如下:
4.结束语
基于单片机的智能电子琴电路简洁,运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,操作方便,性价比较高等,具有一定的实用和参考价值。本设计还可以扩展其他功能,比如记忆功能,可以存储弹奏者所弹奏的音乐且保存。
参考文献:
[1]万隆.单片机原理与实例应用[M].北京:清华大学出版社,2011,1.
[2]邹显圣.单片机原理与应用项目式教程[M].北京:机械工业出版社,2010,5.
[3]何立民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,1999,9.
[4]黄建新.单片机原理、接口技术及应用[M].北京:化学工业出版社,2009,8.
[5]边春元.C51单片机典型模块设计与应用[M].北京:机械工业出版社,2008,4.
[6]王霖,钱可元,罗毅.新型LED 航标灯光学系统[J].光电工程,2007.
基金项目:江苏省高等学校大学生实践创新训练计划项目(项目编号:201313106003Y)。