以下文档格式全部为word格式,下载后您可以任意修改编辑。
本科生毕业论文(设计)系(院)
物理与电子信息科学系 专业 电子信息工程
论文题目基于单片机的微型电子琴设计
学生姓名
指导教师
班 级 07级电信2班
学 号
完成日期:2010 年 11 月
基于单片机的微型电子琴设计
XXX
物理与电子信息工程学院 电子信息工程
[摘要]电子琴的设计以AT89C52单片机为核心控制元件,与键盘、扬声器等模块组成核心主控
制模块,通过制作硬件电路和软件的设计编写,然后进行软硬件的调试运行,最终达到设计电路的乐器演奏、点歌、存储及显示功能。设计中应用中断系统和定时计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现。特点是设计思路简单、清晰,成本低。
[关键字] AT89C52单片机 电子琴 演奏
1 引言
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。电子琴是高科技在音乐领域的一个代表,它是古典文化与现代文明的一个浓缩体。它不但可以帮助我们的音乐教师进行传统音乐文化的教育教学工作,而且由于它又具备现代音乐,特别是电子音乐、电脑音乐的基本结构、特征,因而使我们的教师在进行现代音乐、电子音乐、电脑音乐的教学时,更直接、更简便。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
本文主要对使用单片机设计微型电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。
[2]
[1]
2 设计要求
本设计的主要内容是用AT89C52单片机为核心控制元件,设计一个微型电子
[3]
琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,实现以下功能:
(1) 设计一个(4×4)的键盘,并将16个键设计成两个八度的音阶对应的16个琴键,可以进行弹奏表演;
(2) 演奏的同时数码管会以数字显示当前按键对应的音符;
(3) 有音乐存储功能,能自动演奏歌曲。演奏时可选择键盘输入乐曲,自己存入的乐曲或随机存储的乐曲。按播放键能播放5首歌曲,第一首歌曲播放结束,再按播放键播放下一首歌曲。
(4) 发光二极管会指示当前按键是否按下。
[4]
3 方案论证
3.1 控制模块选择方案
方案一:用可控硅制作电子琴。将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。将单向可控硅SCR和电阻、电容组成驰张振荡器电路。但该设计方案制作成本高且复杂。
方案二: 采用AT89C51单片机进行控制,由于AT89C51不具备ISP功能,因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。
方案三:采用AT89C52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。 鉴于上述对比与分析,本设计采用方案三 3.2 按键选择方案
传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。该设计有16个按钮矩阵,设计成16个音,可以实现音阶在中音和高音之间的变换。比传统音阶范围大,弹奏效果好。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘,它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。本设计选
[5]
择4*4矩阵键盘。
4 设计原理
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时计数器T0来产生这 样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。若要产生音频脉冲,只要算出某一音频的周期(1频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将输出P3.0反相,然后重复计时再反相。就可在P3.0脚上得到此频率的脉冲。
利用AT89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1523=1912μs,因此只要令计数器计时956μs1μs=956,每计数956次时将IO反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式是:
N=fi2fr
式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。 其计数初值T的求法如下:
T=K-N=K-fi2fr
式中K是单片机的16位定时器最大计数值,K=2 =65536;fi是机器频率,fi=1MHz,例如低音DO(262Hz)、低音RE(294Hz)、中音DO(523Hz)、中音RE(587Hz)、高音DO(1046Hz)、高音RE(1175Hz)的计数值如下: T=65536-N=65536-fi2fr=65536-fr=65536-500000fr
低音DO的T=65536-=63628 低音RE的T=65536-=63835 中音DO的T=65536-=64580 中音RE的T=65536-=64684 高音DO的T=65536-=65058 高音RE的T=65536-=65110
16[7]
[6]
了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。
在本实验中,单片机工作于12MHZ时钟频率,使用其定时计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,根据以上公式,C调的各音符频率与计数值T的对照如下
表4-1 音符频率对照表
音符 低1 DO #1 DO# 低2 RE #2 RE# 低 3 M 低 4 FA # 4 FA# 低 5 SO # 5 SO# 低 6 LA # 6 低 7 SI 中 1 DO # 1 DO# 中 2 RE # 2 RE# 中 3 M 中 4 FA 频率(HZ) 262 277 294 311 330 349 370 392 415 440 466 494 523 554 587 622 659 698 简谱码(T值) 音符 63628 63731 63835 63928 64021 64103 64185 64260 64331 64400 64463 64524 64580 64633 64684 64732 64777 64820 # 4 FA# 中 5 SO # 5 SO# 中 6 LA # 6 中 7 SI 高 1 DO # 1 DO# 高 2 RE # 2 RE# 高 3 M 高 4 FA # 4 FA# 高 5 SO # 5 SO# 高 6 LA # 6 高 7 SI 频率(HZ) 740 784 831 880 932 988 1046 1109 1175 1245 1318 1397 1480 1568 1661 1760 1865 1967 简谱码(T值) 64860 64898 64934 64968 64994 65030 65058 65085 65110 65134 65157 65178 65198 65217 65235 65252 65268 65283 [8]
[4]