电子琴设计6.doc
上传人:qw****27 上传时间:2024-09-11 格式:DOC 页数:31 大小:1.8MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

电子琴设计6.doc

电子琴设计6.doc

预览

免费试读已结束,剩余 21 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

电子琴论文电子琴设计任务设计制作一个电子琴。设计要求基本要求:可以通过按键控制发音,能够发出1、2、3、4、5、6、7、i等八个音符;可以播放已存储的音乐;能够自动演奏多首(两首以上)乐曲,且演奏方式可选择(如重复播放或者顺序播放等)。扩展要求:可以发出八个以上的音符;进行音调、音量的选择;可以对编奏乐曲进行录音,在按下放音键时能演奏出来;摘要电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用STC89C52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器模块组成核心主控制模块,流水灯、数码管模块组成扩展控制模块。在主控模块上设有16个按键和扬声器,在扩展模块中设有流水灯和3位数码显示管。主控模块利用了STC89C52单片机的P3I/0输出口和P2^3I/0输出口,以实现键盘的识别和蜂鸣器的发声功能。扩展模块利用了STC89C52单片机的P1和P2I/O输出口,以实现流水灯和计时功能。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。总体方案电子琴原理声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线不断的输出“高”“低”电平,则在该口线上就能产生一定频率的方波,将该方波接上喇叭就能发出一定频率的声音,若再利用程序控制“高”“低”电平的持续时间,就能改变输出波形的频率,从而改变音调。高中低音符与单片机计数T0相关的计数值如下表所示音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628#4FA#74064860#1DO#27763731中5SO78464898低2RE29463835#5SO#83164934#2RE#31163928中6LA88064968低3M33064021#693264994低4FA34964103中7SI98865030#4FA#37064185高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#646664463高3M131865157低7SI49464524高4FA139765178中1DO52364580#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#166165235#2RE#62264732高6LA176065252中3M65964777#6186565268中4FA69864820高7SI196765283乐曲中,每一音符对应着确定的频率,表1给出C调时各音符频率。如果单片机某个口线输出“高”“低”电平的频率和某个音符的频率一样,那么将此口线接上喇叭就可以发出此音符的声音。本系统就是根据此原理设计,对于AT89C2051单片机来说要产生一定频率的方波大致是先将某口线输出高电平然后延时一段时间再输出低电平,如此循环的输出就会产生一定频率的方波,通过改变延时的时间就可以改变输出方波的频率,而单片机延时主要有两种方法:第一种方法是使用循环语句来实现延时,让单片机循环的执行某条指令然后根据单片机每条指令运行的时间以及循环的次数来计算延时时间。如下所示:在上面的延时程序中可以看出:DJNZ指令执行时间为2个机器周期,MOV指令执行时间为1个机器周期,对于单片机的晶振频率为12MHz时机器周期为1μs。因此可以根据这些指令的执行时间和每条指令的循环次.数计算出以上的延时程序延时时间大约为50ms。但这种方法的计算的延时时间不是很准确并且为达到一定的延时时间先必须进行很复杂的运算。所以在延时时间要求不严格的时候才采用这种方法。但对于电子琴电HYPERLINK"http://cisco.chinaitlab.com/List_6.html"\t"_blank"路由于每个音符的频率值要求比较严格,变化范围不能太大,因此产生方波的频率也要求比较严格,不能采用延时程序来产生此方波。第二种方法是使用单片机的定时/计数器延时。AT89C2051单片机内部有两个16位的定时/计数器T0和T1,单片机的定时/计数器实际上是个计数装置它既可以对单片机的内部晶振驱动时钟计数也可以对外部输入的脉冲计数,对内部晶振计数时称为定时器,对外部时钟计数时称为计数器。当对单片机的内部晶振驱动时钟计数时,每个机器周期定时/计数器的计数值就加1,当计数值达到