ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:162.93KB ,
资源ID:5635207      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5635207.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最新版基于单片机的微型电子琴设计毕业设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最新版基于单片机的微型电子琴设计毕业设计.docx

1、最新版基于单片机的微型电子琴设计毕业设计以下文档格式全部为word格式,下载后您可以任意修改编辑。本科生毕业论文(设计)系(院)物理与电子信息科学系 专业 电子信息工程 论文题目基于单片机的微型电子琴设计学生姓名 指导教师 班 级 07级电信2班 学 号 完成日期:2010 年 11 月基于单片机的微型电子琴设计 XXX物理与电子信息工程学院 电子信息工程 摘要电子琴的设计以AT89C52单片机为核心控制元件,与键盘、扬声器等模块组成核心主控制模块,通过制作硬件电路和软件的设计编写,然后进行软硬件的调试运行,最终达到设计电路的乐器演奏、点歌、存储及显示功能。设计中应用中断系统和定时计数原理控制

2、演奏器发声,对音乐发生所必须确定的音符和节拍分别用程序语言实现。特点是设计思路简单、清晰,成本低。 关键字 AT89C52单片机 电子琴 演奏1 引言电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器1。电子琴是高科技在音乐领域的一个代表,它是古典文化与现代文明的一个浓缩体。它不但可以帮助我们的音乐教师进行传统音乐文化的教育教学工作,而且由于它又具备现代音乐,特别是电子音乐、电脑音乐的基本结构、特征,因而使我们的教师在进行现代音乐、电子音乐、电脑音乐的教学时,更直接、更简便。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可

3、替代的一部分。基于当前市场上的玩具市场需求量大,其中电子琴就是一个很好的应用方面。单片机技术使我们可以利用软硬件实现电子琴的功能,从而实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。并且可以进行一定的功能扩展。单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。本文主要对使用单片机设计微型电子琴进行了分析,并介绍了基于单片机电子琴统硬件2组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随

4、意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。2 设计要求本设计的主要内容是用AT89C52单片机3为核心控制元件,设计一个微型电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,实现以下功能:(1) 设计一个(44)的键盘4,并将16个键设计成两个八度的音阶对应的16个琴键,可以进行弹奏表演;(2) 演奏的同时数码管会以数字显示当前按键对应的音符;(3) 有音乐存储功能,能自动演奏歌曲。演奏时可选择键盘输入乐曲,自己存入的乐曲或随机存储的乐曲。按播放键能播放5首歌曲,第一首歌曲播放结束,再按播放键播放下一首歌曲。(4) 发光

5、二极管会指示当前按键是否按下。3 方案论证3.1 控制模块选择方案 方案一:用可控硅制作电子琴。将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。将单向可控硅SCR和电阻、电容组成驰张振荡器电路。但该设计方案制作成本高且复杂。方案二: 采用AT89C51单片机进行控制,由于AT89C51不具备ISP功能,因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。方案三:采用AT89C52单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方

6、便,抗干扰性能提高5。 鉴于上述对比与分析,本设计采用方案三 3.2 按键选择方案传统电子琴可以用键盘上的“1”到“A”键演奏从低SO到高DO等11音。该设计有16个按钮矩阵,设计成16个音,可以实现音阶在中音和高音之间的变换。比传统音阶范围大,弹奏效果好。在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘,它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。本设计选择4*4矩阵

7、键盘。4 设计原理 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率6,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。若要产生音频脉冲,只要算出某一音频的周期(1频率),再将此周期除以2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将输出P3.0反相,然后重复计时再反相。就可在P3.0脚上得到此频率的脉冲。 利用AT89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生

8、不同频率的方法产生不同音阶7,例如,频率为523Hz,其周期T15231912s,因此只要令计数器计时956s1s956,每计数956次时将IO反相,就可得到中音DO(523Hz)。 计数脉冲值与频率的关系式是:N=fi2fr 式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:TKNKfi2fr式中K是单片机的16位定时器最大计数值,K216 =65536;fi是机器频率,fi1MHz,例如低音DO(262Hz)、低音RE(294Hz)、中音DO(523Hz)、中音RE(587Hz)、高音DO(1046Hz)、高音RE

9、(1175Hz)的计数值如下:T65536N65536fi2fr65536fr65536500000fr低音DO的T6553663628低音RE的T6553663835中音DO的T6553664580中音RE的T6553664684高音DO的T6553665058高音RE的T6553665110了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系4。在本实验中,单片机工作于12MHZ时钟频率,使用其定时计数器T0,工作模式为

10、1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,根据以上公式,C调的各音符频率与计数值T的对照如下8表4-1 音符频率对照表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO3

11、9264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO156865217中 2 RE58764684# 5 SO#166165235# 2 RE#62264732高 6 LA176065252中 3 M65964777# 6186565268中 4 FA69864820高 7

