专业方向课程设计报告-基于单片机的电子琴设计_第1页
专业方向课程设计报告-基于单片机的电子琴设计_第2页
专业方向课程设计报告-基于单片机的电子琴设计_第3页
专业方向课程设计报告-基于单片机的电子琴设计_第4页
专业方向课程设计报告-基于单片机的电子琴设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专业方向课程设计报告基于单片机的电子琴设计班级:组员:组号:基于单片机的电子琴设计1、设计要求4*4按键组成16个按键矩阵,设计成16个音。然后再用一个音频放大模块来使音乐播出的声音变大。用户可通过这16个键的随意组合来随意弹奏想要表达的音乐。且按键松开延时一段时间停止,中间再按别的键则发另一音调的声音。2、方案比较与确定方案一:使用单片机内部定时器,通过编程实现发出不同频率方波,产生音阶。方案二:使用8253作为外部定时器,通过编程实现产生所需频率的方波。

通过对方案一和方案二的比较可以知道,方案一是通过使用单片机内部定时器,以编程实现方波输出,优点在于外部电路简单,程序结构简单,缺点在于消耗单片机资源过多,不利于优化升级;方案二是利用8253来产生方波,相对来说这种方案外部电路较为复杂,程序结构也更为复杂,优点在于占用单片机资源少,输出稳定,利于扩展;为简化结构我们选择方案。2.1方案一设计2.1.1方案:利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。按下键盘矩阵中的按键会使扬声器播放器对应的音符。其原理框图如下:图1电路方框图2.1.2.1硬件设计规划:根据系统设计要求,系统设计采用自顶向下的设计方法,它由复位模块、音调发生模块和矩阵键盘模块三部分组成。电子琴系统原理框图如下:AT89C52AT89C524*4矩阵键盘发音电路晶振电路复位电路图2电子琴系统原理框图AT89C52芯片介绍

其中AT89C52为8位低功耗单片机,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52

相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC

内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19

脚)和XTAL2(18

脚)为振荡器输入输出端口,外接12MHz

晶振。RST(9

脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40

脚)和GND(20

脚)为供电端口,分别接+5V电源的正负端。P0~P3

为可编程通用I/O

脚,其功能用途由软件定义,在本设计中,P0

