毕业设计(论文)基于单片机的简易电子琴课程设计.doc

上传人:文库蛋蛋多 文档编号:3980917 上传时间:2023-03-30 格式:DOC 页数:24 大小:1.55MB
返回 下载 相关 举报
毕业设计(论文)基于单片机的简易电子琴课程设计.doc_第1页
第1页 / 共24页
毕业设计(论文)基于单片机的简易电子琴课程设计.doc_第2页
第2页 / 共24页
毕业设计(论文)基于单片机的简易电子琴课程设计.doc_第3页
第3页 / 共24页
毕业设计(论文)基于单片机的简易电子琴课程设计.doc_第4页
第4页 / 共24页
毕业设计(论文)基于单片机的简易电子琴课程设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的简易电子琴课程设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的简易电子琴课程设计.doc(24页珍藏版)》请在三一办公上搜索。

1、毕业设计(论文) 题目: 基于单片机的简易电子琴课程设计 专 业 应用电子技术 班 次 09221 姓 名 指导老师 成都电子机械高等专科学校二0一二年五月基于单片机的简易电子琴课程设计目录第一章 引言。31.1 单片机发音概述。31.1.1 音调。41.1.2 节拍。61.1.3 单片机演奏音乐的方法。61.2 本次设计的任务和主要内容。7第二章 系统的主要硬件电路设计。72.1 系统组成及总体框图。72.1.1 简单电子琴的组成框图。82.1.2 简单电子琴的proteus仿真图。92.2 单片机主机系统电路。102.2.1 时钟频率。102.2.2 晶振电路。102.2.3 键盘扫描。1

2、12.2.4 发音电路。112.2.5 复位电路。.。11第三章 系统的软件设计。123.1简易电子琴的工作原理.。123.2 如何用单片机产生音频脉冲。133.3 主程序流程图。143.4 主程序。16引言:随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶,我们都会抽空欣赏世界名曲,作为对精神的洗礼,本课程设计是基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经落入现代人们的生活中,成为不可代替的一部分,本文的主要内容是用AT89C52单片

3、机为核心控制元件,设计一个电子琴。 果。 一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。单片机演奏的音乐基本上都是单音频率。因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”。音调表示一个音符唱多高的频率节拍表示一个音符唱多长的时间第二章 系统硬件设计及说明2.1 系统组成及总体框图硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率

4、的脉冲信号。该设计具有16个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。2.1.1 电子琴的组成框图AT89C524*4矩阵键盘发音电路晶振电路复位电路 电子琴系统原理框图2.1.2 简单电子琴的proteus仿真图电子琴总体仿真图2.2 单片机主机系统电路2.2.1时钟频率单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路

5、,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。外部振荡源电路一般选用石英晶体振荡器,此电路在加电大约延时10ms后振荡器气振,在XRAL2引脚产生幅度为3V左右的正弦波时钟信号,其晶振频率主要有石英晶振的频率确定。电路中两个电容C1,C2,作用有两个:一是帮助振荡起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF.单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用表示。2.2.2 晶振电路AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬

6、件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内部有一个反相放大器XTAL1,XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器,产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外接晶振和电筒就可以组成振荡器,如图所示。加电以后延时一段时间振荡器产生时钟,不受软件控制。晶振电路2.2.3 键盘扫描本次课程设计采用矩阵键盘电路,这样可以大大的节省单片机I/O口的开销。如图所示:2.2.4 发音电路发音电路2.2.5 复位电路复位电路第三章 系统的

7、软件设计3.1简易电子琴的工作原理大家都知道当物体振动时,能够发出声音。振动的频率不同,声音的音调就不同。在简易电子琴里,虽然没有振动的弦、簧、管等物体,却有很多特殊的电装置,每个电装置一工作,就会使喇叭发出一定频率的声音。当按动某个琴键时,就会使与它对应的电装置工作,从而使喇叭发出某种音调的声音。 简单的说就是按键触发信号发给处理器,再由处理器调用音色库音色通过功放电路输出或者通过数码接口进行输出。控制面板上的按钮来选择处理器对音色、音量、输出方式、伴奏的控制。 振荡器是根据需要产生一定频率的振荡器信号,振荡器信号通过分频器分解成不同的频率的信号输送到放大器,放大器将信号放大,推动扬声器发出

8、声音。键盘实际上就是一些开关,如果没有键盘,许多种频率的信号一起进到放大器里,通过扬声器发出的声音就会乱七八糟,不成音乐。按下键盘的一支键,就等于接通一只开关,只允许某一种频率的信号通过到放大器里去,扬声器就发出一个音来。这样,按照一定的演奏规律来按键,就能奏出美妙的音乐来。3.2 如何用单片机产生音频脉冲了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。在本实验中,单片机工作于12MHZ时钟频率,使用其定时/计数器T

