基于单片机的电子琴设计.doc

上传人:龙*** 文档编号:999201 上传时间:2018-11-12 格式:DOC 页数:18 大小:713.50KB
下载 相关 举报
基于单片机的电子琴设计.doc_第1页
第1页 / 共18页
基于单片机的电子琴设计.doc_第2页
第2页 / 共18页
基于单片机的电子琴设计.doc_第3页
第3页 / 共18页
基于单片机的电子琴设计.doc_第4页
第4页 / 共18页
基于单片机的电子琴设计.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、1郑州航空工业管理学院单片机课程设计说明书14 届 电子信息工程 专业 82 班级题 目 学 号 姓 名 指导教师 二 一六年 十二 月 二十三 日2目 录摘要3一、电子琴的基本原理41.设计的内容2.整体的工作原理3.发音原理二、电子时钟的硬件设计51.硬件原理图2.键盘设计3.时钟电路4.复位电路5.元件清单6.数码管显示部分7.发音部分设计8.硬件调试三、电子时钟的软件设计91.键盘扫描程序2.功能转移程序3.琴键处理程序4.自动播放歌曲程序5.程序流程图6.设计源程序四、课程设计总结与指导教师评语183摘要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不

2、会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等也很好奇。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用 AT89S51 单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有 16 个按键和扬声器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系

3、统可靠,性价比较高等,具有一定的实用和参考价值。关键词:AT89S51 单片机 音色 节拍器 自动放音41、电子琴的基本原理1、本次设计的内容是:利用所给键盘的 16,15,14,13,12,11,10,9 七个键,能够发出 7个不同的音调,而且 8,7,6 按键可以自动播放歌曲,要求按键按下时发声,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调,p1.7 控制着蜂鸣器发出声音,在此基础上我们组又增加了数码管显示部分,当发出 1,2,3,4,5,6,7 音调时通过 p2 口控制数码管是分

4、别显示1,2,3,4,5,6,7 当播放音乐时数码管分别显示 1,2,3 。2、整体工作原理:采用 AT89C52单片机作为主控芯片,设置键盘、蜂鸣器等外围器件,另外还用到一些简单器件如:两位数码管,和 NPN 型三极管及电阻等。利用按键实现音符和音调的输入;两位的数码管进行被操作的按键显示;用 NPN 型三极管8550实现低音频功率放大;最后用蜂鸣器发音。AT89C52单片机是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。同时具有强大的控制功能和灵活的编程实现特性,由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。具有经济

5、可行性、技术可行性、实物应用性。 3、 发 音 原 理 :若 要 产 生 音 频 脉 冲 , 只 要 算 出 某 一 音 频 的 周 期 ( 频 率 ) ,再 将 此 周 期 除 以 2, 即 为 半 周 期 的 时 间 。 利 用 定 时 器 计 时 半 周 期 时 间 ,每 当 计 时 终 止 后 就 将 P1.7反 相 , 然 后 重 复 计 时 再 反 相 。 就 可 在 P1.7引 脚 上 得 到 此 频 率 的 脉 冲 。 利 用 STC89C52的 内 部 定 时 器 使 其 工 作计 数 器 模 式 ( MODE1) 下 , 改 变 计 数 值 TH0及 TL0以 产 生 不

6、同 频 率的 方 法 产 生 不 同 音 阶 。 计 算 举 例 , 频 率 为 523Hz, 其 周 期 T 1/523 1912 s, 因 此只 要 令 计 数 器 计 时 956 s/1 s 956, 每 计 数 956次 时 将 I/O 反 相 ,就 可 得 到 中 音 DO( 523Hz) 。 计 数 脉 冲 值 与 频 率 的 关 系 式 是 :N fi2fr, 式 中 , N 是 计 数 值 ; fi 是 机 器 频 率 ( 晶 体 振 荡 器 为12MHz 时 , 其 频 率 为 1MHz) ; fr 是 想 要 产 生 的 频 率 。 其 计 数 初 值 T的 求 法 如 下

7、 : T 65536 N 65536 fi2fr例 如 : 设 K 65536, fi 1MHz, 求 中 音 DO( 261Hz) 。T 65536 N 65536 fi2fr 65536 10000002fr 65536 500000/fr, 中 音 DO 的 T 65536 500000/523 64580 5STC89C52单 片 机 为 12MHZ 晶 振 , 中 音 符 与 计 数 T0相 关 的 计 数 值 如 表所 示 :用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。 2、电子时钟的硬件设计1、硬件

8、原理图:音符 频率(HZ) 计数值(T 值) 音符 频率(HZ) 计数值(T 值)低 1DO 262 63628 #4FA# 740 64860 #1DO# 277 63737 中 5SO 784 64898低 2RE 294 63835 #5SO# 831 94934#2RE# 311 63928 中 6LA 880 64948低 3MI 330 64021 #中 6LA# 932 64494低 FA 349 64103 中 7SI 968 65030#4FA# 370 64185 低 1DO 1046 65058低 SO 392 64260 #1DO# 1109 65085#5SO# 41

9、5 64331 高 2RE 1175 65110低 6LA 440 64400 #2RE# 1245 65134#6LA# 466 64463 高 3MI 1318 65157低 7SI 494 64524 高 4FA 1397 65178中 1DO 523 64580 #4FA# 1490 65198#1DO# 554 64633 高 5SO 1568 65217中 2RE 587 64633 #5SO# 1661 65235#2RE# 622 64884 高 6LA 1760 65252中 3MI 659 64732 #6LA# 1865 65268中 4FA 698 64820 高 7S