12、SI196765283为音符建立一个数据表,单片机通过查表的方式来获得相应的数据。 低音019之间,中音在2039之间,高音在4059之间TABLE1: DW DW DW DW 音乐的音拍,一个节拍为单位(C调)(如表4-2所示)表4-2 曲调值表曲调值DELAY曲调值DELAY调44125ms调4462ms调34187ms调3494ms调24250ms调24125ms对于不同的曲调我们也可以用单片机的另外一个定时计数器来完成。琴键处理程序,根据检测得到按键值,查询音律表,给计时器赋值,发出相应频率的声音。对音调的控制:根据不同的按键,对定时器T1送入不同的初值,调节T1的溢出时间,这样就可以

13、输出不同音调频率的方波。不同音调下各个音阶的定时器。在这个程序中用到了两个定时计数器来完成的。其中T0用来产生音符频率,T1用来产生音拍9。5 微型电子琴的系统总体原理框图 如图5-1所示,设计出微型电子琴的系统总体原理框图。 图5-1微型电子琴系统原理框图6 系统主要硬件电路设计6.1 微型电子琴的Proteus总体设计电路图 电子琴的proteus总体仿真图见图6-1。按下播放键,发光二极管亮一下,系统自动播放预存在内存中的曲子,再按一次播放下一首歌曲,按下复位键,系统复位,停止播放。按下矩阵键盘中的任意键,扬声器发出相应的音符。图6-1 微型电子琴的Proteus总体设计电路图6.2单片

14、机主机系统电路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引脚

15、图P3口也可作为AT89C52的一些特殊功能口,如下表所示:P3口引脚特殊功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读先通)P3口同时为闪烁编程和编程校验接收一些控制信号。其主要功能特性: 兼容MCS51指令系统 8k可反复擦写(1000次)Flash ROM 32个双向IO口 256x8bit内部RAM 3个16位可编程定时计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部

16、中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 6.2.2时钟频率 单片机必须在时钟的驱动下工作。在单片机内部有一个时钟振荡电路12,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。外部振荡源电路一般选用石英晶体振荡器,此电路在加电大约延迟10mS后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容C1,C2,作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。 单片机在工作时,由内部振荡器产生或由外直

17、接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。起大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为112s。6.2.3 晶振电路AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。 单片机内部有一个反相放大器XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。 一般来说单片机内部有一个带反馈的线

18、性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如图6-2所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中X1为晶振,震荡产生的时钟频率主要由Y1确定。电容C1,C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。图6-3 晶振电路6.2.4 按键播放电路 图6-4按键播放电路6.2.5键盘扫描在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘,如图6-5,图6-6所示。图6-5独立键盘图6-6 矩阵键盘它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;矩阵

