《简易电子琴设计 毕业设计.doc》由会员分享,可在线阅读,更多相关《简易电子琴设计 毕业设计.doc(17页珍藏版)》请在三一办公上搜索。
1、 主要内容、基本要求、主要参考资料等: 设计一个电子琴,要求具有以下功能:(1)利用查询式键盘,数字键1、2、3、4、5、6、7、8作为电子琴按键,按键按下时发出1、2、3、4、5、6、7、1的声音。(2)利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。参考资料:【1】单片机原理及接口技术-第二版 主编 李全利 高等教育出版社【2】80C51单片机实践与应用M-第一版 主编吴金戌,沈庆阳,郭庭吉 清华大学出版 完 成 期 限: 2011-12-07 指导教师签名: 课程负责人签名: 年 月 日 郑州华信学院课程设计说明书题目: 简易电子琴设计 姓
2、 名: 院 (系): 机电工程学院 专业班级: 09电气工程一班 学 号: 0902120110 指导教师: 成 绩: 时间: 年 月 日至 年 月 日目 录摘 要4引 言4一 方案选取5二 原理及结构62.1设计简单原理介绍62.2设计结构图62.3单片机的外部引脚简要说明7三 硬件设计93.1键盘控制模块9四 软件设计104.1 软件流程图10五 软、硬件调试过程115.1硬件操作步骤115.2软件操作步骤12六 源程序126.1源程序12参考文献14附录15总结16摘 要随着现代电子技术的发展,涌现出了很多电子产物,其中电子琴就是其一,本报告设计一个基于单片机的简易电子琴。电子琴作为科技
3、与音乐的产物,在信息化与电子化的时代,为音乐的大众化做出了不可磨灭的贡献,现在歌曲的制作,很多都需要电子琴来完成,因此它在现代音乐扮演着重要的角色。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键本系统运行稳定,其优点是硬件电路简单,软件功能完善,程序简单易懂,控制系统可靠,性价比较高等,因
4、此具有一定的实用和参考价值。关键词:电子琴、键盘、频率引 言单片机作为微型计算机的一个很重要的分支,自问世以来,以其极高的性价比,受到人们的重视和关注,因此应用广泛,发展迅速。相对而言,单片机体积小、重量轻、抗干扰能力强,对环境要求不高,并且价格低廉、可靠性高、灵活性好,开发较为容易。目前,在我国,单片机已经广泛地用于智能仪表、机电设备过程控制、自动检测、家用电器和数据处理等各个方面。 因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。在电子音乐领域,自从20世纪末期MIDI(乐器数字化接口)推出和逐步规范化后,各种乐器及众多数码音视频产品中采用MIDI技术已逐渐成为一种潮流。但是当
5、前各厂商的电子琴产品通常使用自己设计的专用音源,并且软硬件均不对外公开,阻碍了MIDI技术的交流。作者在开发基于MIDI模块的音乐发生器的过程中,进行了用单片机控制通用MIDI音源模块的相关功能制作电子琴的实践,制作出具有8个按键的 MIDI电子琴,该琴支持单音和复音弹奏,单片机以标准的MIDI波特率传送信息,通过串口连接蜂鸣器,从而获得优美的乐音一 方案选取通过对单片机系统的学习和认识,我认识到通过8051单片机p1输入到系统,可以完成此简易电子琴的任务,使用80C51单片机做此电子琴是我们的不二选择,因为在我们的课程学子中,了解和接触最多的就是80C51,别的型号的芯片我们不熟,所以80C
6、51是个很好的选择。乐音实际上是有固定周期的信号,我们可以用80C51的一个定时器(如T0)控制,在P1.0脚上输出方波周期信号,产生乐音。根据不同的按键,调节T0的溢出时间,可输出不同频率的乐音,单片机因其体积小、功能强、价格低廉而得到广泛应用。本设计介绍用8051单片机设计微型电子琴的方法,仅需80C51最小系统,扩展一组小键盘,再加一个音频小功放,输出到扬声器。这样就做出了一台微型电子琴。二 原理及结构2.1设计简单原理介绍一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。若要产生音频脉冲,只要算出某一音频的周期(1/频率)
7、,再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将P1.0反相,然后重复计时再反相。就可在P1.0引脚上得到此频率的脉冲。利用8051的内部定时器使其工作计数器模式1下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式如下: Nfi2fr 式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。 表2.1频率与音符对照表音符中
8、 DO中 RE中 MI中 FA中 SO中 LA中 SI高 DO频率523587 659 698 784 880 988 1046初值 64580 64684 64777 64820 64898 64968 65030 650582.2设计结构图8051单片机根据不同的琴键产生不同的乐曲音符,并经过信号放大,由喇叭放出。系统整体方案如图所示:琴键 电路放大电路P0.0P0.7P1.0单片机图2.1系统原理框图2.3单片机的外部引脚简要说明此次设计应用的单片机为80C51,设计中主要应用了它的P0口、复位RST口、片选口、外接晶振引脚和P1.0口,单片机8051的外部引脚配置如图3.2所示: 图2
9、.2 51系列的外部引脚配置VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入
10、。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,
11、由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口同时为闪烁编程和编程校验接收一些控制信号。P3口也可作为8051的一些特殊功能口,如下表所示:表2.1 P3口的第二功能P3口引脚第二功能P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2INT0(外部中断0输入)P3.3INT1(外部中断1输入)P3.4T0(定时器0外部脉冲输入)P3.5T1(定时器1外部脉冲输入)P3.6WR(外部数据存储器写脉冲输出)P3.7RD(外部数据存储器读脉冲输出)三 硬件设计本电子琴设计模块主要包括键盘控制模块。3.1键盘控制模块电子琴设有8个按键,8个按键分别代表8个音符
12、,从中DO到高DO,通过软硬件设计,按某个键触发外部中断,中断使程序跳转,启动电子琴,使喇叭发出各个音符的声音,此系统琴键输入是通过独立式键盘来完成的。由于8051单片机的八位I/O口足以能实现控制C调各音阶的输出,并且独立式键盘的编程容易易懂,结构简单,实现起来方便,而且每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,所以采用独立式键盘。P0.0P0.7 口分别对应琴键17输入,如下图所示: 图3.1 键盘电路图 四 软件设计4.1 软件流程图本系统中下位机(单片机80C51)的主要功能就是实现音乐播放功能。其主程序流程如图4.1和图4.2所示。否图4.1主程序框图 否是是
13、是否开始读入键值用键值查表得到音频相关数据启动定时开始发声1键值7按键已松开检测键输入按音频数据设置定时器关闭定时停止发声定时中断停止计时输出音频脉冲电平(高或低)音频脉冲电平反转保护现场恢复现场中断返回图4.2定时中断程序框图五 软、硬件调试过程5.1硬件操作步骤利用实验仪上提供的键盘,使数字键1、2、3、4、5、6、7、8作为电子琴按键,按下即发出相应的音调。用3.2 口发出音频脉冲,驱动喇叭。1、单片机最小应用系统1的 P1口接查询式键盘,单片机INT0口接音频驱动电路。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil
14、uVision2仿真软件,首先建立本实验的项目文件,接着添加 电子琴.ASM源程序,进行编译,直到编译无误。4、进行软件设置,选择硬件仿真,选择串行口,设置波特率为38400。5、打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。按查询式键盘的18键,扬声器发出高低不同的声音。5.2软件操作步骤1、使用Professional软件画出电路图(如附录所示)。2、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 电子琴.ASM源程序,进行编译,直到编译无误。3、进行软件设置,添加ASM源程序,进行编译直至没有出现错误。4、点击按钮进行程序。5、按电路图中的8
15、个键盘按钮。.六 源程序6.1源程序PULSE EQU 10H ;脉冲PULSECNT EQU 50H ;脉冲计数TONEHIGH EQU 40H ;高音调TONELOW EQU 41H ;低音调TONE EQU 42H ;音调KEYBUF EQU 54HSPEAKER BIT P3.2 ORG 0000H LJMP START ORG 000BH LJMP TIMER0INT ORG 0030HTIMER0INT: ;定时中断 PUSH PSW CLR TR0 MOV TH0, TONEHIGH MOV TL0, TONELOW SETB TR0 MOV C, PULSE MOV SPEAK
16、ER,C CPL PULSE POP PSW RETITONETABLE: DW 64578, 64686, 64778, 64821 DW 64898, 64968, 65029, 65069TESTKEY: MOV P1, #0FFH MOV A, P1 ;读入键状态 RETKEYTABLE: DB 0FEH,0FDH,0FBH,0F7H ;键值表 DB 0EFH,0DFH,0BFH,07FHGETKEY: MOV R6,#10 ACALL DELAY MOV A,P1 CJNE A,#0FFH,K01 ;确有键按下 LJMP MLOOPK01: MOV R3, #8 ;8个键 MOV R
17、2,#0 ;键码 MOV B,A ;暂存键值 MOV DPTR, #K0TABK02: MOV A,R MOVC A,A+DPTR ;从键值表中取键值 CJNE A,B,K04 ;键值比较 MOV A,R2 ;得键码 RETK04: INC R2 ;不相等,到继续访问键值表 MOV A,#0FFH ;键值不在键值中,即多键同时按下 LJMP MLOOPDELAY: MOV R7,#0 ;延时子程序DELAYLOOP: DJNZ R7,DELAYLOOP DJNZ R6,DELAY RET START: MOV SP, #70H MOV TMOD,#01 ;TIMER MOV IE, #82H
18、;EA=1, IT0 = 1 MOV TONE,#0MLOOP: CALL TESTKEY JZ MLOOP CALL GETKEY MOV B,A JZ MLOOP ;= 0, 7 DEC B MOV A,B RL A ;A = A*2 MOV B,A MOV DPTR,#TONETABLE MOVC A, A+DPTR MOV TONEHIGH,A MOV TH0,A MOV A,B INC A MOVC A,A+DPTR MOV TONELOW, A MOV TL0, A SETB TR0 MOV P1,#OFFHWAIT: MOV A,P1 CJNE A,#OFFH,WAIT MOV
19、R6,#10 ACALL DELAY CLR TR0 LJMP MLOOP END 参考文献【1】单片机原理及接口技术-第二版 主编 李全利 高等教育出版社【2】80C51单片机实践与应用M-第一版 主编吴金戌,沈庆阳,郭庭吉 清华大学出版 附录电路图元器件表1、 单片机AT89C512、 查询式键盘3、 10K电阻(8个)4、 扬声器总结经过两周的单片机课程设计,是我学习到了很多知识,尤其是实践方面的知识,我设计的是简易电子琴设计,设计这个课题使我把理论课的知识应用到其中,并且检验了理论知识。通过这次单片机课程设计,我弄懂了不少课本上的知识,还扩展了一些课本没有的知识,再通过老师同学的给予的
20、大力帮助,很好的完成了这次课程设计。首先在课程设计刚开始阶段,我对本次设计没有什么思路,但通过我在图书馆细心的查资料,并且通过对资料的学习,我大致了解了单片机应用的发展现状以及未来的发展趋势,认识到目前单片机方面的各种各样的应用,大致掌握了电子琴的原理和设计思路,从而对单片机有了更多的了解。我们的电子琴设计在硬件主要包括三个部分:硬件检测模块,波形输出模块;在软件方面,因为程序的编写都是我们的弱项,所以我们是先从网上找来类似的程序模板,然后借助各方面的资料对程序的每一步进行分析,按我们的需求进行修改,最终才得到我们现在的程序方案,同时也对单片机汇编语言的设计有了进一步的认识与提高。通过这次课程
21、设计,我感觉收获了很多:首先,通过实践,加深对单片机系列知识及其系统的认识。这个设计题目并不是新的,但从中能体现到一个系统开发设计的过程,足于让我们受益。第二,通过设计学习到了很多软件的使用。本次设计,软件部分用到了protues进行硬件设计,用keil进行程系编译,用protel进行制板。第三,提高了自己的动手能力。动手在一定程度上反映了一个人的能力,作为当代大学生,社会要求的我们不是只能说而不能做的人才;作为海大的一员,三能人才标准更让我们清醒地认识到,实际动手能力无比重要。从这次实物制作中,我的动手能力提高了。 两周时间我和同伴过的很充实,我们也通过互相的交流互相学习了很多识,在设计和连接电路的实践中我们也遇到过很多困难,但是经过两周的努力我们终于解决了困难,并且最终连接好电路,在调试过程中也成功了,其中要感谢老师还有其他同学的帮助,希望能有更多这样的机会,让我们能学习更多的知识,也感谢老师和学校能提供给我们各种器件和设备供我们来学习。总之,两周的课程设计结束了,我们都受益匪浅,为我们以后的工作打下了很好的基础。
链接地址:https://www.31ppt.com/p-3990657.html