基于51单片机的16键电子琴课程设计报告.docx

上传人:b****9 文档编号:154241 上传时间:2022-10-04 格式:DOCX 页数:25 大小:256.13KB
下载 相关 举报
基于51单片机的16键电子琴课程设计报告.docx_第1页
第1页 / 共25页
基于51单片机的16键电子琴课程设计报告.docx_第2页
第2页 / 共25页
基于51单片机的16键电子琴课程设计报告.docx_第3页
第3页 / 共25页
基于51单片机的16键电子琴课程设计报告.docx_第4页
第4页 / 共25页
基于51单片机的16键电子琴课程设计报告.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于51单片机的16键电子琴课程设计报告.docx

《基于51单片机的16键电子琴课程设计报告.docx》由会员分享,可在线阅读,更多相关《基于51单片机的16键电子琴课程设计报告.docx(25页珍藏版)》请在冰豆网上搜索。

基于51单片机的16键电子琴课程设计报告.docx

单片机原理及系统课程设计报告

单片机原理及系统课程设计

评语:

考勤10分

守纪10分

过程30分

设计报告30分

答辩20分

总成绩(100)

专业:

自动化

班级:

姓名:

学号:

指导教师:

兰州交通大学自动化与电气工程学院

2015年12月30日

2

基于单片机的16键电子琴

一、电子琴设计的目的、要求与设计方法

1.1设计目的

现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。

电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。

1.2设计要求

本设计主要是用AT89C52单片机为核心控制元件,设计一个微缩版的电子琴。

单片机与按键构成主控制模块,在主控制模块上设置有9个按键,分别达成不同目标。

本系统主要为了完成电子琴的三大功能:

电子琴弹奏和音乐播放及录音。

1.3电子琴设计方法

1.3.1设计工具

表1软件简介

软件名称

设计作用

KeiluVision4

编写程序与编译

PROTEUS

绘制硬件电路图、数字仿真

MicrosoftVisio

绘制程序流图与框图

1.3.2设计思路

(1)功能按键触发外部中断,以完成不同曲目的的切换。

(2)设置定时器产生不同频率的方波,I/O口输出,经功放后扬声器发声。

(3)采用4×4矩阵键盘弹奏16个音(低XI到高DO)。

二、电子琴的设计方案及原理

2.1设计总体方案

本系统采用AT89C52为主控芯片。

输入电路有16个琴键按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。

1个音乐按键用于播放音乐和切换歌曲,通过按键触发中断,重置定时器初值,于另一个扬声器中发出有效音响。

总设计框图如下图1所示。

时钟复位电路

数码管显示电路

琴键控制电路

音频播放电路

音乐切换电路

图1基于单片机的电子琴电路原理框图

2.2发声原理

利用AT89C52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。

 

计数脉冲值与频率的关系式是:

 

  N=fi÷2÷fr。

式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。

 

三、电子琴的硬件设计

基于单片机AT89C51的电子琴电路由琴键控制电路、数码管显示电路、音频播放电路、时钟-复位电路、音乐切换电路和电源电路六部分所构成。

3.1琴键控制电路

琴键控制电路作为人机联系的输入部分,也是间接控制数码显示和音频功放的重要组成部分。

键盘按照连接方式可以分为独立式和矩阵式键盘两类。

3.1.1矩阵式键盘

如图2所示为4X4矩阵式键盘电路,由一个4X4的行、列结构可以构成一个16个按键键盘。

 

矩阵中无按键按下时,行线为高电平;当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。

列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平也为高,这是识别按键是否按下的关键所在。

图2矩阵式键盘

3.1.2独立式键盘 

独立式键盘的特点是一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可判断出被按下的按键。

 

3.1.3 方案比较 

表2键盘类型比较

键盘类型

优点

缺点

独立式

电路简单,编程简单

占用I/O口线多

矩阵式

占用I/O口线较少

编程比较复杂

由于此次设计的琴键控制电路需要16个按键,故单纯从I/O口线的占用的角度比较,独立式需要占用16条I/O口线,而矩阵式却只需8条。

故选择矩阵式键盘电路比较合理。

3.2数码管显示电路

LED(Light Emitting Diode)发光二极管缩写。

LED数码管是由发光二极管构成的。

常见的LED数码管为“8”字型的,共计8段。

一般来说分共阳极和共阴极两种接法。

3.2.1LED数码管静态显示 

静态显示方式即无论多少位LED数码管,同时处于显示状态。

如果送往各个LED数码管所显示字符的段码一经确定,则相应I/O口锁存器锁存的段码输出将维持不变,直到送入另一个字符的段码为止。

3.2.2LED数码管动态显示  

静态显示方式就是无论在任何时刻只有一个LED数码管处于显示状态,即单片机采用“扫描”方式控制各个数码管轮流显示。

 

3.3.3方案比较 

对于以上两种数码管驱动电路的的优缺点比较如表3所示。

由于静态驱动方式的显示无闪烁,亮度较高,编程简单,加上本次设计的数码管显示电路只需要2个数码管,且分别接两部分管脚,故选择静态驱动方式来显示数码管更为合理。

如图3所示为数码管显示电路,采用静态驱动方式和共阳极接法。

表3数码管显示方式比较

驱动方式

优点

缺点

静态显示

显示无闪烁,亮度较高,

编程简单

数码管越多,所需的电流越大,电源的要求越高

动态显示

电路简单,数码管越多,

优势越明显

不如静态显示的亮度高, 可能出现闪烁现象

图3数码管静态显示电路

3.3音乐切换电路

