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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于AT89C51单片机简易电子琴.docx

1、基于AT89C51单片机简易电子琴基于 AT89C51 单片机简易电子琴的设计 小组分工 一 、概述 1.1课程设计的题目:基于 AT89C51 单片机简易电子琴1.2 设计任务 1.3 引言 1.4基于 AT89C51 单片机简易电子琴的设计思想 1.5 设计功能 二、方案比较与论证 2.1 举例方案 2.2 系统组成 2.3流程图 三、电路设计 3.2 矩阵键盘模块 3.3 主控模块 3.4 音乐设计 “音调 ”和“节拍 ” 3.5 工作原理 3.6 创新部分 3.7 LED 数码显示管与单片机的连接3.8源程序 四、心得与体会 101212131426基于 AT89C51 单片机简易电子

2、琴的设计小组分工 :负责:资料收集与整理,DXP2004电路板的绘制,数码管显示负责:矩阵键盘上实现 7 种不同的音调负责:音乐播放实现、概述1.1 课程设计的题目:基于 AT89C51 单片机简易电子琴摘要:如今随着社会的发展进步, 音乐逐渐成为我们生活中很重要的一部分, 生 活中的我们都会欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于AT89C51 单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一 种新型的键盘乐器。 它在现代音乐扮演着重要的角色, 单片机具有强大的控制功 能和灵活的编程实现特性, 它已经溶入现代人们的生活中, 成为不可替代的一部 分。本系统是以51系列单

3、片机AT89C51为主控制器,附有矩阵键盘、LED显示管、扬声器组成。系统完成显示输入信息、播放相应音符等基本功能。本设计的 系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比 较高等,具有一定的实用和参考价值。关键词:AT89C51矩阵键盘;LED显示管;扬声器1)2)3)查阅相关电子琴的资料,了解熟悉单片机控制单音喇叭发声原理。利用键盘的 16键,能够发出 1,2,3,4,5,6,7等7个音符,具有一般 演奏功能,要求按下键发声,松开则延时一段时间停止,中间再按别的 键,则发出另一个音调的。存储有一首歌的音乐,设置按键按下具有自动播放已存曲目功能。1.3 引单片微型计算

4、机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。 AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS位单片机,片内含4k字节的可系统编程的Flash只读程序存器,器件采用ATME公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。由于将多功能8位CPU和闪烁存器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。 AT89C51 单片机为很多嵌入式制系统提供了一种灵活性高且价廉的方案可为您提供许多高性价比的应用场合 , 可灵活应用于各种控制领域。单片

5、机具有强大的控制功能和灵活的编程实现特性, 它已经溶入现代人们的生活中, 成为不可替代的一部分。电子琴已为人们所熟知 , 它可以演奏出非常动听的乐曲 , 它在现代音乐扮演 着重要的角色。它是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。在许多专用的电子琴电路中 , 都采用了特殊的集成电路来完成电子电路的设计 利用专用电路产生的声音信号驱动扬声器发音 , 通过演奏者不同的操作 , 弹奏出 美妙的乐曲。但是,以单片机作为主控核心,与键盘、蜂鸣器等模块组成核心主 控制模块就可以达到设计一个简易电子琴的目的。1.4 基于 AT89C51 单片机简易电子琴的设计思想单片机产生音乐的要素一般说来 ,

6、 单片机演奏音乐基本都是单音频率 ,它不包含相应幅度的谐波频率 , 也就是说不能像电子琴那样能奏出多种音色的声音。因此, 单片机奏乐只需弄清楚两个概念 , 也就是“音调”和“节拍”。 音调表示 个音符唱多高的频率 , 节拍表示一个音符唱多长的时间。一首音乐是由许多不同的音符组成的, 而每个音符对应着不同的频率, 这样我们就可以利用不同的频率的组合,加上与拍数对应的延时, 即可构成我们所想要的音乐了。所以本课程设计的主要内容是用AT89C52单片机为核心控制元件,设计个电子琴。以单片机作为主控核心,与键盘、蜂鸣器等模块组成核心主控制模块,在主控模块上设有 16 个按键和蜂鸣器,用不同的频率和延时

7、的时间来产生音乐 的要素“音调”和“节拍”。1.5 设计功能由4X4组成16个按钮矩阵,设计成16个音,可随意弹奏想要表达的声音。2)设计有音乐存储,按键按下后播放。3)键盘矩阵识别,即矩阵扫描在数码管上可以显示矩阵键盘按下哪个按键。、方案比较与论证2.1 举例方案方案一:用VHDL语言编程来实现系统整体基本原理图如下:利用我们实验室先进的 数字电路实验设备,我们可以采用 VHDL语言编程来实现。我们可以通过 VDHL语言,对实验原理图的各个部分进行设计, 通过编译,可以在计算机上下载此实 验原理图,利空电路学习机上的芯片。方案二:利用AT89C51单片机为核心控制元件,以单片机作为主控核心,