9、0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值T的对照如下表:音符频率与计数值T的对照表音符频率(HZ)计数值(T值)音符频率(HZ)计数值(T值)低1DO26263628#4FA#74064860#1DO#27763737中5SO78464898低2RE29463835#5SO#83194934#2RE#31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI96865030#4FA#37064185低1DO104665058低SO39264260#1DO#11096

10、5085#5SO#41564331高2RE117565110低6LA44064400#2RE#124565134#6LA#46664463高3MI131865157低7SI49464524高4FA139765178中1DO52364580#4FA#149065198#1DO#55464633高5SO156865217中2RE58764633#5SO#166165235#2RE#62264884高6LA176065252中3MI65964732#6LA#186565268中4FA69864820高7SI196765283T的值决定了TH0和TL0的值,其关系为:TH0=T/256,TL0=T%2

11、563.3 主程序流程图程序开始总开关是否按下播放预定歌曲 N Y读P1口的状态延迟10msY再读P2口的状态判断是否是抖动N启动定时器T0判断是几号琴键,并跳转到相应的程序查表得相应琴键的定时初值重装定时器T0处值对P1.0求反中断返回Y等待中断,并判断此次琴键是否被释放电源 主流程图 中断流程图34 主程序#include #define uchar unsigned char#define uint unsigned intsbit hummer=P34; /蜂鸣器的输出端口sbit H1=P24; /高四位分别对应P2.4-P2.7sbit H2=P25;sbit H3=P26;sbi

12、t H4=P27;sbit start=P37; /起始信号bit flag; /外中断INT0进入标志bit hand_play;uchar state;uchar key_value;uchar timer0h, timer0l, time;uchar song;/ 频率-半周期数据表 高八位 共保存了四个八度的28个频率数据code uchar FREQH = 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, /低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,/1,2,3,4,5,6,7,

13、i 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, /高音 234567 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF; /超高音 1234567/ 频率-半周期数据表 低八位code uchar FREQL = 0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, /低音1234567 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, /1,2,3,4,5,6,7,i 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, /高音 23456

14、7 0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16; /超高音 1234567code uchar music500 = / 送别 5,1,2, 3,1,3, 5,1,1, 1,2,3, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 1,1,1, 2,1,1, 3,1,2, 2,1,1, 1,1,1, 2,1,4, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,0,1, 1,1,4, 6,1,2, 1,2,2, 1,2,4,

15、7,1,2, 6,1,1, 7,1,1, 1,2,4, 6,1,1, 7,1,1, 1,2,1, 6,1,1, 6,1,1, 5,1,1, 3,1,1, 1,1,1, 2,1,8, 5,1,2, 3,1,1, 5,1,1, 1,2,2, 7,1,1, 6,1,2, 1,2,2, 5,1,4, 5,1,2, 2,1,1, 3,1,1, 4,1,2, 7,0,2, 1,1,4, /一辈子的孤单 5,0,1, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 3,1,1, 2,1,1, 2,1,4, 5,0,1, 5,0,1, 3,1,1, 2,1,1, 2,1,1

16、, 2,1,1, 1,1,1, 2,1,1, 3,1,1, 3,1,4, 5,0,1, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 3,1,1, 2,1,1, 2,1,4, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 1,1,1, 2,1,1, 1,1,1, 1,1,8, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 1,1,1, 2,1,1, 2,1,6, 3,1,1, 2,1,2, 1,1,1, 1,1,1, 5,0,1, 6,0,1, 5,0,1, 5,0,6, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 1,1,

17、1, 2,1,1, 2,1,6, 5,0,1, 3,1,1, 2,1,2, 1,1,1, 2,1,2, 3,1,1, 3,1,4, 5,0,1, 3,1,1, 5,1,2, 6,1,1, 3,1,1, 2,1,1, 2,1,6, 5,0,1, 3,1,1, 2,1,2, 1,1,1, 2,1,2, 3,1,1, 3,1,4, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 2,1,4, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 1,1,1, 2,1,1, 1,1,1, 1,1,1, 1,1,6, 3,1,1, 2,1,1, 2,1

18、,1, 1,1,1, 3,1,1, 2,1,1, 2,1,6, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 2,1,1, 3,1,1, 3,1,6, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 3,1,1, 2,1,1, 2,1,6, 5,0,1, 3,1,1, 2,1,1, 2,1,1, 1,1,1, 2,1,1, 3,1,1, 3,1,6,/世上只有妈妈好 6, 2, 3, 5, 2, 1, 3, 2, 2, 5, 2, 2, 1, 3, 2, 6, 2, 1, 5, 2, 1, 6, 2, 4, 3, 2, 2, 5, 2, 1, 6,

19、 2, 1, 5, 2, 2, 3, 2, 2, 1, 2, 1, 6, 1, 1, 5, 2, 1, 3, 2, 1, 2, 2, 4, 2, 2, 3, 3, 2, 1, 5, 2, 2, 5, 2, 1, 6, 2, 1, 3, 2, 2, 2, 2, 2, 1, 2, 4, 5, 2, 3, 3, 2, 1, 2, 2, 1, 1, 2, 1, 6, 1, 1, 1, 2, 1, 5, 1, 6,;void delay(uchar t) /延时子函数,控制发音的时间长度uchar t1;unsigned long t2;for(t1=0; t1t; t1+) /嵌套循环, 共延时t个半