19、键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。本次课程设计,我采用矩阵式键盘电路,这样可以大大的节省单片机IO的开销。键盘电路见图6-7图6-7 键盘电路在按键过程中常产生“毛刺”现象13,如图6-8所示,要消除“毛刺”现象,这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后,再延时一段时间(10ms20ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。 图

20、6-8“毛刺”现象6.2.6 发音电路 电子琴发音电路见图6-9。图6-9 电子琴发音电路6.2.7 供电及复位电路 电子琴的供电电路和复位电路14见图6-10。图6-10 电子琴供电及复位电路6.2.8 LED数码管显示电路本次毕业设计的显示电路采用LED数码管显示,LED(Light-Emitting Diode)是一种外加电压从而渡过电流并发出可见光的器件。LED是属于电流控制器件,使用时必须加限流电阻15。LED有单个LED和八段LED之分,也有共阴和共阳两种。常用的七段显示器的结构如图下图所示。发光二极管的阳极连在一起的称为共阳极显示器(如图b所示),阴极连在一起的称为共阴极显示器(

21、如图c所示)。1位显示器由八个发光二极管组成,其中七个发光二极管ag控制七个笔画(段)的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显示出正确的数字来。图6-11 数码管引脚选用的是P0口作为输出口时要接上拉电阻7 系统软件设计7.1系统软件总体方案(1)键盘扫描程序:检测是否有键按下,有键按下则记录按下键的键值,并跳转至功能转移程序;无键按下,则返回键盘扫描程序继续检测(2)功能转移程序:对检测到得按键值进行判断

22、,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲功能(3)琴键处理程序:根据检测到得按键值,查询音律表,给计时器赋值,使发出相应频率的声音(4)自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放好的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有键按下7.2系统软件简易流程图 否 是 是 否 按键子程序流程图如下 弹奏程序流程图自动播放歌曲程序流程图 Y N Y N 7.3 部分设计源程序7.3.1歌曲播放子程序;= 歌曲播放子程序 =START0: mov 30H,#

23、 SONG0 ;取简谱码指针(第1首)next: mov a,30h mov dptr,#tab1 movc +dptr ;至相关页码,高4位为音符的高低 mov r2,a ;低4位为音符的节拍 jz end0 ;检查简谱码是否已结束(有无00?) anl a,#0fh ;取节拍(低4位) mov r5,a ;存入r5,节拍的时间 mov a,r2 swap a anl a,#0fh ;取音频值(高4位) jnz sing ;是否为0,是0则不发音 clr TR1 ;开始,则不发音 jmp d1sing: dec a ;因0不列入 mov 22h,a ;存入(22h) rl a ;乘2 mov

24、 dptr,#tab1 movc +dptr ;至tab1取码,取t的值 mov th1,a ;取到的高位字节存入th1 mov 21h,a ;取到的高位字节存入(21h) mov a,22h ;再载入取到的音符码 rl a ;乘2 inc a ;加1 movc +dptr ;至table取相对的低位字节计数值 mov tl1,a ;取到的低位字节存入tl0 mov 20h,a ;取到的低位字节存入(20h) setb TR1 ;启动TIMER0d1: call delay inc 30h ;取简谱码指针加1 jmp nextend0: clr TR1 ;停止TIMER0 mov a,31h

25、;载入计次指针 xrl a,#00h ;是否按第1次? jnz end1 ;不是则跳至end1 jb KEY,$ ;按第2次? call delay1 ;消除抖动 jnb KEY,$ ;放开否? inc 31h ;计次地址(31h)加1 MOV 30h,# song1 ;第2首歌指针 jmp next7.3.2延时程序 DELY10MS: MOV R6,#10D10: MOV R7,#248 DJNZ R7,$ DJNZ R6,D10 RET7.3.3音符参数表;= 音符参数表=TABLE: DB 06H,5BH,4FH,66H,6DH,7DH,07H,06H DB 06H,5BH,4FH,6

26、6H,6DH,7DH,07H,06H8 系统调试与测试结果分析8.1 系统调试在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:中心控制模块的调试,音乐播放模块的调试,按键控制模块的调试等,最后将各模块组合后进行整体测试。首先对各模块的功能进行调试,主要调试各模块能否实现指定的功能。然后通过WAVE6000软件对编好的程序进行调试,检查语法错误。最后将调试好的软件程序导入到硬件模块中,调试系统实现的功能。调试主要方法和技巧:软件调试和硬件调试8.1.1系统软件调试 通常一个调试程序应该具备至少四种性能16:跟踪、断点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功

27、能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。8.1.2 系统硬件调试硬件调试主要是针对单片机部分进行调试。在上电前,先确保电路中不在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本

28、次设计中,上电调试主要键盘单片机控制部分、数码管点亮部分、和音频转换电路硬件调试。(1)、数码管LED电路调试:接通电源,随机按下按钮可以看到数码管显示数字。(2)、键盘单片机控制部分调试:上电后,随机按动键盘可以发现各个按键对应的音正确。(3)、按键播放电路调试:按下播放按键能弹唱歌曲,唱完一首之后再按一下播放按键弹奏下一首歌曲。(4)、复位电路调试:按一下复位键能完成复位功能。硬件实物图8.2 测试结果及心得8.2.1 测试结果通过各方面努力,本次毕业设计任务完成,系统部分功能已实现。可以随意演奏喜欢的曲子,并可以显示在数码管上,可以随意弹奏16个音符,可以播放5首歌曲。基本达到预定的效果

29、。毕业设计是本科学习阶段一次非常难得的理论与实践相结合的机会,通过这次比较系统的项目设计提高了我运用所学的专业基础知识来解决面临实际问题的能力,同时也提高了我查阅各种文献资料、设计手册、设计规范以及软件编程的水平。8.2.2 本次设计的心得体会从上一学期开始我们就在准备选题,收集资料,这些都是不能马虎的,要慎重。这一学期来我们就交了开题报告。做完这次毕业设计后我有种如释重负的感觉,收获很多,没做之前想得太过简单,以为只要把资料收集好就万事俱备了,具体操作时才知道自己错了,只有想法犹如纸上谈兵,根本解决不了实际问题。想象和现实相差太远,做事不能太盲目,要深思熟虑。毕业设计不仅是对所学知识的一种检

30、验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺,自己要学习的东西还太多。这次设计从软件方面来讲不是很难,程序相对长一点,但都是书本上所学的知识,主要是中端及其服务程序的编写。在protues上仿真,则起到很好的效果,因为元器件都是理想状态的,但做出实物来却不是那么简单。经过多次调试、修改才得以出结果。在设计过程中,通过查阅大量相关资料,与同学交流经验,并向老师请教等方式,使自己学到了不少知识:首先在毕业设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料。通过对这些资料的学习,我大致了解了单片机的发展现状以及未来的发展趋势,认识到目前单片机方面的各种各样的发展。9 结 束 语经过两个月的查资料、整理材料、做实验,今天

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1