目录
基于AT89C51单片机简易电子琴的设计 1
小组分工 2
一 、概述 3
1.1课程设计的
目:基于AT89C51单片机简易电子琴 3
1.2设计任务 3
1.3引言 3
1.4基于AT89C51单片机简易电子琴的设计思想 4
1.5设计功能 4
二、方案比较与论证 5
2.1 举例方案 5
2.2 系统组成 5
2.3
图 6
三、电路设计 7
3.2 矩阵键盘模块 7
3.3主控模块 9
3.4音乐设计“音调”和“节拍” 10
3.5工作原理 12
3.6创新部分 12
3.7 LED数码显示管与单片机的连接 12
3.8源程序 13
四、心得与体会 26
基于AT89C51单片机简易电子琴的设计
小组分工:
***负责:资料收集与整理,DXP2004电路板的绘制,
数码管显示
***负责:矩阵键盘上实现7种不同的音调
***负责:音乐播放实现
一 、概述
1.1课程设计的题目:基于AT89C51单片机简易电子琴
摘要:如今随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,生活中的我们都会欣赏世界名曲,作为对精神的洗礼。本
设计一个基于AT89C51单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本系统是以51系列单片机AT89C51为主控制器,附有矩阵键盘、LED显示管、扬声器组成。系统完成显示输入信息、播放相应音符等基本功能。本设计的系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:AT89C51;矩阵键盘;LED显示管;扬声器
1.2设计任务
1) 查阅相关电子琴的资料,了解熟悉单片机控制单音喇叭发声原理。
2) 利用键盘的16键,能够发出1,2,3,4,5,6,7等7个音符,具有一般演奏功能,要求按下键发声,松开则延时一段时间停止,中间再按别的键,则发出另一个音调的。
3) 存储有一首歌的音乐,设置按键按下具有自动播放已存曲目功能。
1.3引言
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k字节的可系统编程的Flash只读程序存器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。由于将多功能8位CPU和闪烁存器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C51单片机为很多嵌入式制系统提供了一种灵活性高且价廉的方案,可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
电子琴已为人们所熟知,它可以演奏出非常动听的乐曲, 它在现代音乐扮演着重要的角色。它是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。在许多专用的电子琴电路中,都采用了特殊的集成电路来完成电子电路的设计,利用专用电路产生的声音信号驱动扬声器发音,通过演奏者不同的操作,弹奏出美妙的乐曲。但是,以单片机作为主控核心,与键盘、蜂鸣器等模块组成核心主控制模块就可以达到设计一个简易电子琴的目的。
1.4基于AT89C51单片机简易电子琴的设计思想
单片机产生音乐的要素一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。因此,单片机奏乐只需弄清楚两个概念,也就是“音调”和“节拍”。音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。
一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样我们就可以利用不同的频率的组合,加上与拍数对应的延时,即可构成我们所想要的音乐了。
所以本课程设计的主要内容是用 AT89C52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、蜂鸣器等模块组成核心主控制模块,在主控模块上设有16个按键和蜂鸣器,用不同的频率和延时的时间来产生音乐的要素“音调”和“节拍”。
1.5设计功能
(1)由4X4组成16个按钮矩阵,设计成16个音,可随意弹奏想要表达的声音。
(2)设计有音乐存储,按键按下后播放。
(3)键盘矩阵识别,即矩阵扫描在数码管上可以显示矩阵键盘按下哪个按键。
二、方案比较与论证
2.1 举例方案
方案一:
用 VHDL 语言编程来实现系统整体基本原理图如下:利用我们实验室先进的数字电路实验设备,我们可以采用 VHDL 语言编程来实现。我们可以通过 VDHL 语言,对实验原理图的各个部分进行设计,通过编译,可以在计算机上下载此实验原理图,利空电路学习机上的芯片。
方案二:
利用 AT89C51 单片机为核心控制元件,以单片机作为主控核心,与键盘、蜂鸣器等模块组成核心主控制模块,在主控模块上设有16个按键和蜂鸣器来设计一个电子琴。
方案一显得比较笼统,只是把整个系统分为了若干个模块,而不牵涉到具体的硬件电路。而方案二,利用单片机4X4 组成 16 个按钮矩阵,设计成 16 个音对应音乐音符。每按一个键,单片机检测按下的那个键并查表查找相应的音符,输出到音频处理模块驱动蜂鸣器发出音符。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。所以本次设计采用方案二。
2.2 系统组成
本系统只要以51单片机为主控核心,与矩阵键盘、扬声器、LED显示管模块一起组合而成。具体如下:
2.3流程图
三、电路设计
3.1、蜂鸣器模块
单片机实验板蜂鸣器原理图如下图表1所示:
图表 1
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO 引脚输出的电流较小,单片机输出的TTL 电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。
如图一所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B 经过限流电阻R1后由单片机的P3.6引脚控制,当P3.6输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P3.6输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P3.6脚的电平来使蜂鸣器发出声音和关闭。
用延时程序或者定时器控制接蜂鸣器的端口输出频率在2KHZ左右的矩形波就能让蜂鸣器发声了。程序中改变单片机P3.6引脚输出波形的频率,就可以调整控制蜂鸣器音调,生各种不同音色、音调的声音。另外,改变P3.6输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。
3.2 矩阵键盘模块
在单片机组成的各种系统中,本次试验用的是非编码键盘,矩阵键盘。矩阵键盘:由单片机I/O口构成的行列式键盘,优点:扫描速度快,按键数量多缺点:按键间存在关联,不能级联。
矩阵式结构的键盘识别要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。
单片机实验板键盘原理图如下图表2所示:
图表 2
键盘原理图的PCB 图如图表3所示:
图表 3
独立键盘模块
独立键盘:单片机一个I/O口连接一个按键。
独立键盘的原理图如图表4所示:
图表 4
3.3主控模块
最小系统的原理图如图表5所示:
图表 5
总的原理图如图表6所示:
图表6
3.4音乐设计“音调”和“节拍”
(1)本设计的控制矩阵键盘使用定时器T0方式1的音调的计算方法如下
矩阵键盘的音调计算:
计数脉冲值与频率的关系式是:N=fj÷2÷fr
式中,N是计数值:fj是机器频率(晶体振荡器为11.0592MH时,其频率为1MHz);fr‘是想要产生的频率’。 本设计定时器工作方式1,16个键的频率
音阶对应频率(音调的频率)表如图表7所示:
图表 7
(2)节拍的计算方法
本设计使用定时器T0的中断控制播放音乐《一闪一闪亮晶晶》,T0工作方式0,
图表8列出了C音调与频率的对应关系。
1、C音调与频率的对应关系表
C音调与频率的对应关系表
音调
低1(“dao”)
低2
低3
低4
低5
低6
低7
频率
262
294
330
349
392
440
494
音调
1(中音“dao”)
2
3
4
5
6
7
频率
523
587
659
698
784
880
988
音调
高1
高2
高3
高4
高5
高6
高7
频率
1064
1175
1318
1397
1586
1760
1967
图表 8
2.定时常数C计算公式
C=
T0工作方式0.最大计数为8192,在已知定是常数为C的条件下,13位计算器的高8位和低5的初值可由以下公式设定
TH0=(8192-C)/32;
TL0=(8192-C)%32;
3.简单乐谱
继续阅读