课程设计任务书-基于51单片机的简易电子琴设计

上传人:平*** 文档编号:10571092 上传时间:2017-10-09 格式:DOC 页数:12 大小:192.52KB
返回 下载 相关 举报
课程设计任务书-基于51单片机的简易电子琴设计_第1页
第1页 / 共12页
课程设计任务书-基于51单片机的简易电子琴设计_第2页
第2页 / 共12页
课程设计任务书-基于51单片机的简易电子琴设计_第3页
第3页 / 共12页
课程设计任务书-基于51单片机的简易电子琴设计_第4页
第4页 / 共12页
课程设计任务书-基于51单片机的简易电子琴设计_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《课程设计任务书-基于51单片机的简易电子琴设计》由会员分享,可在线阅读,更多相关《课程设计任务书-基于51单片机的简易电子琴设计(12页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计课程设计名称:单片机课程设计 专 业 年 级:电子信息科学与技术学 生 姓 名: 学 号: 指 导 教 师: 课程设计时间:2013.9.30-2013.10.7 10 级电科 专业课程设计任务书学生姓名 专业班级 学号题 目 51 单片机的简易电子琴设计课题性质 工程设计 课题来源 自拟指导教师 同组姓名主要内容设计一个 51 单片机系统,实现简易电子琴操作的电路。要求:1 设计 51 单片机最小系统;2. 设置至少 10 个按键,能发出 do re mi fa sol la SI DO;能播放示范曲;3. 能够调节低音、高音和中音。任务要求1 根据功能要求选择设计方案,并进行

2、论证。2 画出电路的总体方框图和电路原理图。3 说明系统工作原理,对系统进行调试。4 写出课程设计报告。参考文献1 51 单片机 C 语言教程 郭天祥 电子工业出版社2 电路邱关源 高等教育出版社3 百度审查意见指导教师签字: 教研室主任签字: 年 月 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页一、设计任务及要求 1. 设计 51 单片机最小系统,实现简易电子琴操作的电路;2. 设置至少 10 个按键,能发出 do re mi fa sol la SI DO;能播示范曲;3. 能够调节低音、高音和中音。根据功能要求选择设计方案,并进行论证。4.画出电

3、路的总体方框图和电路原理图。5.说明系统工作原理,对系统进行调试。二、系统方案设计 1.采用以 STC89C52 单片机为核心的控制方案 STC89C52 是一种低功耗、高性能的 8 位 COMS 微控制器,具有 8KB 的可编程 Flash 存储器,具有在线编程可擦除技术,当对系统进行调试时,由于程序的错误修改或对对程序新增功能需要烧入程序时,不需要对芯片多次插拔,所以不会造成对芯片的损坏,且方便灵活。 基于以上因素本设计选用单片机 STC89C52 作为本设计的核心元件,利用单片机灵活的编程设计和丰富的 I/O 端口,及其控制的准确性,实现基本的电子琴功能。在单片机的外围接 8 个按钮用于

4、输入控制,其中第 8 个按钮用来播放一小段音乐。在外接 8 个发光二极管用来指示音乐的节拍等。2.设计原理主要利用单片机中的定时器中断、LED 显示、以及扬声器实现了演奏和显示功能。针对声音有音阶、音调和音长三种基本特性,通过对定时器 T0 送入不同的初值,调节 T0 的溢出时间,输出频率可控的方波,从而控制不同音阶的音调高低。而对于音长的控制,则可以向定时器 T1 送入一个固定初值,通过控制定时器中断循环的次数,来实现对发音时间长短的控制。对于音符和曲目的显示,主要通过读入键值,判断所选曲目或音符,输出到 LED 上显示。我们主要使用单片机设计简易电子琴,利用单片机产生不同频率来获得我们要求

5、的音阶。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器 T0 来产生这样方波频率信号。3STC89C52 系列最小机系统设计 A时钟电路设计 时钟电路用于产生 STC89S52 单片机工作时所必须的控制信号。STC89S52 单片机的内部电路正是在时钟信号的控制下,严格地按时序执行指令进行工作。 STC89C52 单片机各功能部件的运行都以时钟控制信号为准,有条不紊、一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片

6、机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。 本设计中的时钟电路选择 2 个 30pF 的电容、1 个震荡频率为 11.0592Hz 的石英晶体,构成内部时钟晶体电路如图 3-1 所示B复位电路设计 STC89C52 的复位是由外部的复位电路实现的复位是单片机的初始化操作,只需给 STC89S52 的复位引脚 RST 加上大于两个机器周期(即 24 个时钟震荡周期)的高电平就可使 STC89C52 复位。如图 3-2 所示.当 STC89C52 进行复位时,PC 初始化为 0000H,使 STC89C52 单片机从程序储存器的0000H 单元开始执行程序

7、。除了进入系统的正常初始化之外,当程序运行出错或操作错误使系统处于“死锁”状态时,也需按复位键即 RST 脚为高电平,使 STC89C52 摆脱“跑飞”或“死锁”状态而重新启动程序。复位电路通常采用上电复位和按钮复位两种方式。 本设计中的复位电路选择 1 个10uF 的电容、1 个 10K,1 个 2K 的电阻、以及 1 个复位开关4. 发音电路接线图 发音电路中包含一个蜂鸣器。在本设计中,用单片机 P3.3 口来控制发音装置,提供发音信号,经 LM386 放大之后送给蜂鸣器发出音乐。图 4-4 为发音装置接线图5. 键盘电路设计 电子琴键盘采用独立式键盘。其特点是一键一线,各键相互独立,每个

8、按键各接一条 I/O 口线,通过检测 I/O 口输入线的电平状态,可以很容易的判断哪个按键被按下,如图 4-6 所示6.发音原理 由于本系统可以产生各种频率的声音,所以可由喇叭发出“DO” 、 “RE”、 “ME”的音阶。系统中的定时器 O 工作于模式 0,计时时长可根据所发音的频率而定,而由频率值推得的定时器计数初值。一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率。我们可以利用单片机的定时/计数器 T0 来产生这样方波频率信号。 若要产生音频脉冲,只要算出某一音频的周期(1/频率) ,再将此周期除以 2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将 P3.3 反

9、相,然后重复计时再反相。就可在 P3.3 引脚上得到此频率的脉冲。利用 AT89C51 的内部定时器使其工作计数器模式(MODE1)下,改变计数值 TH0 及 TL0 以产生不同频率的方法产生不同音阶,例如,频率为 523Hz,其周期 T1/5231912s,因此只要令计数器计时 956s/1s956,每计数 956次时将 I/O 反相,就可得到中音 DO(523Hz) 。 计数脉冲值与频率的关系式(如式 4-1 所示)是: Nfi2fr 4-1 式中,N 是计数值;fi 是机器频率(晶体振荡器为 12MHz 时,其频率为 1MHz) ;fr 是想要产生的频率。 其计数初值 T 的求法如下:

10、T65536N65536fi2fr 例如:设 K65536,fi1MHz,求低音 DO(261Hz) 、中音 DO(523Hz) 、高音 DO(1046Hz)的计数值。 T65536N65536fi2fr6553610000002fr65536500000/fr 低音 DO 的 T65536500000/26263627 中音 DO 的 T65536500000/52364580 高音 DO 的T65536500000/104665059 单片机 12MHZ 晶振,高中低音符与计数 T0 相关的计数值如下表所示7.系统主程序流程图 主程序如下:#include#includesbit beer

11、=P33;/蜂鸣器sbit P33=P33;int num,count;int code lab=61719,62435,62506,62679,62985,63263,63512,63628,63835,64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65070;int code Song=0x12,50,0x12,50,0x12,100,0x12,50,0x12,50,0x12,100,0x10,50,0x12,50,0x13,15,0x12,25,0x10,25,0x0f,75,0x10,75,0x12,

12、50, 0x12,75,0x10,75,0x12,75,0x10,37,0x0f,37,0x0e,75,0x10,75,0x0f,150,0x10,100,0x10,100,0x0f,200,0x0c,100,0x0e,100,0x0f,75,0xff,100,0x13,25,0x13,25,0x12,75,0x10,25,0x13,25,0x12,50,0x12,50,0x10,50,0x0f,50,0x10,50,0x12,75,0xff,75,0xff,75,0x12,65,0x10,65,0x0f,65,0x10,65,0x12,65,0x10,65,0x0f,65,0x10,65,0

13、x0c,65,0x0e,65,0x0f,65,0x10,65,0x0e,100,0xff,100,0xff,100,0x00,0x00;int code table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;int code table2=0x7e,0xbd,0xdb,0xe7;void init() /计数器终端初始化num=0;TMOD=0x11;TH0=0xff; TL0=0xff;TH1=0xD8; /装初值TL1=0xEF;EA=1;ET0=1; ET1=1;void delay(int z) /延时子程序int x,y;for(x=z;x0;x

14、-)for(y=110;y0;y-); void inter() interrupt 1 /计数器 0TH0=labnum/256;TL0=labnum%256;beer=!beer;void timer1() interrupt 3 /计数器 1TH1=0xD8;/装初值TL1=0xEF;count+;void Play_Song() /放歌子程序unsigned char Temp2;unsigned int Addr,a=0;count=0;while(1)num=SongAddr; Addr+;TH0=labnum/256;TL0=labnum%256;if(num=0xFF) /休止

15、符Temp2=SongAddr+;TR1=0;delay(Temp2);else if(num=0x00) /歌曲结束符return;elseTemp2=SongAddr+;P1=table2a;a+;if(a=4)a=0;TR1=1;delay(1.1*Temp2); void sound(unsigned char a) /按键发声子程序switch(a) case 0xfe:num=14;P1=table0;break;case 0xfd:num=15;P1=table1;break;case 0xfb:num=16;P1=table2;break;case 0xf7:num=17;P1=table3;break;case 0xef:num=18;P1=table4;break;case 0xdf:num=19;P1=table5;break;case 0xbf:num=20;P1=table6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号