基于单片机的电子琴设计报告-含有经典的程序案例.doc

基于单片机的电子琴设计报告-含有经典的程序案例.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设 计 报 告 课程: 微机接口技术与数字控制 设计名称:基于单片机的电子琴设计 小组成员: 学号: 专业: 机械电子工程 日期: 指导老师: 成绩: 设计任务 以生活中的电子琴为设计对象,实现音乐的按键控制功用。尽量能弹奏出和谐而优美的旋律。 设计目的 通过单片机电子琴的设计,更深层次的了解单片机技术。熟悉单片机的控制功用和系统原理应用。对系统设计与实用编程有进一步强化。体验音乐的原理与魅力。 设计要求 设计采用C语言编程控制,巧妙的运用单片机的定时器与中断功能,实现音乐的音频、节拍的实时控制。具体要求如下: 构造出微单片机的最小控制系统,能实现基本框架运作; 学习音乐音符的发音原理与节拍原理,了解音乐的神奇效果,熟悉常用歌曲的歌谱,并为下面的相关实践打好理论基础; 采用键盘设计理念,建立键符——音符的对应关系,巧妙运用音乐的频率特性,实现按键既得特定音符的功用; 并增加按钮控制系统运作,数码管实现实时音符(按键)符显示的功能,使按键弹奏的效果更加人性化与和谐完美。 设计方案与技术分析 某微机控制系统简介 控制系统的整体设计框架,如图1所示。 功能模式 (弹奏/试音) 功能模式 (弹奏/试音) 选择按钮 音频 4×4 矩阵式 键盘 51单片机 SST89 C52 LED显示 图1 电子琴设计框架图 设计中涉及被控对象模块和人机交互模块的电路设计,以及软件编程部分。这将在后面的论述中逐一介绍。本控制系统的整体设计图,如图2所示。 图2 控制系统整体设计硬件图 上图为整体的电路设计,并利用PROTEUS进行了模拟仿真。实现了预期效果。 设计中,选用两种工作模式:试音与弹奏。通过两个按钮控制选取,并有相应的指示灯指示工作状态。 试音用于测试系统的可行性,选取童年歌曲“两只老虎”中的几句作为检测乐谱;弹奏模式下,通过4×4矩阵式键盘,完成美妙音乐的弹奏。操作者可以按相应的键,弹奏出特定的音乐,实现作曲与奏乐的完美体验。并且本设计中还添加了数码显示功能,用于显示实时的显示按下的键码,同时也与音符有内在的对应关系。 下面主要介绍,为何单片机可以实现美妙音乐的实时再现。 音乐实际上是有固定周期的信号。本设计理念将采用SST89C52的两个定时器(如T0,T1)控制信号的不定周期产生,从而实现音频的完美变化。内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。 在P3.7脚上输出方波周期信号,产生乐音;通过矩阵键盘按键产生不同的音符,由此操作人员可以随心所欲的弹奏自己所喜爱的乐曲。这样就做出了一台微型电子琴。 具体的音频控制原理如下: 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。 若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P3.7反相,然后重复计时再反相。就可在P3.7引脚上得到此频率的脉冲。 利用单片机的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式是: N=fi÷2÷fr 式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。 其计数初值T的求法如下: T=65536-N=65536-fi÷2÷fr 例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。 T=65536-N=65536-fi÷2÷fr=65536-1000000÷2

文档评论(0)

189****4123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档