基于单片机的电子琴

上传人:子 文档编号:46730714 上传时间:2018-06-27 格式:PDF 页数:19 大小:490.65KB
返回 下载 相关 举报
基于单片机的电子琴_第1页
第1页 / 共19页
基于单片机的电子琴_第2页
第2页 / 共19页
基于单片机的电子琴_第3页
第3页 / 共19页
基于单片机的电子琴_第4页
第4页 / 共19页
基于单片机的电子琴_第5页
第5页 / 共19页
点击查看更多>>
资源描述

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

1、 1 1 1 引言引言 1.11.1 目的和意义目的和意义 单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算 机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特 点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的 开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它 在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实 现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主 要内容是用 AT89S51 单片机为核心控制元件,设计一个电子琴。以单片机作 为主控核心,与

2、键盘、扬声器等模块组成核心主控制模块,在主控模块上设 有 16 个按键和扬声器。 本文主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片 机电子琴统硬件组成。利用单片机产生不同频率来获得我们要求的音阶,最 终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块 原理及各模块的程序的调试来详细阐述。本系统是简易电子琴的设计,按下 键盘矩阵中的按键会使扬声器播放对应的音符。通过设计本系统可了解单片 机的基本功能。对单片机的了解有一个小的飞跃。 1.2 1.2 本系统主要研究内容本系统主要研究内容 1.由 4X4 组成 16 个按钮矩阵,设计成 16 个音对应音乐音符。 2.每按

3、一个键,单片机检测按下的那个键并查表查找相应的音符,输出到音 频处理模块驱动喇叭发出音符。 3.设计控制器的硬件电路原理图,合理选择元器件;编写使用说明书,说明 使用方法。 4.设计在实验板上实现该功能的程序并进行调试。 1.3 1.3 主要芯片简介主要芯片简介 AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件 采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系 统及 80C51 引脚结构,芯片内集成了通用

4、 8 位中央处理器和 ISP Flash 存储单元, 功能强大的微型计算机的 AT89S51可为许多嵌入式控制应用系统提供高性价比的 解决方案。 AT89S51 具有如下特点:40 个引脚(引脚图如图 1-2 所示) ,4k Bytes Flash 片 内程序存储器,128 bytes 的随机存取数据存储器(RAM) ,32 个外部双向输入/ 输出 (I/O) 口, 5 个中断优先级 2 层中断嵌套中断, 2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 2 此外, AT89S51 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模式。 空

5、闲模式下,CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续 工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断 激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封装形式,以 适应不同产品的需求。 2 2 系统系统分析分析 2 2.1 .1 系统系统组成组成 本系统只要以 51 单片机为主控核心,与矩阵键盘、扬声器一起组合而成。具 体如下: 图一电路方框图 2 2.2 .2 系统系统工作原理工作原理 本系统扫描键盘矩阵、显示按键、扬声器发出对应音符。 4X4 行列式键盘识别及显示原理如下: 组成键盘的按键有机械式、电容式、导电橡

6、胶式、薄膜式多种,但不管什么 形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按 其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检 测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的 键码(如 ASCII 码)送往 CPU。所以,编码键盘接口简单、使用方便。但由于硬 件电路较复杂,因而价格较贵。 非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键 码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低 成本大多数采用非编码键盘。 扬声器扬声器 单单