8、与键盘、蜂鸣器等模块组成核心主控制模块,在主控模块上设有 16个按键和蜂鸣器来设计一个电子琴。方案一显得比较笼统,只是把整个系统分为了若干个模块,而不牵涉到具体的硬件电 路。而方案二,利用单片机 4X4组成16个按钮矩阵,设计成 16个音对应音乐音符。每按一个键,单片机检测按下的那个键并查表查找相应的音符, 输出到音频处理模块驱动蜂鸣最终可随意弹奏想要表达的扬声器、LED显示管模块器发出音符。利用单片机产生不同频率来获得我们要求的音阶, 音乐。所以本次设计采用方案二。2.2系统组成本系统只要以51单片机为主控核心,与矩阵键盘、 一起组合而成。具体如下:单片机2.3流程图TO中断入口 峠重装TM

9、 TLQ初值 中断返回、电路设计3.1、蜂鸣器模块单片机实验板蜂鸣器原理图如下图表 1 所示:图表 1蜂鸣器发声原理是电流通过电磁线圈, 使电磁线圈产生磁场来驱动振动膜发 声的,因此需要一定的电流才能驱动它,单片机 IO 引脚输出的电流较小,单片 机输出的 TTL 电平基本上驱动不了蜂鸣器, 因此需要增加一个电流放大的电路。如图一所示,蜂鸣器的正极接到 VCC( + 5V电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由单片机的P3.6引脚控 制,当P3.6输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当 P3.6 输出低电平时,三极管导通,这样蜂鸣

10、器的电流形成回路,发出声音。因此,我们可以通过程序控制 P3.6 脚的电平来使蜂鸣器发出声音和关闭。 用延时程序或者定时器控制接蜂鸣器的端口输出频率在 2KHZ左右的矩形波就能让蜂鸣器发声了。程序中改变单片机 P3.6 引脚输出波形的频率,就可以调整控 制蜂鸣器音调,生各种不同音色、音调的声音。另外,改变 P3.6 输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。3.2矩阵键盘模块在单片机组成的各种系统中,本次试验用的是非编码键盘 ,矩阵键盘。矩阵键盘:由单片机I/O 口构成的行列式键盘,优点:扫描速度快,按键数量多缺点:按键间存在关联,不能级联。矩阵式结构的键盘识别要复杂一些,列线通过

11、电阻接正电源,并将行线所接的单片机的I/O 口作为输出端,而列线所接的I/O 口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是 低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。单片机实验板键盘原理图如下图表 2所示:键盘原理图的PCB图如图表3所示:k Ik 2k 3k &Js? Ha * 1 11 1* , 1* 1 14|a S1THT2 cI 1ePJ.JJCAL?P2 3ria TIL-IS CirJll2珀“i”GriDP3 0STCSflC?X-a?S5XPO.IJi10引计数脉冲值与频率的关系式是:

12、N=fjs更23P2.tk5F2 :R:=lm p- I讪-If+2】 r irtTO方式1的音调的计算方法如下式中,N是计数值:fj是机器频率(晶体振荡器为11.0592MH时,其频率为1, 16个键的频率1MHz); fr 是想要产生的频率。本设计定时器工作方式音阶对应频率(音调的频率)表如图表 7所示:键 kOl k02 k03 k04 k05 koe kO?kl5音 低 低 低 低 低 低 低DOREFASOLA 亠SI 咼DO频率(HQ计数值15915671396132015731047933441图表2622943303492924404941046犍 k08 k09 klO kl

13、l kl2 kl3 kl4 kl6音 中 中 中 中 中 中 中DORE MFASO LA 31raRE频率(Hz卅数值83278569966053?52446639255453?65969S7348309881174节拍的计算方法本设计使用定时器T0的中断控制播放音乐一闪一闪亮晶晶,T0工作方式0,图表8列出了 C音调与频率的对应关系。1、C音调与频率的对应关系表C音调与频率的对应关系表音调低 1 (“dao”)低2低3低4低5低6低7频率262294330349392440494音调1 (中音“dao”)234567频率523587659698784880988音调高1高2高3高4高5高6

14、高7频率1064117513181397158617601967图表82.定时常数C计算公式106 usC= 2f 4608301.085us fT0工作方式0.最大计数为8192,在已知定是常数为C的条件下,13位计算器的高8位和低5的初值可由以下公式设定TH0=(8192-C)/32;TL0=(8192-C)%32;3.简单乐谱 |1 1 5 5| 6 6 5 -| 4 4 3 3| 2 2 1 -| 5 5 4 4 | 3 3 2 -| 5 5 4 4 |3 3 2 -| 1 1 5 5 | 6 6 5 -| 4 4 3 3|2 2 1 -| 4.节拍控制本例简谱的节拍为每分钟72拍,则

15、每个节拍需时间(1000*60mS)/72=833ms“1 “为1拍,需延时833ms“2”为1/2拍,需延时833/2ms“3” 为 1/4,需延时 833/4ms3.5工作原理矩阵键盘的工作原理:通过 AT89C51单片机为核心控制元件,设计一个能发出电子音调的简易电子琴。在控制模块上设有 16个矩阵键盘按键,通过按下SI 7个低音符的声音;SI 7个中音符的声音; 当我们随意按下矩阵键矩阵键盘K01 一 K7键,可发出DO RE M FA SO LA矩阵键盘K08 K14键,可发出D0 RE M FA SO LAK15键是高音符DO的声音,K16键是高音符RE的声音。盘上的一个按键时,可

16、以发出相应的声音。本设计有一个功能选择键(选择使用矩阵键盘选择键或者选择自动播放音 乐选择键),一个矩阵键盘选择键、一个自动播放音乐选择键,通过按下功能选 择键,可以实现按键发音功能和音乐播放功能之间的切换。在矩阵按键发音的功 能下,可以通过音调选择键来选择三个不同的音阶进行发音; 在音乐播放功能下, 可以自动播放音乐。3.6创新部分当我们选择矩阵键盘选择键的时候,在矩阵按键发音的功能下,可以通过音调选择键来选择三个不同的音阶进行发音, 同时在主板的数码管上可以同时显示你在矩阵键盘上按下哪一个键。例如你按下 K01键,同时在数码管显示01这个数字。3.7 LED数码显示管与单片机的连接led数

17、码管(LED Segme nt Dis plays )是由多个发光二极管封装在一起 组成“8”字型的器件, 引线已在内部连接完成, 只需引出它们的各个笔划,公共电极。led数码管常用段数一般为 7段有的另加一个小数点,还有一种 是类似于3位“+T型。位数有半位,1 ,2,3,4,5,6,8,10位等等., led数码管根据LED的接法不同分为共阴和共阳两类, 了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异 外,编程方法也是不同的。数码管动态显示介面是单片机中应用最为广泛 的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划 a,b,c,d,e,f,g

18、,d p 的同名端连在一起,另外为每个数码管的公共极 COM增加位元选通控制电路,位元选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会 显示出字形,取决于单片机对位元选通 COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的 数码管就不会亮。透过分时轮流控制各个 LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间 为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上 各位数码管并非同时点亮,但只要扫描的速度足够快,给人的

19、印象就是一 组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的, 能够节省大量的I/O埠,而且功耗更低。由此本实验是将 P2 口通过芯片与数码管连接,以达到点亮数码管的效果。静态显示的特点是每个数码管的段选必须接一个 8位数据线来保持显示的CPU时间少,显示便于监测和控制。字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。 这种方法的优点是占用+ 5V1flanlbel11|c111L1 dpg f GND a be d GND c dp(a)图表9a b c d e f goCJ-dp o(b)3.8 源程序主函数:#include #includemusi

20、c.h #includepiano.h void main()InterruptPiano();while(1)P1=0xfe;temp=P1;temp=temp&0xf0;PlaySelect();#endif播放音乐的程序:/* #define MUSIC_GLOBALS#includemusic.h #includepiano.h/*#define dao 523#define re 587#define mi 659#define fa 698#define sao 784#define la 880#define xi 987unsigned int code f=dao,dao,s

21、ao,sao,la,la,sao,fa,fa,mi,mi, re,re,dao, sao,sao,fa,fa, mi,mi,re, sao,sao,fa,fa, mi,mi,re, dao,dao,sao,sao, la,la,sao, fa,fa,mi,mi, re,re,dao, 0xff;unsigned char code JP=4,4,4,4,4,4,8,4,4,4,4,4,4,8,4,4,4,4,4,4,8,4,4,4,4,4,4,8,4,4,4,4, 4,4,8 ,4,4,4,4,4,4,8, ;/*延时子程序 2OOms*/void Musicdelay()unsigned c

22、har i,j;for(i=0;i250;i+)for(j=0;j250;j+)/*定时器TO的中断服务子程序,使P3.6引脚输出音频的方波*/void TimeO(void) interrupt 1 using 1 sound=!sound;THO=(8192-C)/32;TLO=(8192-C)%32;/*主函数*/void MusicInit()EA=1;ETO=1;TMOD=0x00;while(Music_count=1) i=0;if(key1=0)Music_count=0;Piano_count=0;while(fi!=0xff&Music_count=1)if(key1=0)

23、Music_count=0;Piano_count=0;C=460830/fi;TH0=(8192-C)/32;TL0=(8192-C)%32;TR0=1;for(j=0;j0;x-)for(y=110;y0;y-);/*中断初始化函数*/ void InterruptPiano()TMOD=0x01;TH0=0xd8;TL0=0xf0;EA=1;ET0=1;TR0=0;/*选择电子琴或者音乐播放函数*/void PlaySelect()if(PianoKey=0)Piano_count=1;if( Piano_count=1&Music_count=0)Piano();if(MusicKey=0)Music_count=1;if(Music_count=1&Piano_count=0)MusicInit();if(key1=0)Music_count=0;Piano_count=0;/*键盘驱动电子琴函数*

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

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