基于51单片机电子琴设计课程设计

上传人:第*** 文档编号:61115511 上传时间:2018-11-24 格式:DOCX 页数:22 大小:404.50KB
返回 下载 相关 举报
基于51单片机电子琴设计课程设计_第1页
第1页 / 共22页
基于51单片机电子琴设计课程设计_第2页
第2页 / 共22页
基于51单片机电子琴设计课程设计_第3页
第3页 / 共22页
基于51单片机电子琴设计课程设计_第4页
第4页 / 共22页
基于51单片机电子琴设计课程设计_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《基于51单片机电子琴设计课程设计》由会员分享,可在线阅读,更多相关《基于51单片机电子琴设计课程设计(22页珍藏版)》请在金锄头文库上搜索。

1、目录前言2第1章 基于51单片机的电子琴设计31.1 电子琴的设计要求31.2 电子琴设计所用设备及软件31.3 总体设计方案3第2章 系统硬件设计52.1 琴键控制电路52.2 音频功放电路62.3 时钟-复位电路62.4 LED显示电路62.5 整体电路6第3章 电子琴系统软件设计73.1 系统硬件接口定义73.2 主函数83.2.1 主函数程序83.3 按键扫描及LED显示函数93.3.1 键盘去抖及LED显示子程序103.4 中断函数113.4.1 中断程序12第4章 电子琴和调试124.1 调试工具124.2 调试结果134.3 电子琴设计中的问题及解决方法14第5章 电子琴设计总结

2、15参考文献16附录17前言音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。 如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色 )展示的乐队音响效果的特点。结合电子琴自身强大的功能及独特的优点来进行音

3、乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力。 目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备。以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬

4、件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值。这就为电子琴的普及提供了方便。 二、电子琴设计要求 本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成2大功能:音乐自动播放、电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。第1章 基于51单片机的电子琴设计1.1 电子琴的设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、

5、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成的功能:电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。本设计的电子琴有以下要求:1. 用键盘作出电子琴的按键,共7个,每键代表1个音符。各音符按照符合电子琴的按键顺序排列;2. 利用五彩小灯显示有按键按下及相对应的位置。 3. 达到电子琴的基本功能,可以用弹奏出简单的乐曲;1.2 电子琴设计所用设备及软件本设计除了需要计算机,还会用到两款软件:仿真软件Proteus、编程软件Keil uVision4。1. 仿真软件Proteus的简介Proteu

6、s软件具有其它EDA工具软件的功能,诸如:原理布图、PCB自动或人工布线、SPICE电路仿真。除此之外还有一些革命性的特点:互动的电路仿真、仿真处理器及其外围电路。所实现的功能:数字电路仿真2. Keil uVision4的简介uVision4在uVision3 IDE的基础上,增加了更多大众化的功能:多显示器和灵活的窗口管理系统;系统浏览器窗口的显示设备外设寄存器信息;调试还原视图创建并保存多个调试窗口布局;多项目工作区简化与众多的项目。所实现的功能:编写程序1.3 总体设计方案本系统采用AT89C51为主控芯片,因其精度较高,操作比较灵活,输入电路和输出电路由芯片来进行处理,电路的系统的稳

7、定性高,功耗小。其中,输入电路有7个独立按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在扬声器中发出有效的声音。由于需要显示的信息不多,显示电路未采用液晶屏显示,而是使用LED管显示电路负责显示按下的琴键所对应的键值,这样既节省了成本了,又降低了编程难度。AT89C51放大电路按键模块声音模块LED显示系统时间如图1-1所示基于单片机AT89C51的电子琴电路,它主要由琴键控制电路、LED显示电路、音频功放电路、时钟-复时钟复位电路和电源电路五部分所构成。图1-1 电路的原理框图第2章 系统硬件设计基于单片机AT89C51的电子琴电路由琴键控制电

8、路、数码管显示电路、音频功放电路、时钟-复位电路和电源电路五部分所构成。琴键控制电路采用了8输入与门芯片CD4068B,收集7个独立按键的开关状态信号,并触发单片机的外部中断来处理;而数码管显示电路负责显示按下的琴键所对应的键值;同时,音频功放电路也会播放琴键对应的音调;电源电路为整个电路提供能源。2.1 琴键控制电路琴键控制电路作为人机联系的输入部分,也是间接控制数码显示和音频功放的重要组成部分。键盘按照连接方式可以分为独立式和矩阵式键盘两类。此次设计采用的是独立键盘。独立式键盘的特点是一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可判断出被按下的按键。