7、片片机机 键盘矩阵键盘矩阵 3 键盘接口必须具有去抖动、防串键、按键识别和键码产生 4 个基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持 续时间与键的质量相关,一般为 520ms。所谓抖动是指在识别被按键是必须避 开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问 题可通过软件延时或硬件电路解决。 (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有 新的按键按下时产生的问题。常用的方法有双键锁定和 N 键轮回两种方法。双键 锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产 生相应的键码。N 键轮回,是

8、当检测到有多个键被按下时,能根据发现它们的顺 序依次产生相应键的键码。 (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬 结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想 是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需 要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思 想是通过行列颠倒两次扫描来识别闭合键, 为此需要提供两个可编程的双向输入/ 输出端口。 (4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内 存区中建立一个键盘编码表,通过查表获得被按键的键码。 用 AT89S51 的并行口

9、P3 接 44 矩阵键盘, 以 P3.0P3.3 作输入线, 以 P3.4 P3.7 作输出线. 4 3 3 系统系统硬件硬件设计设计 3 3.1 .1 系统系统硬件硬件总体设计总体设计 本系统由键盘矩阵、扬声器这几个部分组成,扬声器发出对应音符。硬件总 体设计图如下: 图二电路原理图 3 3. .2 2 子系统子系统(模块模块)一一 矩阵扫描扬声器发出对应音符模块如下: 图三矩阵扫描扬声器 3 3. .3 3 子系统子系统(模块模块)二二 矩阵键盘模块图如下: 5 图四矩阵键盘 4 4 系统系统软件软件设计设计 4 4.1 .1 系统系统软件总体设计软件总体设计 本系统的软件流程图如下: 6

10、 图五软件流程图 4 4. .2 2 子系统子系统 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器 T0 来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系正确即可。 利用 AT89C51 的内部定时器使其工作计数器模式(MODE1)下,改变计数值 TH0 及TL0 以产生不同频率的方法产生不同音阶,例如,频率为 523Hz,其周期 T1/5231912s,因此只要令计数器计时 956s/1s956,每计数 956 次时将 I/O

11、反相,就可得到中音 DO(523Hz) 。 计数脉冲值与频率的关系式(如式 2-1 所示)是: Nfi2fr 2-1 式中,N 是计数值;fi 是机器频率(晶体振荡器为 12MHz 时,其频率为 1MHz) ;fr 是想要产生的频率。 其计数初值 T 的求法如下: 7 T 65536 N 65536 fi2fr 例如:设 K65536,fi1MHz,求低音 DO(261Hz) 、中音 DO(523Hz) 、高音 DO(1046Hz)的计数值。 T65536N65536fi2fr6553610000002fr65536500000/fr 低音 DO 的 T65536500000/26263627

12、 中音 DO 的 T65536500000/52364580 高音 DO 的 T65536500000/104665059 本系统按键发出对应音符模块软件流程图如下: 图六音符模块软件流程图 8 5 5 系统使用说明系统使用说明 5 5.1 .1 系统系统安装及配置安装及配置说明说明 5.1.1 系统运行环境 WINDOWS XP PROTEUS 7.1 SP2 Keil uv3 2.12 5.1.2 系统安装及配置 安装 Protues 和 keil uVsision3。 5.2 系统系统操作操作说明说明 (1) Keil 下编译, 产生目标 HEX 文件, Proteus 下 Progra

13、mme Files 选择产生的 HEX 文件,点击运行开始模拟。 (2)按任意键盘,扬声器发出相应的音符。 6 6 结论结论 本次的课程设计,使关于 51 系列单片机的,在平时课程的学习中,我们仅限于理论知识的讲解,即使知识是很扎实的,实际应用并不是这样的。开始时我也觉得自己的理论知识已经够了,但当我拿到课题时,在脑海里想的是非常好的,但真正编程和控制时,理论和实际结合不到一起,甚至于 51 芯片的使用我都感觉很迷茫,还是经过搜集大量资料才将理论与实际结合到一起了。通过这次课程设计,我们学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我们长时间的设计及调

14、试,本系统基本能实现按下键盘矩阵中的按键会使数码管显示当前按键,扬声器播放对应的音符。但由于仿真系统原因,本设计音频效果不是很好。不足之处有:1.可弹奏的音符数较少,只能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块来增加其复杂度。2.音量不可调。 通过这次课程设计电子琴设计,使我又重新开始复习了汇编语言,因为汇编语言是前段时间学习的,从学完就再也没用过,所以开始很陌生,我又找了有关资料来了解,才有了一点眉目。刚开始以为可以用汇编很容易就写出来,但是用汇编时才发现原来都不怎么熟练,编了一会程序发现只有一种感觉举步维艰啊! 对于单片机, 我们课本学习的是 80C51, 但是这次做课程

15、设计用的是 89C51,9 这样不仅使我们掌握了 80C51,而且对 89C51 也有了一定的了解了,在课堂上学习的都理论的,跟实际永远有一定的差距,不实践就不会发现问题。通过这次课程设计使我把课堂上学习的东西都用到了实践中,例如:定时/计数器的应用与中断。学习的时候不怎么理解,但是在实践中应用了以后就自然了解了。这次课程设计使我受益匪浅,而且都是实际的东西。 通过本次设计实验,使我对所学 51 系列的单片机从理论知识到实践硬件的应用以及汇编语言知识的回顾,更加熟悉了 89C51 单片机的每一个引脚的输出和各项功能,而且对硬件电路的布线以及焊接能力有了很大的进步。我们的综合设计主要涉及硬件和软

16、件两方面的内容,通过这些我们的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作;基本掌握了 Proteus 绘制原理图的方法,并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我们对 51 系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如 LED 数码管,键盘等。并且我们学会了分析问题解决问题的能力,加深了对所学理论知识的理解和运用。我们的动手能力得到了很大的提高,创新意识得到了锻炼。 10 参考文献参考文献 1 彭伟.单片机 C 语言程序设计实训 100 例.电子工业出版社.2009 2 吴运昌模拟电子线路基础广州:华南理工大学出版社,2004 3 阎石数字电子技术基础北京:高等教育出版社,1997 4 张晓丽等数据结构与

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

当前位置:首页 > 生活休闲 > 科普知识

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