毕业设计-基于at89s52单片机的电子琴设计_第1页
毕业设计-基于at89s52单片机的电子琴设计_第2页
毕业设计-基于at89s52单片机的电子琴设计_第3页
毕业设计-基于at89s52单片机的电子琴设计_第4页
毕业设计-基于at89s52单片机的电子琴设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

摘要本设计对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。电子琴音色优美,音域较宽,和声丰富,表现力极其丰富。它可模仿多种音色,还可随意配上类似打击乐音响的节拍伴奏,适合于演奏节奏性较强的现代音乐。它还能够作为独奏乐器出现,具有鲜明的时代特色,深受广大音乐爱好者的喜爱,又是我国广大中小学生学习音乐的重要工具,而且电子琴容易制作,价格便宜,有很好的市场前景。随着科技的不断发展,电子产品也在不断的进步。现在的电子产品越来越接近智能化,性能也精益求精。现阶段,单片机发展日益成熟,且发展迅猛,以单片机为核心部件的电子琴将会比以555定时器为核心部件电子琴的性能更加稳定,而且依靠单片机强大的编程功能更易实现电子琴各音节所对应频率的产生。所以此次设计具有很现实的意义。本次设计的目的主要是复习并运用我们所学的单片机知识,同时通过本次设计能够对电子电路以及作图软件等方面的知识有进一步的认识并掌握;熟悉AT89S52单片机的内部结构和功能,合理利用其功能实现简单设计,能够完成相关软件编程设计工作;掌握一般的简单电子电路的设计方法。本次设计的主要内容是利用单片机编程设计出具有发出标准高中低的DOU,RUAI,MI,FA、SOU,LA,SI,DOU(高音)21个音的功能并能通过9个按键控制的电子琴。它包括数码显示电路、时钟电路、复位电路、发声电路以及键盘接口电路。目录1概述111电子琴功能模式介绍112系统设计的任务与要求12系统总体方案及硬件设计221系统总体方案2211定时/计数器的设计和状态字定义2212音调数据表422总体硬件组成框图4221主要芯片简介4222子系统模块一6223子系统模块二6224子系统模块三6225AT89S52复位模块7226AT89S52晶振模块73软件设计831系统软件设计8311内置歌曲输出8312音阶键识别932系统总流程图104PROTEUS软件仿真1141程序仿真1142PROTEUS仿真115课程设计体会15参考文献16附1源程序代码17附2系统原理图221概述11电子琴功能模式介绍本次设计提出了用AT89S52单片机为核心控制元件,设计一个简易的电子琴。本方案以AT89S52单片机作为主控核心,与键盘、扬声器、显示等模块组成核心主控制模块在主控模块上设有7个按键和扬声器。在弹奏模式方面,可根据使用者的操作随意弹奏想要表达的音乐。而在播放音乐方面,一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,再加上一定的延时作为节拍,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号。查找想要播放歌曲的歌谱,翻译出对应的频率及延时节拍,存储到单片机存储单元里,再通过所编程序即可控制歌曲播放。12系统设计的任务与要求实现电子琴发声控制系统;要求电路实现如下功能利用蜂鸣器作为发声部件,1个数码管作为显示部件,设置8个按键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。并在存储一首歌曲的内容,可以实现自动播放。用PROTEUS实现的电子琴仿真设计。说明单片机的工作时钟频率为12MHZ。2系统总体方案及硬件设计本系统采用单片机AT89S52为电子琴的控制核心,系统主要包括播放模块、按键弹奏模块。下面对各模块的设计逐一进行论证比较。21系统总体方案本次设计提出了用AT89S52单片机为核心控制元件,设计一个简易的电子琴。本方案以AT89S52单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块在主控模块上设有7个按键和扬声器。根据使用者的操作随意弹奏想要表达的音乐。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号。211定时/计数器的设计和状态字定义若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P10反相,然后重复计时再反相。就可在P10引脚上得到此频率的脉冲。利用AT89S52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523HZ,其周期T1/5231912S,因此只要令计数器计时956S/1S956,每计数956次时将I/O反相,就可得到中音DO(523HZ)。计数脉冲值与频率的关系式是NFI2FR,式中,N是计数值;FI是机器频率(晶体振荡器为12MHZ时,其频率为1MHZ);FR是想要产生的频率。其计数初值T的求法如下T65536N65536FI2FR例如设K65536,FI1MHZ,求中音DO(261HZ)。T65536N65536FI2FR6553610000002FR65536500000/FR,中音DO的T65536500000/52364580。单片机12MHZ晶振,中音符与计数T0相关的计数值如表所示表21音符频率表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO262636284FA740648601DO27763731中5SO78464898低2RE294638355SO831649342RE31163928中6LA88064968低3M33064021693264994低4FA34964103中7SI988650304FA37064185高1DO104665058低5SO392642601DO1109650855SO41564331高2RE117565110低6LA440644002RE124565134646664463高3M131865157低7SI49464524高4FA139765178中1DO523645804FA1480651981DO55464633高5SO156865217中2RE587646845SO1661652352RE62264732高6LA176065252中3M659647776186565268中4FA69864820高7SI196765283采用查表程序进行查表时,可以为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据低音019之间,中音在2039之间,高音在4059之间用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。212音调数据表单片机发出不同频率的方波,人听起来,就是不同的音调。上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。定义音调数据表的程序如下DW63628,63835,64021,64103,64260,64400,64524,64580低音区1234567DW64580,64671,64777,64820,64898,64968,65030,65058中音区1234567DW65058,65110,65157,65178,65217,65252,65283,65312高音区1234567把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。音乐的音拍,一个节拍为单位(C调)表22曲调值表曲调值DELAY曲调值DELAY调4/4125MS调4/462MS调3/4187MS调3/494MS调2/4250MS调2/4125MS22总体硬件组成框图实验中每按下一个琴键,单片机能够检测到键盘的按键,并根据按键的位置,通过程序来控制,使蜂鸣器发出不同频率(音调)的声音,声音延迟一段时间,等到按键放开之后,声音停止。然后再继续扫描,看是否有键按下。如此循环,即可实现基本的琴键功能。图21总体硬件组成框图221主要芯片简介与MCS51单片机产品兼容、8K字节在系统可编程FLASH存储器、1000次播放模块蜂鸣器中心控制模块AT89S52按键控制模块显示输出擦写周期、全静态操作0HZ33HZ、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。AT89S52具有如下特点40个引脚(引脚图如图11所示),4KBYTESFLASH片内程序存储器,128BYTES的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDTC)电路,片内时钟振荡器。P0口P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在FLASH编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。P2口P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。P3口亦作为AT89S52特殊功能(第二功能)使用,在FLASH编程和校验时,P3口也接收一些控制信号。图22AT89S52222子系统模块一LED显示模块如图22所示,利用AT89S52单片机的P2端口的P20P26连接到一个七段数码管的AH的笔段上,数码管的公共端接电源。矩阵扫描显示当前按键模块如下图23LED数码管223子系统模块二播放模块是蜂鸣器构成。它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以被广泛应用。图24蜂鸣器播放器224子系统模块三电子琴设有7个按键,分别代表7个音符,包括中音段的全部音符。通过软硬件设计,按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现各种琴键的声音。图25按键排列225AT89S52复位模块开关按下,实现单片机的复位。此复位电路连接到AT89S52的RST管脚上。图26复位部件226AT89S52晶振模块本次采用12MHZ晶振,机器周期为1US,连接两个电容,连接到AT89S52的XTAL1,XTAL2上面,连接电路图27。图27晶振模块3软件设计31系统软件设计软件是该电子琴控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。本设计用的C语言编程。C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。本设计用的KEIL软件,KEILC51VISION2集成开发环境是KEILSOFTWARE,INC/KEILELEKTRONIKGMBH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。311内置歌曲输出一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。利用AT89S52的内部定时器T0使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶。将编写好的歌曲程序写入单片机存储区,其中高四位表示音阶,低四位代表其所延时的节拍。通过开关控制其播放。本设计所选歌曲截自邓丽君的月亮代表我的心其歌曲程序如下UCHARCODEMUSIC0X16,0X12,0X14,0X22,0X32,0X26,0X12,0X94,0X22,0X32,0X2C,0X32,0X52,0X36,0X22,0X14,0X54,0XAC,0X92,0XA2,0X96,0X0A2,0X96,0X82,0X3C,0X54,0X36,0X22,0X14,0X54,0XAC,0X92,0XA2,0X16,0X12,0X14,0X22,0X32,0X2C,0X02,0X82,0X16,0X32,0X56,0X12,0XA6,0X32,0X56,0X52,0X66,0X72,0XB6,0X62,0X62,0X52,0X58,0X32,0X22,0X16,0X12,0X14,0X32,0X22,0X16,0X12,0X14,0X22,0X32,0X26,0X92,0XA4,0X12,0X22,0X1C,0XFF312音阶键识别七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。LED数码管的GA七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码。本系统按键显示模块软件流程图如下图31音阶显示流程开始是否有按键按下DO、RE、M、FA、SO、LA、SI、DO是键按下是否有音键按下检测是高中低按下是1是否为1TR0置0节拍延时置1TR1置1置0TR1置0相应的数值减一DOREMFASOLASIDOTRO置1TR1置0执行T0中断32系统总流程图图32总流程图4PROTEUS软件仿真41程序仿真在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试中心控制模块的调试,音乐播放模块的调试,按键控制模块的调试等,最后将各模块组合后进行整体测试。首先对各模块的功能进行调试,主要调试各模块能否实现指定的功能。然后通过KEIL软件对编好的程序进行调试,检查语法错误。KEIL下编译,产生目标HEX文件,PROTEUS下PROGRAMMEFILES选择产生的HEX文件,点击运行开始模拟。其中KEIL的运行截图如下图41程序运行42PROTEUS仿真首先,尝试仿真模拟,低音曲调。通过长按和断开微动开关,改变频率,实现高中低音的切换。低音的频率最低,故最先实现。如图42,用显示数字“0”代表低音。据观察,实现方便。图42低音显示再次长按住微动开关,即可提高频率,使之达到设定的中音频率,用数字“1”代表中音。尝试比较,同一音符的不同音调即可辨别中低音的区别。其音调略高于低音,需细细辨别。如图43,中音显示。图43中音显示开始调试高音,再次长按微动开关,使之频率达到预设的高音阶。与低音、中音相比较,便可分辨出。本次仿真用数字“2”代替高音。仿真结果显示2。图44高音显示接上电源,即开始播放。虽然有点小模糊,但是依稀可以辨别歌曲。另一个微动开关可实现乐曲的停止,即单片机的复位。再次按住,实现重新播放。见图45。图45歌曲播放电子琴的关键功能是能弹奏乐符,上述仿真已经完成了高中低音和内置歌曲播放。现在,开始真正的音符仿真调试。音符有7个,分别是1,2,3,4,5,6,7,形声以DO、RA、M、FA、SO、LA、SI试音。分别尝试按七个微动开关,切换于不同的频率,发出不同的音阶。再分别用高、中、低音发声,分别听取不同的音调。声音清脆悦耳,但有点延时,有待调整。另外,一个微动开关的动合实现内置歌曲和弹奏的切换。在播放内置歌曲时,按下某微动开关,歌曲停止,便可开始音阶弹奏。本次报告截取音阶7的PROTEUS仿真图。见图46。图46音阶7的仿真5课程设计体会通过这次单片机课程设计,我们加深了对单片机理论的理解,将理论很好的应用到实际当中去。尤其是这次做了一个实物,锻炼了动手能力,很好的克服了眼高手低的毛病。这次单片机课程设计,让我有不小的收获。在学习态度上,这次课程设计是对我们的学习态度的一次检验。对于这次单片机综合课程设计,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次设计所遇到的多半问题都是由于我们不够严谨。在做人处事上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力和决心,有足够的挑战困难的勇气,就没有什么办不到的;同学们相互帮助,可以进步很快,团队协作真的很重要,帮助他人可以有更多成就感,获得更大的快乐。在实习之前,我们要对所用单片机的内部结构有一个比较系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次性就将整个程序设计好,反复修改,不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就明白你的思路,这样也为资料的保存与交流提供了方便,从实践中学到的知识会让我们受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在今后的学习、工作和生活中。在设计过程中和完成后,我认真总结,有以下体会1此次课程设计是在上学期单片机原理与技术的基础上进行的,整个实验设计过程相对比较熟悉,是把以前学习的零碎的内容系统的整合学习。2本实验要充分了解电子琴的程序,清楚每个模块功能,认真按照步骤编译、链接、运行以生成可执行文件,并将此文件植入AT89S52中进行仿真。3在经过两周的设计过程中,通过大量的查阅资料,认真的研究教材,并向指导老师请教很多问题,自己对单片机有了更为深刻的理解。我们认真演示原理,画出程序流程图,通过源程序,做出电路图,在仿真中发现很多问题,通过仔细研究,不但解决了问题,还学到了在平时的学习中学不到的东西。4在设计过程中,进一步的掌握PROTEUS、WORD、KEIL等软件的应用,也了解了单片机开发的基本环节。5在焊接实物过程中应合理布局各元件,不仅要实现功能而且还要美观。参考文献1余发山,王福忠单片机原理及应用技术中国矿业大学出版社,200862杨凌霄微型计算机原理与应用中国矿业大学出版社,200883贾立新,王涌电子系统设计与实践M清华大学出版社,200824陶春鸣,陈享成,瓮嘉民单片机使用技术M人民邮电出版社,200845李光飞单片机课程设计实例指导M航空航天大学出版社,200496余永权ATMEL89系列单片机M北京航空航天大学出版社,200247胡宴如,耿苏燕模拟电子技术M高等教育出版社,2007128赵润林,张迎辉单片机原理与应用教程M北京大学出版社,200719马淑华,王凤文,张美金单片机原理与接口技术M北京邮电大学出版社,20051010李建忠单片机原理及应用M西安电子科技大学出版社,20025附1源程序代码INCLUDEDEFINEUCHARUNSIGNEDCHARVOIDRUNVOIDVOIDKEYSCANVOIDVOIDPLAYKEYVOIDVOIDDELAY_1MSUCHARIVOIDPLAYMUSICVOIDVOIDDISPLAYVOID/显示SBITBEEPP37/蜂鸣器接口UCHARTH0,TL0UCHARFLAG0/模式,0表示音乐,FF表示按键UCHARKEY0/按键代号,0代表没有按键UCHARA/显示UCHARGAODI0UCHARCODEMUSICCODE0XFC,0X44,0XFC,0XAC,0XFD,0X09,0XFD,0X34,0XFD,0X82,0XFD,0XC8,0XFD,0X06,0XFB,0X04,0XFB,0X90,0XFC,0X0C,0XFE,0X22,0XF9,0X5B,0XFA,0X15/歌曲所用频率UCHARCODEMUSIC0X36,0X22,0X14,0X54,0XAC,0X92,0XA2,0X96,0X0A2,0X96,0X82,0X3C,0X54,0X36,0X22,0X14,0X54,0XAC,0X92,0XA2,0X16,0X12,0X14,0X22,0X32,0X2C,0X02,0X82,0X16,0X32,0X56,0X12,0XA6,0X32,0X56,0X52,0X66,0X72,0XB6,0X62,0X62,0X52,0X58,0X32,0X22,0X16,0X12,0X14,0X32,0X22,0X16,0X12,0X14,0X22,0X32,0X26,0X92,0XA4,0X12,0X22,0X1C,0XFF/歌谱UCHARCODEKEYCODE0XFF,0XFF,0XF8,0X8B,0XF9,0X5B,0XFA,0X14,0XFA,0X66,0XFB,0X03,0XFB,0X8F,0XFC,0X0B,0XFC,0X43,0XFC,0XAB,0XFD,0X08,0XFD,0X330XFD,0X81,0XFD,0XC7,0XFE,0X05,0XFE,0X21,0XFE,0X55,0XFE,0X84,0XFE,0X99,0XFE,0XC0,0XFE,0XE3,0XFF,0X02/高中低频率/主程序/VOIDMAINVOIDP00XFFP20TMOD0X01/定时器0,模式1,16进制计数IT01/边沿触发方式TR00/停止定时器0的工作EX01/允许外部中断0中断ET01/允许T0中断EA1/CPU开放总中断WHILE1KEYSCANDISPLAYRUNVOIDRUNVOID/模式选择IFFLAG0PLAYMUSICELSEPLAYKEY/数码管动态显示模块/VOIDKEYSCANVOIDIFP00X7F/P07口键

温馨提示

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

评论

0/150

提交评论