通过按键拉低电平,触发中断0。

3.4音频播放电路

使用两个扬声器,一个作为琴键输出,一个作为乐曲输出。

3.5时钟复位电路

3.5.1时钟电路 

时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。

 本设计采用内部时钟方式做时钟电路。

3.5.2复位电路 

在单片机的实用系统中,一般有两种复位操作形式:

上电复位和手动复位。

 上电复位在单片机系统每次通电时执行。

手动复位在系统出现操作错误或程序运行出错时使用。

 由于本设计的需要,同时采用这两种复位方式。

整体电路图如下图4所示。

图4整体硬件设计

四、电子琴的软件设计

系统功能的实现一般包括硬件部分和软件部分,一旦硬件确定下来,软件要实现的功能也随之确定。

而为使编程思路清晰,应先绘制程序流程图。

 

4.1 系统硬件接口定义 

表4系统硬件接口定义

引脚名

接口说明

备注

P0.0~P0.7

琴键数码管与单片机通信

数码管显示电路

P2.0~P2.7

曲目数码管与单片机通信

数码管显示电路

P3.2(INT0)

外部中断源输入端

音乐切换电路

P1.0~P1.7

矩阵键盘接口

琴键控制电路

P3.0,P3.7

控制扬声器

音频播放电路

4.2主函数 

主函数流程图如图5所示。

利用模块化的思想,主函数只执行初始化函数、键盘扫码函数、音频处理函数和数码管显示函数。

图5主函数流程图

4.3初始化函数

初始化的流程框图如图6所示。

该函数对所需的I/O口、外部中断0、定时器0、定时器T1以及数码管进行初始化配置。

TMOD=0x11;//T0方式1,T1方式1

IP=0x01;//INT0中断优先级最高

EA=1;ET0=1;ET1=1;EX0=1;//允许中断

TR0=0;//关定时器0

P1=0xbf;//键盘初始化

flag=0; //标志位置0

图6初始化流程图

4.4数码管显示及音频处理函数

根据键值扫描函数读取的键码,扬声器发声并结合数码管显示出来。

图7数码管显示流程图

4.5中断函数

中断函数用到了外部中断和定时器中断。

外部中断的流程框图如图8所示,当按键按下时,外部信号触发外部中断,执行键值扫描函数,读取对应的键值。

定时中断的流程框图如图9所示,定时器溢出中断后,进行重装载初值,同时执行相应的音频控制操作。

 

4.6键值扫描函数

将输入端置为高电平,输出端置为低电平。

这样,当按键没有按下时,所有的输入端无变化,代表无键按下。

一旦有键按下,则输入线就受输出线的影响被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

流程图如图10所示。

图8外部键盘中断流程图图9定时器中断流程图

图10键值扫描流程图

五、电子琴的系统仿真

5.1部分仿真结果

表5仿真结果

按键编号

发声音调

数码管显示

备注

0

低XI

0,-

1

中DO

1,-

2

中RI

2,-

播放曲目及停止

1,2,或-

重复按切换音乐

图11音乐显示为“-”或不显示的时候,琴键按下DO有效

图12按音乐键,播放音乐1,琴键弹奏无效

5.2调试中出现的问题及解决

电子琴的设计并非一帆风顺,在这期间遇到了很多问题,下面谈几个关键的问题。

首先是数码管显示乱码的问题,原本以为是数码管字形码表的代码有错,检查几遍发现代码基没错,后来结合硬件图一看,才知道硬件图中数码管是共阳极接法,软件中的数码管字形码表是共阴极的。

其二是按键引入中断检测时遇到的问题,按音乐键后琴键无法发声和显示,浪费了很多时间,最终发现是程序的判断条件有问题。

其三是扬声器发出的音调不对,甚至没有声音,这个问题后来还是不能解决,最后放弃了LM386的功放电路,直接接扬声器,但是导致了部分琴键发声带杂音。

六、总结

在本次设计八路多功能抢答器的课设过程中,我利用AT89C52单片机及外围接口实现电子琴,利用单片机的定时器/计数器定时和计数的原理实现对弹奏和播放的功能,利用Proteus和Keil软件设计出实验电路,完成了课设的任务。

在本次课设中,我意识到将理论知识与实践相结合的重要性,对于单片机这样的课程,仅仅通过了解课本上的知识是远远不够的,我通过查资料和搜集有关文献,培养了自学能力,通过利用软件仿真和焊接电路,在很大程度上提高了我的动手能力。

我们在课设的过程中,遇到了很多问题,比如我在仿真的过程中错把共阴极数码管字模当作共阳极使用,使得数码管无法正常显示,通过查资料我明白了共阴极数码管是高电平驱动,公共端是负极,共阳极数码管是低电平驱动,公共端是正极,类似的问题出现了很多,我们通过一一排查,终于完成了课设任务,结果表明,有付出必有收获,把握重点、攻克难关,活学活用对于牢固的掌握知识,是非常有用的。

在此次课设中,我学到了很多,也通过不断纠正自己的错误,意识到自身的不足,我对知识的掌握还没有实现深层次的理解记忆,我相信这些教训都为我以后的学习奠定了良好的基础,时刻牢记团队合作、坚持与努力的重要性。

参考文献

[1]王思明,张金敏,苟军年.单片机原理及应用系统设计[M].北京:

人民邮电出版社,2008.

[2]冯育长,邹小兵.单片机系统设计与实例指导[M].西安:

西安电子科技大学出社,2004.

[3]彭伟.单片机C语言程序设计实训100

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板

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

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