20、拍 for(t2=0; t28000; t2+); /延时期间, 可进入T0中断去发音void automatic_music(uchar j) /j表示第n+1首曲 uchar k, i; for(i=0;musicji!=0;i+=3) if(flag)break;k = musicji+7*musicji+1-1; /第i个是音符, 第i+1个是第几个八度 timer0h = FREQHk; /从数据表中读出频率数值 timer0l = FREQLk; /实际上, 是定时的时间长度 time = musicji+2; /读出时间长度数值 TH0 = timer0h; /控制音调TL0 =

21、 timer0l;TR0 = 1; /启动T0, 由T0输出方波去发音delay(time); /控制时间长度 TR0 = 0; /关闭T0, 停止发音 /发出一个音符 void init_break()TMOD=0x11;ET0=1;IT0=1;EX0=1;ET1=1;EA=1;void key_play()uchar value;P2=0xf0;value=P2;if(value!=0xf0)P2=0xfe; if(H1=0)key_value=3; if(H2=0)key_value=7; if(H3=0)key_value=11; if(H4=0)key_value=15; P2=0x

22、fd;if(H1=0)key_value=2; if(H2=0)key_value=6; if(H3=0)key_value=10;if(H4=0)key_value=14;P2=0xfb;if(H1=0)key_value=1; if(H2=0)key_value=5; if(H3=0)key_value=9; if(H4=0)key_value=13; P2=0xf7;if(H1=0)key_value=0; if(H2=0)key_value=4; if(H3=0)key_value=8;if(H4=0)key_value=12;TH1= FREQHkey_value; TL1= FRE

23、QLkey_value; TR1=1;/启动定时器T0,发音delay(2);TR1=0; void int0_dispose()if(flag)switch(state)case 0:hand_play=1; break;case 1: song =0 ;hand_play=0; break;case 2:song =1 ;hand_play=0;break;case 3: song =2 ;hand_play=0;break;flag=0;void main()init_break();while(start);while(1)int0_dispose();if(hand_play)key

24、_play();elseautomatic_music(song);void int0()interrupt 0flag=1;state=P1; /保存中断源void t0int() interrupt 1 /T0中断程序,控制发音的音调TR0 = 0; /先关闭T0hummer = !hummer; /输出方波, 发音 TH0 = timer0h; /下次的中断时间, 这个时间, 控制音调高低TL0 = timer0l;TR0 = 1; /启动T0void t1int() interrupt 3TR1=0;hummer = hummer;TH1= FREQHkey_value; TL1= F

25、REQLkey_value;TR1=1;总结经过一个多个月的努力,简易电子琴的电路设计成功了,简易电子琴的设计有众多的方法,此次选择了以单片机为基础的简易电子琴历,当然这和我们所学的专业有很大的关系,首先我们所学的课程中有关电子硬件的知识占了多数,在大学期间学习了数字逻辑、单片机原理等基础电子有关知识。 基于单片机原理的电子琴大大简化了以前传统的音乐产生电路,使得元件得到减少,生产成本降低而且性能也得到了提高,并且耗能也降低了。以单片机基础铺以外部设备设计的简易电子琴,它可以被制造成一个电子产品,应用方便,可以广泛的应用与我们的日常生活中。伴随着科技水品的提高,电子产品会朝着节能、使用寿命长,

26、故障发生频率低、体积小、功能强大等方面迅踊发展,而单片机的发展必然会促进其发展,在不久的将来,高性能的单片机系统会在电子领域得到广泛应用,所以现在对单片机进行初步的研究对以后个人的发展很有帮助。我通过收集、查阅与发声原理、声音的产生电路有关的文献资料以及仿真调试软件的使用使我对单片机的应用前景有了深刻的了解。 致 谢简易电子琴设计成功了,这期间经历了很多辛酸、困惑,虽然如此,但更多的还是奋进和学习的乐趣,这里面不仅有同学的帮助,还有老师的指导,在这里我特别要向我的导师曾一江老师致以深深的谢意。是她给了我这样一个有意义的课题,是她在我设计课题时遇到问题给我讲解,是她给了我学习锻炼的好机会。 通过这次设计把单片机、电子等有关知识进一步加深并运用到实践中,培养了我们的动手能力,从现在就开始培养我们的独立设计能力,为我们在以后的工作中打下良好的基础。在这我十分感谢成都电子机械高等专科学校的老师们给了我们这次机会。由于本人知识程度有限,其中也许有不妥之处,还请老师批评指正。参考文献 :单片机原理及接口技术 教材单片机c语言应用100列 王东峰 电子工业出版社单片机c语言应用程序设计 马忠梅 北京航空航天大学出版单片机系统的PROTURS 设计与仿真 张靖武 电子工业出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号