端口(32~39

脚)定义为双向8位三态I/O接口,它既可以作为通用I/O接口,又可作为外部扩展时的数据总线及低8位地址总线的分时复用口;P1端口(1~8脚)定义为准双向I/O接口,内部具有上拉电阻;P2端口(21~28脚)定义为8位准双向I/O接口,内部具有上拉电阻,可直接连接外部I/O设备,同时与地址高8位复用;P3端口(10~17)定义为8位准双向I/O接口,内部具有上拉电阻,它是双功能复用口,每个引脚可驱动4个TTL负载。晶振电路AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。 单片机内部有一个反相放大器XTAL1,XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器,产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。 一般来说单片机内部有一个带反馈的线性反相放大器,外接晶振和电筒就可以组成振荡器,如图所示。加电以后延时一段时间振荡器产生时钟,不受软件控制。图3晶振电路音调发生模块音调发生模块的作用是产生音阶的分频预置值。当7位发声控制输入信号中的某一位为高电平时,则对应某一音节的数值将输出(通过对照图4各音名对应的分频系数值及初始值)该数值即为该音阶的分频初始值,分频预置值控制数控分频模块进行分频,由此可得到每个音阶对应的频率。(1)基准频率的选取各音名所对应的频率可由一频率较高的基准频率进行整数分频得到,所以实际产生各音名频率为近似的整数值。这是由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频系数四舍五入取整,若基准频率过低,则由于分频系数过小,四舍五入取整后的误差较大,若基准频率过高,虽然误码差较小,但分频结构将变大,实际的设计应综合考虑两方面的因素,在尽量减小频率差的前提下取舍合适的基准频率。本次设计选择12MHz作为基准频率。(2)分频系数A、公用二进制的计数容量N及初始值的选取D1、分频系数的选取首先将12MHz的基准频率进行12分频,得到1MHz的基准频率,分频系数A=1MHz/音名频率,此分频系数可由计数器实现。但若不加处理语句,其分频后的信号将不是对称方波。而占空比很小的方波很难使扬声器有效地发出声响。为得到对称方波,可将分频系数A分解为:分频系数A=分频系数n×2。即先进行分频系数n的分频,得到不对称方波,然后再2分频得到对称方波。2、公用二进制的计数容量N的选取n分频可由n进制计数器实现。n进制计数器可用复位法或置位法实现,由于加载初始值d的置位法可有效地减少设计所占用的可编程逻辑器件资源,因此,此次设计采用置位法。低音1的分频数n为最大,其值为1275,应取公用二进制计数器的计数容量N大与“最大分频系数n”,故本次设计的公用二进制计数器应该设计为十一位二进制加法计数器,其计数最大容量为2048,计数的最大值N为2047,可满足本次设计中所有音名对音频系数的要求。3、初始值的选取D初始值D=计数最大值N-分频系数n此次设计中应用的各音名对应的分频系数值及初始值如表所示:音符初始值对应音谱0204701773129122310363411164511975612906713727814101914802101542312162251517281图4各音名对应的分频系数值及初始值按键的实现过程1.4X4行列式键盘识别及显示组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。(1)去抖动每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为5—20mm。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。(2)防串键防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。(3)被按键识别如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。(4)键码产生为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。用AT89C52的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P2.0-P2.3作输入线,以P2.4-P2.7作输出线。如下图所示图5键盘识别模块每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。(1)键盘处理程序的任务确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。利用所给键盘的1—16个键,能够发出16个不同的音调,并且要求按下按键发声,松开延时一段时间停止,中间再按别的键则发另一音调的声音具体过程:当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。、矩阵扫描扬声器发出对应音符模块如下:图5发音模块2.1.3、系统软件设计本系统的软件系统主要由:主程序、中断服务程序、按键子程序、延时子程序几大块组成。图6主程序框图图7中断服务程序框图图8音乐发生程序图2.2、方案二设计2.2.1方案:基于STC89S52单片机,以8253作为外部中断,通过键盘控制,设计一个电子琴。2.2.2原理:单片机作为主控核心,通过对键盘按键键值进行定义,让定时器8253产生16个特定频率的方波,通过由LM386组成外部功放电路输出至扬声器发出16个不音阶。硬件部分主要功能模块包含:键盘控制模块、方波发生模块、声音输出模块。软件部分主要功能模块包含:主程序、8253方波发生子程序、7279初始化子程。其中音名与频率的对应关系如下:音名频率(Hz)音名频率(Hz)音名频率(Hz)低音1261.63中音1523.25高音11046.50低音2293.67中音2587.33高音21174.66低音3329.63中音3659.25高音31381.51低音4349.23中音4698.46高音41396.92低音5391.99中音5783.99高音51567.98低音6440中音6880高音61760低音7439.88中音7987.76高音71975.52图9简谱中的音名与频率的关系

当按下特定的按键后,程序通过读键值子程序得到所按下键的键值,再将所得的键值与键盘1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16十六个键的键值相比较,从而确定所按下的键。当确认按键后再调用8253方波发生子程序,使8253产生相应频率的方波持续输出。其原理框图如下:图10系统原理框图2.2.3程序设计图11主程序流程框图图11方波发生程序框图图12读键值子程序3、原理图及其电路仿真图图13电路原理图图14电路仿真图测试方案与测试结果4.1硬件调试

硬件调试主要是针对单片机部分进行的调试。

在上电之前,先确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况的任务。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。

在确保硬件电路正常且无异常情况(断路或短路)的情况下方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计中,上电调试主要是检测单片机控制部分和音频转换电路硬件调试。键盘单片机控制部分调试:上电后,随机按动键盘可以发现各个按键对应的音正确。

4.2

软件调试

调试主要方法和技巧:通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。作品功能和使用说明功能通过对16键的控制发出音乐,能够弹出自己想要的音乐使用直接按下16个按键来发出音乐6

心得体会通过这次课程设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放对应的音符。但由于仿真系统原因,本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论