9、显而易见,这样电路简单,各条检测线独立,识别按下按键的软件编写简单。适用于键盘按键数目较少的场合,不适用于键盘按键数目较多的场合,因为将占用较多的I/O口线。 独立式键盘电路如图3所示,8个独立按键分别对应一个I/O口线,当某一按键按下时,对应的检测线就变成了低电平,与其它按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,很容易识别哪个键被按下。图2-1 独立按键电路图2.2 音频功放电路如图2-2所示音频功放电路,它主要由三极管放大器和扬声器组成。其中,扬声器具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和谐波失真小等优点,广泛应用于录音机和

10、收音机之中。电位器Rv1是用来调节声音的大小。图2-2 音频电路2.3 时钟-复位电路 时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。AT89C51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图2-3是AT89S51内部时钟方式的电路,C1和C2的典型值通常选择为30pF,石英晶体常选6MHz或12MHz的。本设计采用内部时钟方式做时钟电路。图2-3复位电路图2.4 LED显示电路本

11、文设计中采用的是 LED,LED(Light Emitting Diode)发光二极管缩写,它是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。LED具有体积小,电压低,使用寿命长,价格低,亮度高,低热量等优点。但是显示内容单一。本文中采用它显示按键的键位。如图2-4所示。图2-4 LED显示电路图2.5 整体电路基于单片机AT89C51的电子琴电路由琴键控制电路、LED显示电路、音频功放电路、时钟-复位电路和电源电路五部分所构成。琴键控制电路采用了7输入,收集7个独立按键的开关状态信号,并触发单片机的外部中断来处理;而LED显示电路负

12、责显示按下的琴键所对应的键值;同时,音频功放电路也会播放琴键对应的音调;电源电路为整个电路提供能源。如图2-5所示。图2-5整体电路第3章 电子琴系统软件设计系统功能的实现一般包括硬件部分和软件部分,一旦硬件确定下来,软件要实现的功能也随之确定。而为使编程思路清晰,应先绘制程序流程图。判断键值结束LED发光蜂鸣器发声系统初始化开始扫描键盘得到的键值图3-1 电子琴系统流程图3.1 系统硬件接口定义 系统硬件接口定义如表1所示表1 系统硬件接口定义引脚号引脚名接口说明备注1-7P0-P7独立按键接口33-39P1-P7数码管与单片机通信口17P37控制蜂鸣器3.2 主函数 主函数流程图如图所示。

13、利用模块化的思想,主函数只执行初始化函数,对所需的I/O口、外部中断1、定时器0进行初始化配置。音频处理函数和LED显示函数。另外,键码的识别与刷新是通过中断函数来完成。图3-2 函数流程图3.2.1 主函数程序void main(void) TMOD=0x01; /tmod 方式1ET0=1; EA=1; LED=0xff;KEY =0xff;while(1) if(KEY != 0xff)delay(); key_scan(); STH0=tabMUSIC/256; /设初始值 STL0=tabMUSIC%256; TR0=1;else SPEAKER = 1;TR0=0; 3.3 按键扫

14、描及LED显示函数由于本设计采用的是接触开关式按键,故不可避免存在机械抖动。按键被按下是,其触点电压变化过程如图19所示。这种抖动会使系统处于不稳定状态,故需要进行消抖处理。抖动时间的长短和按键的机械特性有关,一般为510ms。通常手动按下键然后立即释放,这个操作中稳定闭合的时间超过20ms,因此单片机在检测按键是否按下时都需要加上去抖动操作,有专门的去抖动电路或则芯片,但同用软件延时的方法也能轻易解决抖动问题,没必要添加多余的硬件。本设计是用软件消抖方法编写一个消抖程序。当按键按下去后,首先对其进行连续两次取样,如果两次都为低电平,则输出低电平;如果其中有一次高电平,则输出高电平。本文所设计的显示为LED显示,当键盘得到低电平时,输出P1口的LED常亮。以表示所指向的键盘动作。3.3.1 键盘去抖及LED显示子程序void key_scan(void)if(KEY != 0xff) switch (KEY)/显示的列位置 case 0x01:MUSIC = 0;P0=0xfe;break;case 0x02:MUSIC = 1;P0=0xfd;break;

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号