(完整版)基于单片机的微型电子琴设计毕业设计

  • 格式:doc
  • 大小:549.00 KB
  • 文档页数:25

以下文档格式全部为word格式,下载后您可以任意修改编辑。

本科生毕业论文(设计)系(院)物理与电子信息科学系专业电子信息工程论文题目基于单片机的微型电子琴设计学生姓名指导教师班级07级电信2班学号完成日期:2010 年11 月基于单片机的微型电子琴设计XXX物理与电子信息工程学院电子信息工程[摘要]电子琴的设计以AT89C52单片机为核心控制元件,与键盘、扬声器等模块组成核心主控制模块,通过制作硬件电路和软件的设计编写,然后进行软硬件的调试运行,最终达到设计电路的乐器演奏、点歌、存储及显示功能。

设计中应用中断系统和定时计数原理控制演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现。

特点是设计思路简单、清晰,成本低。

[关键字] AT89C52单片机电子琴演奏1 引言电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器[1]。

电子琴是高科技在音乐领域的一个代表,它是古典文化与现代文明的一个浓缩体。

它不但可以帮助我们的音乐教师进行传统音乐文化的教育教学工作,而且由于它又具备现代音乐,特别是电子音乐、电脑音乐的基本结构、特征,因而使我们的教师在进行现代音乐、电子音乐、电脑音乐的教学时,更直接、更简便。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。

单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。

并且可以进行一定的功能扩展。

单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。

它的应用必定导致传统的控制技术从根本上发生变革。

因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

本文主要对使用单片机设计微型电子琴进行了分析,并介绍了基于单片机电子琴统硬件[2]组成。

利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。

并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。

2 设计要求本设计的主要内容是用AT89C52单片机[3]为核心控制元件,设计一个微型电子琴。

以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,实现以下功能:(1) 设计一个(4×4)的键盘[4],并将16个键设计成两个八度的音阶对应的16个琴键,可以进行弹奏表演;(2) 演奏的同时数码管会以数字显示当前按键对应的音符;(3) 有音乐存储功能,能自动演奏歌曲。

演奏时可选择键盘输入乐曲,自己存入的乐曲或随机存储的乐曲。

按播放键能播放5首歌曲,第一首歌曲播放结束,再按播放键播放下一首歌曲。

(4) 发光二极管会指示当前按键是否按下。

3 方案论证3.1 控制模块选择方案方案一:用可控硅制作电子琴。

将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。

将单向可控硅SCR和电阻、电容组成驰张振荡器电路。

但该设计方案制作成本高且复杂。

方案二:采用AT89C51单片机进行控制,由于AT89C51不具备ISP 功能,因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。

方案三:采用AT89C52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高[5]。

鉴于上述对比与分析,本设计采用方案三3.2 按键选择方案传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。

该设计有16个按钮矩阵,设计成16个音,可以实现音阶在中音和高音之间的变换。

比传统音阶范围大,弹奏效果好。

在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘,它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。

本设计选择4*4矩阵键盘。

4 设计原理一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率[6],这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。

若要产生音频脉冲,只要算出某一音频的周期(1频率),再将此周期除以2,即为半周期的时间。

利用定时器计时半周期时间,每当计时终止后就将输出P3.0反相,然后重复计时再反相。

就可在P3.0脚上得到此频率的脉冲。

利用AT89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶[7],例如,频率为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=216=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了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系[4]。

在本实验中,单片机工作于12MHZ时钟频率,使用其定时计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,根据以上公式,C调的各音符频率与计数值T的对照如下[8]表4-1 音符频率对照表为音符建立一个数据表,单片机通过查表的方式来获得相应的数据。

低音0-19之间,中音在20-39之间,高音在40-59之间TABLE1: DWDWDWDW音乐的音拍,一个节拍为单位(C调)(如表4-2所示)表4-2 曲调值表对于不同的曲调我们也可以用单片机的另外一个定时计数器来完成。

琴键处理程序,根据检测得到按键值,查询音律表,给计时器赋值,发出相应频率的声音。

对音调的控制:根据不同的按键,对定时器T1送入不同的初值,调节T1的溢出时间,这样就可以输出不同音调频率的方波。

不同音调下各个音阶的定时器。

在这个程序中用到了两个定时计数器来完成的。

其中T0用来产生音符频率,T1用来产生音拍[9]。

5 微型电子琴的系统总体原理框图如图5-1所示,设计出微型电子琴的系统总体原理框图。

图5-1微型电子琴系统原理框图6系统主要硬件电路设计6.1 微型电子琴的Proteus总体设计电路图电子琴的proteus总体仿真图见图6-1。

按下播放键,发光二极管亮一下,系统自动播放预存在内存中的曲子,再按一次播放下一首歌曲,按下复位键,系统复位,停止播放。

按下矩阵键盘中的任意键,扬声器发出相应的音符。

图6-1 微型电子琴的Proteus总体设计电路图6.2单片机主机系统电路6.2.1 AT89C52单片机简介AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机[10],片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash 存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。

AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列[11]、硬件组成、工作特点和指令系统等方面兼容。

AT89C52引脚图见图6-2.图6-2AT89C52引脚图P3口也可作为AT89C52的一些特殊功能口,如下表所示:P3口同时为闪烁编程和编程校验接收一些控制信号。

其主要功能特性:· 兼容MCS51指令系统· 8k可反复擦写(>1000次)Flash ROM· 32个双向IO口· 256x8bit内部RAM· 3个16位可编程定时计数器中断· 时钟频率0-24MHz· 2个串行中断· 可编程UART串行通道· 2个外部中断源· 共6个中断源· 2个读写中断口线· 3级加密位· 低功耗空闲和掉电模式· 软件设置睡眠和唤醒功能6.2.2时钟频率单片机必须在时钟的驱动下工作。

在单片机内部有一个时钟振荡电路[12],只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。

外部振荡源电路一般选用石英晶体振荡器,此电路在加电大约延迟10mS后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。

电路中两个电容C1,C2,作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。

C1,C2的典型值为30PF。

单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。

起大小是时钟信号频率的倒数,常用fosc 表示。

如时钟频率为12MHz,即fosc=12MHz,则时钟周期为112µs。

6.2.3 晶振电路AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。

本设计中采用内部时钟方式。

单片机内部有一个反相放大器XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。