10、I 1967 65283 6本系统有主控芯片 STC89C52、发音单元、显示模块、按键模块组成。硬件电路要以单片机作为主控芯片,实现按键输入音符和音调,四位数码管的显示以及低音频功率放大和蜂鸣器发音。2、键盘设计单片机系统中,若按键较多时,通常采用矩阵式(也称行列式)键盘。矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多 I/O 口。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V 上当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是

11、识别按键是否按下的关键。7图-矩阵键盘3、时钟电路 单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚 Xl 和 X2 跨接石英晶体和两个补偿电容构成自激振荡器,选择 12MHz 频率的石英晶体,补偿电容通常选择 20pF 左右的瓷片电容。4、复位电路单片机小系统常采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。上电自动复位通过电容 C3 充电来实现。手动按键复位是通过按键将电阻 R1 与 VCC 接通来实现。5、元件清单6、 数码管显示部分当发出 1,

12、2,3,4,5,6,7 音调时通过 p2 口控制数码管是分别显示1,2,3,4,5,6,7 当播放音乐时数码管分别显示 1,2,3 。7、发音部分设计如下图所示,发音电路是由蜂鸣器、三极管、上拉电阻构成。由三极管来驱动扬声器发音的,同时加上拉电阻增强驱动电流,提高驱动能力。 8图 4 发音电路8、硬件调试硬件调试主要是针对单片机部分进行的调试。在上电之前,先确保电路中不存在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况的任务。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没

13、有开路以及短路的现象出现。在确保硬件电路正常且无异常情况(断路或短路)的情况下方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确,在本次设计中,上电调试主要是检测单片机控制部分、数码管点亮部分、和音频转换电路硬件调试,3、电子时钟的软件设计1、键盘扫描程序:检测是否有按键按下,有按键按下则记录按下键的键值,并跳转至功能转移程序;无按键按下,则返回键盘扫描程序继续检测。 2、功能转移程序:对检测到的按键值进行判断,是琴键则跳转至琴键处理程序,是功能键则跳转至相应的功能程序,我们设计的功能程序有两种,即音色调节功能和自动播放乐曲的功能。 3、琴键处理程序:根据检测到的按键值,

14、查询音调表,给计时器赋值,使发出相应频率的声音。 4、自动播放歌曲程序:检测到按键按下的是自动播放歌曲功能键后执行该程序,电子琴会自动播放事先已经存放的歌曲,歌曲播放完毕之后自动返回至键盘扫描程序,继续等待是否有按键按下。5、程序流程图10开始初始化W h i l e 1有键盘按下真的有键盘按下吗键盘扫描处理根据不同的扫描值赋值于 K e y根据 K e y 值做相应程序处理YNN再次从新扫描结束延时一段时间Y图 5 流程图6、设计源程序: /*说明*曲谱存贮格式 unsigned char code MusicName音高,音长,音高,音长., 0,0; 末尾:0,0 表示结束(Import

15、ant)音高由三位数字组成:个位是表示 17 这七个音符 ;十位是表示音符所在的音区:1-低音,2-中音,3- 高音;百位表示这个音符是否要升半音: 0-不升, 1-升半音。音长最多由三位数字组成: 个位表示音符的时值,其对应关系是: |数值 (n): |0 |1 |2 |3 | 4 | 5 | 6 |几分音符: |1 |2 |4 |8 |16 |32 |64 音符=2n十位表示音符的演奏效果(0-2): 0-普通,1-连音,2-顿音11百位是符点位: 0-无符点,1-有符点调用演奏子程序的格式Play(乐曲名,调号,升降八度,演奏速度);|乐曲名 : 要播放的乐曲指针,结尾以(0,0)结束;

16、|调号 (0-11) : 是指乐曲升多少个半音演奏;|升降八度(1-3) : 1:降八度, 2:不升不降, 3:升八度;|演奏速度(1-12000): 值越大速度越快;#define _SOUNDPLAY_H_REVISION_FIRST_#include /*#define SYSTEM_OSC 12000000 /定义晶振频率 12000000HZ#define SOUND_SPACE 4/5 /定义普通音符演奏的长度分率,/每 4 分音符间隔#define uchar unsigned char sbit P2_0 = P20;sbit P2_1 = P21;sbit P2_2 = P2

17、2;sbit P2_3 = P23;sbit P2_4 = P24;sbit P2_5 = P25;sbit P2_6 = P26;sbit P2_7 = P27;sbit BeepIO = P17; /定义输出管脚uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; /原始频率表unsigned char code SignTab7 = 0,2,4,5,7,

18、9,11 ; /17 在频率表中的位置unsigned char code LengthTab7= 1,2,4,8,16,32,64 ;unsigned char Sound_Temp_TH0,Sound_Temp_TL0; /音符定时器初值暂存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1; /音长定时器初值暂存/*void delay(uchar i)uchar j,k; for(j=i;j0;j-)for(k=125;k0;k-);void InitialSound(void)BeepIO = 1;Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256; / 计算 TL1 应装入的初值 (10ms 的初装值)Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256; / 计算 TH1 应装入的初值 TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11;

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。