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

下载本文档

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

文档简介

1、单片机原理与应用课程设计报告基于单片机的简易电子琴设计专业:学号:姓名:2015-12-25一、课题名称基于单片机的简易电子琴设计二、任务要求1、4x4键盘矩阵识别,即矩阵扫描,显示当前的音符。2、不同频率音符播放,可以通过按键控制16种发音。三、任务分析1、以AT89C51单片机为核心控制元件,与键盘,扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。2、从电路原理图,主要芯片、模块原理及各模块的程序等方面入手设计。3、效果按下键盘矩阵中的按键会是数码管显示当前按键,扬声器播放对应的音符。四、设计方案1、硬件方案本系统只要以51单片机为主控核心,与矩阵键盘、扬声器、LED显

2、示管模块一起组合而成。具体如下:表1.简易电子琴硬件方案数码管单片机矩阵键盘扬声器2、软件方案仿真使用Proteus软件,可以将电子琴仿真实验形象化,帮助我们学习。仿真原理图一共分为四个部分,AT89C51单片机及其复位电路、时钟电路部分,4x4矩阵键盘部分,LED显示管部分,扬声器部分。所需元器件有:AT89C51(51单片机),7SEG-COM-AN-BLUE(蓝色7段数码管)BUTTON(按键),CAP(电容),CRYSTAL(晶振),MINELECT100U10V(电解电容)RESPACK-8(有公共端电阻排),RT0805FRE071KL(电阻),SOUNDER(扬声器)五、具体实现

3、1、硬件电路图及工作原理描述 本系统由键盘矩阵、LED显示管、扬声器这几个部分组成,LED显示管显示当前按键,扬声器发出对应音符。硬件总体设计图如下:图1.硬件总体原理图LED显示模块如图所示,利用AT89S51单片机的P0端口的P0.0P0.7连接到一个七段数码管的ah的笔段上,数码管的公共端接电源。图2.LED显示模块矩阵扫描显示当前按键模块如下:图3.矩阵扫描模块矩阵扫描扬声器发出对应音符模块如下:图4.扬声器模块单片机时钟电路,复位电路如下:图5.时钟电路、复位电路2、软件流程图及对应实现程序本系统的软件流程图如下: 表2.软件总体流程图开始模块初始化发送扫描码有键按下 否扫描键盘矩阵

4、 是停止播放显示按键启动定时器根据KEY发音延时结束 七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。 LED数码管的ga七个发光二极管因加零电压而发亮,因加正电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码。本系统按键显示模块软件流程图如下: 表3.按键模块软件流程图开始模块初始化有键按下 是 扫描键盘矩阵 否显示按键结束 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单

5、片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。 利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T1/5231912s,因此只要令计数器计时956s/1s956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。计数脉冲值与频率的关系式是:Nfi÷2÷fr 2-1式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。其计数初值T的求法如下:T65536N655

6、36fi÷2÷fr例如:设K65536,fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T65536N65536fi÷2÷fr655361000000÷2÷fr65536500000/fr低音DO的T65536500000/26263627中音DO的T65536500000/52364580高音DO的T65536500000/104665059本系统按键发出对应音符模块软件流程图如下: 表4.扬声器模块流程图开始模块初始化有键按下 是扫描键盘矩阵 否启动定时器根据KEY发音结束Keil

7、软件程序:#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar temp,num;uint x,y;sbit bell=P30;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff, ;uint code yy=64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968

8、,65030,65058,65110,65157,65178, ;void delay(uint z)for(x=z;x>0;x-)for(y=110;y>0;y-);void timer0() interrupt 1 TH0=yynum/256;TL0=yynum%256;bell=bell;void display(num) P0=tablenum; void keyscan()P1=0xfe;temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P1;temp=temp&0xf0;if(temp!=0xf0)t

9、emp=P1;switch(temp)case 0xee:num=0; break;case 0xde:num=4; break;case 0xbe:num=8; break;case 0x7e:num=12; break;P1=0xfd;temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P1;temp=temp&0xf0;if(temp!=0xf0)temp=P1;switch(temp)case 0xed:num=2; break;case 0xdd:num=6; break;case 0xbd:num=10; brea

10、k;case 0x7d:num=14; break; P1=0xfb;temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10);temp=P1;temp=temp&0xf0;if(temp!=0xf0)temp=P1;switch(temp)case 0xeb:num=2; break;case 0xdb:num=6; break;case 0xbb:num=10; break;case 0x7b:num=14; break;P1=0xf7;temp=P1;temp=temp&0xf0;if(temp!=0xf0)delay(10);

11、temp=P1;temp=temp&0xf0;if(temp!=0xf0)temp=P1;switch(temp)case 0xe7:num=3; break;case 0xd7:num=7; break;case 0xb7:num=11; break;case 0x77:num=15; break; void main()bell=0;EA=1;ET0=1;TR0=0;TMOD=0x01;num=16;P0=tablenum; while(1)P1=0xf0;if(P1!=0xf0)keyscan();display(num);TR0=1;elseTR0=0;delay(2); 六、

12、仿真、实验验证过程及硬件结果、现象1、按照设计要求在Proteus软件上做出仿真电路。2、利用Keil软件编写相应的单片机程序,以实现硬件仿真电路的功能。3、仿真结果截图如下:图6.Proteus仿真结果七、总结(体会) 通过这次课程设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放对应的音符。但本设计音频效果不是很好。不足之处有:1.可弹奏的音符数较少,只能在一定范围内满足用户需要2.音量不可调。 我的综合设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获

温馨提示

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

评论

0/150

提交评论