机电与车辆工程学院毕业设计毕业设计_第1页
机电与车辆工程学院毕业设计毕业设计_第2页
机电与车辆工程学院毕业设计毕业设计_第3页
机电与车辆工程学院毕业设计毕业设计_第4页
机电与车辆工程学院毕业设计毕业设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机电与车辆工程学院毕业设计 摘 要 随着社会的发展,音乐 渐渐 成为我们生活中很重要的一部。 在忙碌的生活中, 我们 总 会抽空欣赏 喜爱的歌曲 ,作为对精神的洗礼 和心灵的升华 。本论文设计一个基于单片机的简易电子琴。 生活中, 我们对于电子琴如何实现其功能,如音色选择、声音强弱控制、节拍器、自动放音功能等等很好奇。 电子琴是现代电子科技与音乐结合的产物,是一种新型的 电子 键盘乐器。它在现代音乐 中 扮演着 非常 重要的角色, 形形色色的物品已经表明 单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的 现代生活的 一部分。本 设计 的主要内容是用 AT89S51 单片机为核心控制元件,设计一个 多功能 电子琴。 拥有弹奏和自动播放功能。 关键词: AT89S51 单片机 音色 弹奏 自动放音 1 目录 引 言 . 1 1 方案论证 . 2 1.1 控制模块选择方案 . 2 1.2 设计目标 . 2 1.3 按键选择方案 . 2 2 系统设计 . 3 2.1 系 统组成及总体框图 . 3 2.2元件简介 . 3 2.2.1 AT89S51. 3 2.2.2 LED 数码管 . 5 2.3显示电路 . 6 2.4 各功能模块原理图和工作原理 . 6 2.4.1 AT89S51 模块电路原理图 . 6 2.4.2键盘扫描模块电路原理图 . 7 2.4.3键盘 扫描模块的工作原理 . 7 2.4.4 数码管工作原理及电路图 . 10 2.4.5音乐播放设计 . 12 2.4.6音频模块电路原理图 . 13 2.4.7 二极管显示模块 . 15 2.4.8 键盘控制单片机模式模块 . 17 3 仿真模型构建 . 17 3.1如何用单片机实现音乐的节拍 . 17 3.2如何用单片机产生音频脉冲 . 18 3.3系统总体功能流程图 . 19 4 电路仿真 . 19 4.1 ISIS软件介绍 . 19 4.2 keil 简介 . 20 4.3仿真图介绍 . 21 4.4系统调试 . 21 4.4.1硬件调试 . 21 4.4.2 软件调试 . 22 4.5仿真图 . 22 5 仿真和调试结论 . 23 5.1不足之处 . 23 2 5.2研究展望 . 23 参考文献 . 24 致 谢 . 25 ABSTRACT. 26 附件 . 27 1 引 言 单片微型计算机是大规模集成电路技术发展的产物,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术发生变革。因此,单片机的开发应用 早 已 经 成为高科技和工程领域的一项重大课题。 本 设计 的主要内容是用 AT89S51单片机为核心控制元件,设计一个 多功能 电子琴。以单片机作为主控核心,与键盘、扬声器 、 LCD等模块组成核心主控制模块,在主控模块上设有 18个按键和扬声器。 本 设计 主要对使用单片机设计 多功能 电子琴进行了分析,并介绍了基于单片机电子琴 系 统硬件组成。利 用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要的音乐。并且本 设计 分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合, 便 构成我们所想要的音乐了。 随着电子科技的 快 速发展,电子技术正在 渐 渐改善着人们的学习、生活、工作 等各个方面 ,因此开发本系统希望能够给人们多带来一点生活上的乐趣。 由 于当前市场上的 玩具需求量大 , 其中电子琴就是一个很好的应用方面。单片机技术 可以 使 我们利用软 硬 件实现电 子琴的功能,从而 实现电子琴的微型化 , 可以用作玩具琴、音乐转盘以及音乐童车等等 。 电子琴是电子科技与音乐结合的产物,是一种 非常 流行 的键盘乐器。 虽然单片机出现的历史并不长,但发展十分迅猛,在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。目前单片机已用于工业控制、机电一体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备及家用电器等各个领域,随着单片机性能的不断提高,它的应用将会更加广泛。单片机技术发展非常快,所以目前的产品都致力于在功能全面、技术先进、操作简便、安全可靠、价 格合理等方面进行仔细研究,精心设计;及时掌握最新的单片机技术,在条件允许的情况下,尽可能地利用最新的单片机技术来研制其应用系统,再利用单片机体积小、价格低、功能强等特点,以保证所设计的产品在未来的一段时间内仍具生命力。在生活和生产的各个领域中,凡是有自动控制要求的地方都会有单片机的身影出现。现在, 虽然 单片机的应用已经很普遍了, 可是 仍有许多可以用 它来 控制而未实现的项目,因此,单片机的应用大有可以想象和拓展的空间。 2 1 方案论证 1.1 控制模块选择方案 方案一:用可控硅制作电子琴。将 220V 交流 电经变压器降压,再经过整流、滤波,获得 +13.5V 直流电压。将单向可控硅 SCR 和电阻、电容组成驰张振荡器电路。但该设计方案制作成本高且复杂。 方案二: 采用 AT89C51单片机进行控制,由于 AT89C51不具备 ISP功能, 因此 Atmel 公司已经停产在市面上已经不常见,况且其 ROM 只有 4K 在系统将来升级方面没有潜力。 方案三:采用 AT89S51单片机进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到 8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干 扰性能提高。 鉴于上述对比与分析,本设计采用方案三 。 1.2 设计目标 由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简单易操作。其次,在这次设计可行性上进行分析如下: 1、经济可行性: 所谓经济可行性,即在这次设计上需要投入资金的多少,由于毕业设计是没有项目资金,没有开发经费,因此在经济上必须能够承受,比较理想化的项目对于我们毕业设计来说是不可行的。通过分析后,无论是在器件价格或是常见度上均是可行的。 2、技术可行性: 技术可行性主要是分析技术条件上是否能够顺利开展并完成开发工作,硬件、软 件能否满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已经具备。 综上所述,本系统设计目标已经明确,在经济与技术上均可行,因此本系统的开发是完全可行的。 1.3 按键选择方案 传统电子琴可以用键盘上的“ 1”到“ A”键演奏从低 SO 到高 DO 等 11 音。该设计有 16 个按钮矩阵,设计成 16 个音 ,可以实现音阶在低音 4-高音 5 之间。比传统音阶范围大,弹奏效果好 。而且还有两个额外的按键来控制单片机的工作方式 播放和弹奏。 3 2 系统设计 2.1 系统组成及总体框图 硬件设计的任务是根据总体设计要求,在选择的 单片机 的基础上,确定系统中所要使用的 具体 元器件,设计出系统的原理框图、电路原理图。 本 设计要实现一种由单片机控制的 多功能 电子琴,单片机工作于 12MHZ 时钟频率,使用其定时 /计数器 T0,工作模式为 1,改变计数值 TH0 和 TL0 可以产生不同频率的脉冲信号。 本 设计具有 16 个音节的键盘,可以根据乐谱在键盘上进行 弹 奏,音乐发生器会根据 自己 的弹奏,通过扬声器将音乐播放出来。由于本设计 实现的音乐发生器是由 演奏者 通过键盘输入弹奏乐曲的,所以节拍由 演奏者掌握,不由程序控制。用单片机产生的音频脉冲直接驱动扬声器并不能产生所要实现 的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。 本 论文 使用国家半导体公司的低压音频功率放大器 LM386 来实现音频功放电路。 图 2-1 系统结构图 2.2 元件简介 2.2.1 AT89S51 功能特性: AT89S51 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel公司高密度非易失性存储器技术制造,与工业 80C51产品指令和引脚完全兼容。片上 Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8位 CPU和在系统可编程 Flash,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52 具有以下标准功能: 8k 字节 Flash, 256 字节 RAM, 32 位 I/O 口线,键盘扫描 AT89S51 数码管显示 扬声器播放音 乐 电源部分 4 看门狗定时器, 2 个数据指针,三个 16位定时器 /计数器,一个 6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外, AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下, CPU 停止工作,允许RAM、定 时器 /计数器、串口、中断继续工作。掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 主要性能:与 MCS-51单片机产品兼容、 8K字节在系统可编程 Flash 存储器、1000次擦写周期、全静态操作: 0Hz 33Hz 、三级加密程序存储器 、 32个可编程 I/O口线 、三个 16位定时器 /计数器八个中断源、全双工 UART 串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。 引 脚说明: VCC:供电电压。 GND:接地。 P0口: P0口为一个 8位漏级开路双向 I/O口,每脚可吸收 8TTL 门电流。当P1 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它可以被定义为数据 /地址的第八位。在 FIASH编程时, P0 口作为原码输入口,当 FIASH进行校验时, P0输出原码,此时 P0外部必须被拉高。 P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL门电流。 P1口管脚写入 1 后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH编程 和校验时, P1 口作为第八位地址接收。 P2口: P2口为一个内部上拉电阻的 8 位双向 I/O口, P2口缓冲器可接收,输出 4个 TTL门电流,当 P2口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时, P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 P2 口当用于外部程序存储器或 16位地址外部数据存储器进行存取时, P2口输出地址的高八位。在给出地址“ 1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时, P2口输出其特殊功能寄存器的内容。P2口在 FLASH编程和校验时接收高八位地 址信号和控制信号。 P3口: P3口管脚是 8个带内部上拉电阻的双向 I/O口,可接收输出 4个 TTL门电流。当 P3口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平, P3口将输出电流( ILL)这是由于上拉的缘故。 P3口也可作为 AT89C51的一些特殊功能口,如下表所示: 表 3.1 管脚备选功能 端口 功能 P3.0 RXD(串行输入口) 5 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 TXD(串行输出口) /INT0(外部中断 0) /INT1(外部中断 1) T0(记时器 0 外部输入) T1(记时器 1 外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时, ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它 可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE脉冲。如想禁止 ALE的输出可在 SFR8EH地址上置 0。此时, ALE只有在执行 MOVX, MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。但在访问外部数据存储器时,这两次有效的 /PSEN 信号将不出现。 EA/VPP:当 /EA 保持低电平时,则在此期间外部程序存储器( 0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时, /EA 将内部锁定为 RESET;当/EA端保持高电平时,此间内部程序存储器。在 FLASH编程期间,此引脚也用于施加 12V编程电源( VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 2.2.2 LED 数码管 本次毕业设计的显示电路采用 LED数码管显示, LED( Light-Emitting Diode)是一种外加电压从而流过电流并发出可见光的器件。 LED是属于电流控制器件,使用时必须加限 流电阻。 LED有单个 LED和八段 LED之分,也有共阴和共阳两种。 常用的七段显示器的结构如图下图所示。发光二极管的阳极连在一起的称为共阳极显示器 (如图 b所示 ),阴极连在一起的称为共阴极显示器 (如图 c所示 )。1位显示器由八个发光二极管组成,其中七个发光二极管 ag控制七个笔画(段) 6 的亮或暗,另一个控制一个小数点的亮和暗,这种笔画式的七段显示器能显示的字符较少,字符的开头有些失真,但控制简单,使用方便。 此外,要画出电路图,首先还要搞清楚他的引脚图的分布,在了解了正确的引脚图后才能进行正确的字型段码编码。才能显 示出正确的数字来。 ( a)外形 ( b)共阳极 (C)共阴极 图 2-2 数码管引脚 2.3 显示电路 本次毕业设计的显示电路采用 LED 数码管显示,由于 LED 是属于电流控制器件,使用时必须加限流电阻。通过单片机查表得出数码管显示编码,传送给数码管显示,以此来实现按键与显示程序的一致性。 2.4 各功能模块原理图 和工作原理 2.4.1 AT89S51 模块电路原理图 单片机主程序模块通过对键盘扫描程序信号的读取,在通过对应的表,取出数码管显示编码和定时器初始值以 产生不同的声音信号。在这一过程中,对数码管编码是直接赋值,对声音信号则是通过中断程序进行控制。 图 2-3 AT89S51引脚图 7 2.4.2 键盘扫描模块电路原理图 对键盘扫描电路的扫描方式有行扫描法和线反转法,在此次程序编写中,采用行扫描法,通过在 p00p03上循环送出 0扫描信号, p04p07 输入按键上的高低电平信息给单片机,经处理程序,判断出是哪个开关按下,并送主程序以实现不同功能。 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1R21 0 kR31 0 kR41 0 kR51 0 kR61 0 kR71 0 kR81 0 kR91 0 k 图 2-4 键盘电路图 2.4.3键盘扫描模块 的工作原理 确定矩阵式键盘上何键被按下介绍一种“行扫描法”。 行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键 识别方法 ,其工作原理如下: 1、判断键盘中有无键按下 将全部行线置低电平,然后检测列线的状 态。只要有一列的电平为低,则表示键盘中 有键被按下,闭合的键位于低电 平线与 4根行线相交叉的 4个按键之中。若所有列线均为高电平,则无键按下。 2、判断闭合键所在的位置 在确认有键按下后,可进入确定具体 哪个 键 闭合的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 键盘接口必须具有的 4 个基本功能。 1) 去抖动 :每个按键在按下或松开时,都会产生短时间的抖动。抖动的 持续时间 与键的质量相关,一般 为 5 20mm。所谓抖动是指在识别被按键是必须 避开抖动状态, 只有处在稳定接通或稳定断开状态才能保证识别正确无误 。去抖问题可通过软件延时或硬件电路解决。 2) 防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有 8 新的按键按下时产生的问题。被按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想 是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入 /输出 端口 。 4) 键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码 。 用 AT89C51的并行口 P0接 4 4矩阵键盘,以 P3.0 P3.3作输入线,以 P3.4 P3.7作输出线;在数码管上显示每个按键的“ 0 F”序号 。 按键子程序流程图如下: 9 K1键按下数码管显示0并播放DO的低音K2键按下数码管显示1并播放re的低音K3键按下数码管显示2并播放mi的低音K4键按下数码管显示3并播放fa的低音K5键按下数码管显示4并播放so的低音K6键按下 数码管显示5并播放la的低音K7键按下 数码管显示6并播放si的低音K8键按下 数码管显示7并播放do的中音 按 键 流 程 子 程 序 图 ( a ) 10 K 9 键 按 下数 码 管 显 示 8 并 播 放 f a 的中 音K 1 0 键 按 下数 码 管 显 示 9 并 播 放 s o 的中 音K 1 1 键 按 下数 码 管 显 示 A 并 播 放 l a 的 中音K 1 2 键 按 下数 码 管 显 示 b 并 播 放 s i 的 中音K 1 3 键 按 下数 码 管 显 示 c 并 播 放 d o 的 高音K 1 4 键 按 下 数 码 管 显 示 d 并 播 放 r e 的 高 音K 1 5 键 按 下 数 码 管 显 示 e 并 播 放 m i 的 高 音K 1 6 键 按 下 数 码 管 显 示 f 并 播 放 f a 的 高 音K 1 7 按 下单 片 机 处 于 弹 奏 模 式K 1 8 按 下单 片 机 处 于 演 唱 模 式 图 2-5 按键流程子程序图( b) 2.4.4 数码管工作原理及电路图 共阳数码管 应将公共极接到 +5V,共 7个发光二极管组成。 当某一字段发光二 11 极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管 则相反。 驱动方式 : 要使 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字 ,数码管的驱动方式可分为以下两种: 静态显示驱动:静态驱动是指每个数码管的每一个 发光二极管 都由一个单片机 的 I/O 端口进行驱动,或者使用如 BCD码二 -十进制译码器译码进行驱动 。静态驱动的优点 很明显, 编程简单,显示亮度 较 高,缺点是占用 I/O 端口多 。 动态显示驱动:数码管动态显示是 在 单片机 驱动数码管显示方式 中应用广泛的一种 , 动态驱动是将所有数码管的 7 个显示笔划 a,b,c,d,e,f,g的同名端连在一起, 此外 为每个数码管的公共极增加位选通控制电路,位选通 是 由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管 中的 LED 都 会 接收到相同的字形码,单片机对位选通端电路的控制 决定到底 数码管会显示 出 什么 字形,因此要使得数码管 就显示出 需要的 字形只要将需要显示的数码管的 相应 选通控制打开 , 而 没有选通的数码管就不会亮。 本设计所用的 数码管显示模块是共 阴 级数码管,通过来自单片机 I/O口的电平高低来点亮和熄灭数码管上的发光二极管,通过单片机送来的数码管显示编码可以在数码管上显示数字和字符,使应用人员可以很容易的理解按键按下所对应的音符 。依据不同的按键,数码管会依次显示从 1到 F。 对应调用函数如下: void Display(unsigned char m) /定义数码管显示函数 P2=DSY_CODESongkTone_Index ; /显示需要显示的数值 在输出时只需设置对应的代码即可。 12 图 2-6数码管显示模块电路原理图 2.4.5 音乐播放设计 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率 。 可以利用不同的频率的组合, 来 构成所想要的音乐, 而 对于单片机来 说, 产生不同的频率 则 非常方便 。在获得所需要的音拍时, 可以利用单片机的定时 /计数器 T0 来产生这样方波频率信号, 所以 我们只要把一首歌曲的音阶 所 对应频率关系弄正 确即 可。 若要产生音频脉冲, 则需 要算出某一音频的周期( 1/频率),半周期的时间为 周期除以 2。利用定时器计时半周期时间,每当计时终止后就将 P37 反相,然后重复计时再反相。就可在 P37 引脚上得到此频率的脉冲 。 利用 AT89S51 的内部定时器使其工作计数器模式( 即 MODE1)下,改变计数值 TH0 及 TL0 以产生不同频率的方法 来 产生不同音阶 。 计数脉冲值与频率 : N fi 2 fr。 在 式中 ,N是计数值; fi是机器频率 ; fr 是想要产生的频率 。 计数初值 T 的求法 : T 65536 N 65536 fi 2 fr 例如:设 K 65536, fi 1MHz,求低音 DO( 261Hz)、中音 DO( 523Hz) 、高音 DO( 1046Hz)的计数值 。 T 65541 N 65536 fi 2 fr 65536 1000000 2 fr 65536500000/fr 低音 DO: T 65536 500000/262 63628 中音 DO: T 65536 500000/523 64580 高音 DO: T 65536 500000/1046 65058 13 2.4.6 音频 模 块电路原理图 单片机接受到弹 奏者的指示,通过喇叭播放出来。 乐音听起来有的高,有的低,这就叫音高,音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低,声音就低,不同音调的乐音是用 C、 D、 E、F、 G、 A、 B表示的,这 7个字母就是乐音的音名,它们一般依次唱成 DO、 RE、MI、 FA、 SO、 LA、 SI,这是唱曲时乐音的发音,所以叫唱名。 音持续时间的长短即时值,一般用拍数表示,休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同频率的组合,加以与拍数对应的延时,构成音乐。 音乐的 播放要进行音符的识别和准确调用,音符的自然频率是固定的,我们可以根据自然频率计算出其半周期,由此计算出单片机在 12MHz下的定时初值。因此可以设置低音 do到超高音 do的定时初值表程序段如下: unsigned int code tab= /音符初值表低音 1 超高音 1 63627,63835,64021,64103, /低音 1 2 3 4 64260,64400,64524,64580,/低音 5 6 7 中音 1 64684,64777,64820,64898,/中音 2 3 4 5 64968,65030,65058,65110,/中音 6 7 高音 1 2 65157,65178,65217,65252,/高音 3 4 5 6 65283,65297 /高音 7 超高音 1 ; 在音乐的播放中节拍的控制由延时控制来实现: void delay(unsigned char t) /延时函数,控制发音的时间长度 unsigned char t1; unsigned long t2; for(t1 = 0; t1 t; t1+) /双 重循环 , 共延时 t个半拍 for(t2 = 0; t2 8000; t2+); TR1 = 0; /关闭 T1, 停止发音 节拍的长短由设定的数值来实现,此处设定 1代表 16分音符, 2 代表 8分音符, 3代表 4分音符, 4代表 2分音符,音乐的设置如下: code unsigned char mid = 简谱 6,2,2,6,2,1,6,2,1,1,3,2,2,3,1,6,2,1,5,2,4,5,2,0, 14 5,2,2,5,2,1,5,2,1,6,2,2,1,3,1,2,3,1,3,2,4,3,2,0, 3,2,2,2,2,1,3,2,1,5,2,2,3,2,1,5,2,1,6,2,3,1,3,1,2,3,3, 3,3,2,1,3,2,2,3,1,3,3,1,2,3,1,1,3,1,6,2,2,5,2,4,5,2,0, 5,2,1,1,3,1,5,2,1,1,3,1,2,3,4,6,2,1,1,3,1,5,2,1,2,2,1,3,2,4,3,2,0, 3,2,2,6,2,1,1,3,1,5,2,1,6,2,1,5,2,1,3,2,1,2,2,3, 3,2,1,2,2,1,1,2,1,2,2,1,3,2,1,1,2,1,2,2,4,0,0,0, ; 读出的每个音符由三个数字构成,第一个数字代表音符;第二个数字代表音高,默认 1 代表低八度, 2 代表中八度, 3 代表高八度;第三个数代表节拍,此处用 1代表 16分音符, 2代表 8分音符, 3 代表 4分音符, 4代表 2分音符,而0用来表示停顿,以区分连音。 音乐播放函数的定义需要一个定时器中断,而这个中断与键盘扫描部分不能用一个中断,故设中断 1,工作方式 1: void song() /演奏一个音符函数 TH1 = timerh; /控制音调 TL1 = timerl; TR1 = 1; /启动 T1, 由 T1输出方波去发音 delay(time); /控制时间长度 音符扫描并播放函数段如下: while(midi!=0) /只要有音符,就持续执行 k = midi + 7 * (midi + 1-1) - 1;/第 i个是音符 , 第 i+1 个是第几个八度 timerh = tabk/256; /从数据表中读出定时器计数值 timerl = tabk%256; /计数值低位 time = midi + 2; /读出时间长度数值 i += 3; /每隔三个数读一个音符 if(midi+2= 0 ) /设置发音时长为 0时停顿 delay10ms(); song(); /发 出一个音符 15 在音乐播放完毕之后,自动跳出该程序段,进入按键扫描程序段。 LS1SPEAKER 图 2-9音频播放器电路原理图 2.4.7 二极管显示模块 通过两个二极管来确定当前是处于弹奏模式还是播放模式, 当单片机处于弹奏时, LED1灯亮,当单片机处于演奏时, LED2 灯亮。 二极管的工作原理: 发光二极管通常称为 LED,它们虽然名不见经传,却是电子世界中真正的英雄。它们能完成数十种不同的工作,并且在各种设备中都能找到它们的身影 。 它们用途广泛,例如它们可以组成电子钟表表盘上的数字,从遥控器传输信息,为手表表盘照明并在设备开启时向您发出提示。 如果将它们集结在一起,可以组成超大电视屏幕上的图像,或是用于点亮交通信号灯。 实 质上, LED是一种 容 易装配到电子电路中的微型灯泡。它们能够发光,是半导体材料内的电子运动的结果, 而 且它们的寿命同普通的晶体管一样长。 二极管是最简单的一种半导体设备。广义的半导体是指那些具有可变导电能力的材料。大多数半导体是由不良导体掺入杂质(另一种材料的原子)而形成的,而掺入杂质的过程称为掺 杂。 就 LED 而言,典型的导体材料为砷化铝镓。 在纯净的砷化铝镓中,每个原子与相邻的原子联结完好,没有多余的自由电子(带负电荷的粒子)来传导电流。而材料经掺杂后,掺入的原子打破了原有平衡,材料内或是产生了自由电子,或是产生了可供电子移动的空穴。无论是自由电子数目的增多还是空穴数目的增多,都会增强材料的导电性。 具有多余电子的半导体称为 N型材料,因其含有多余的带负电荷的粒子。在N型材料中,自由电子能够从带负电荷的区域移往带正电荷的区域。 半导体中 拥有多余空穴的半导体称为 P 型 半导体 , 由于空穴的浓度将比电子的浓度高的多,因而主要依靠空穴导电,故称为空穴半导体或 P型半导体。 一个二极管由一段 P型材料同一段 N型材料相连而成,且两端连有电极。这种结构只能沿一个方向传导电流 ,这就是半导体的单向导电性 。当二极管两端不 16 加电压时, N 型材料中的电子会沿着层间的 PN 结 (junction)运动,去填充 P 型材料中的空穴,并形成一个耗尽 层 。在耗尽 层 内,半导体材料回到它原来的绝缘态 即所有的空穴都被填充,因而耗尽区内既没有自由电子,也没有供电子移动的空间, 所以不能导电 。 要 使耗尽 层 消失,必须使电子从 N 型区域移往 P 型区域,同时空穴沿相反的方向移动。 因此 ,可以将二极管 N端与电路的负极相连,同时 P端与正极相连。P型材料中的 空穴 被 正 极排斥,又被 负 极吸引;而 N型材料中的 自由电子 会沿反方向移动。 而当 两电极之间的电压足够高,耗尽 层 内的电子会被推出空穴,获得自由移动的能力。 随着 耗尽 层 消失,电荷 就 可以通过二极管 。 如果试图让电流沿反方向流动,电流将不会流 过 PN 结,此时半导体处于绝缘状态 。 P 型材料中带正电的空穴则会被吸引到负极上 , N型材料中带负电的电子会被吸引到正极上。由于空穴与电子各自沿着错误的方向运动 , PN 结将不会有电流通过,耗尽 层 也会扩大。 在这种情形下, 空穴 同 电子 之间的相互作用会产生一个副作用 发光 !光是一种能量形式,可由原子释出。光由一些具有能量和动量但无质量的类粒子束组成。这些粒子称为光子,是光的最基本单位。 电子的跃迁会释放出光子。在原子结构中,电子在原子核周围的轨道中运动。电子在不同的轨道中具有不同的能量值。通常,能量更高的电子在离原子核更远的轨道中运动。 为了让电子能够从低能轨道跃迁至高能轨道,就必须提高它的能级。反过来,电子从高能轨道跌落至低能轨道时则会释出能量 。这种能量就以光子的形式得到释放。能量差约大,释出的光子能量就越大,继而表现为更高的频率。 自由电子通过二极管时会陷入 P型层中的空穴。这一过程涉及电子从传导带到低轨道的跌落,因而电子会以光子的形式释放出能量。这种情况在所有的二极管中都会发生,但只有当二极管由某些特定材料制成时,您才能看到光子 。 17 D1L E D- B L U ED2L E D- B L U E 图 2-10二极管显示模块电路原理图 2.4.8 键盘控制单片机模式模块 利用两个键盘来控制单片机是弹奏还是演唱。当按下 K1键,处于弹奏模式,当按下 K2键,处于演唱模式。 3 仿真模型构建 本软件设计关键是要实现一种由单片机控制的 多功能 音乐 播放 器,它由 16个音节组成的的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来 ;而且也可以演唱预存的音乐。 3.1 如何用单片机实现音乐的节拍 除了音符以外,节拍也是音乐的关键组成部分。 节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现,如果 1/4拍的延时是 0.4秒,则 1拍的延时是 1.6秒,只要知道 1/4拍的延时时间,其余的节拍延时时间就是它的陪数。如果 要单片年纪 播放音乐,那么必须 要 在 设计程序当 中考虑到节拍的设置,由于本 设计 实现的音乐发生器是由用户弹奏乐曲的,所以节拍由用户掌握,不由程序控制。 对于不同的曲调我们也可以用单片机的另外一个定时 /计数器来完成。音乐的音拍,一个节拍为单位( C 调) 具体如下表: 表 3.1音乐节拍表 曲调值 DELAY 曲调值 DELAY 18 调 4/4 调 3/4 调 2/4 125ms 187ms 250ms 调 4/4 调 3/4 调 2/4 62ms 94ms 125ms 3.2 如何用单片机产生音频脉冲 了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐 ,对于单片机而言,产生不同频率有脉冲非常方便,可以利用它的定时 /计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。 在本实验中,单片机工作于 12MHZ时钟频率,使用其定时 /计数器 T0,工作模式为 1,改变计数值 TH0和 TL0可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值 T的对照如下表: 表 3.2音符频率与计数值 T的对照表 音符 频率( HZ) 计数值( T值) 音符 频率( HZ) 计数值( T值) 低 1DO #1DO# 低 2RE #2RE# 低 3MI 低 4FA #4FA# 低 SO #5SO# 低 6LA #6LA# 低 7SI 中 1DO #1DO# 中 2RE #2RE# 中 3MI 中 4FA 262 277 294 311 330 349 370 392 415 440 466 494 523 554 587 622 659 698 63628 63737 63835 63928 64021 64103 64185 64260 64331 64400 64463 64524 64580 64633 64633 64884 64732 64820 #4FA# 中 5SO #5SO# 中 6LA #6LA# 中 7SI 低 1DO #1DO# 高 2RE #2RE# 高 3MI 高 4FA #4FA# 高 5SO #5SO# 高 6LA #6LA# 高 7SI 740 784 831 880 932 968 1046 1109 1175 1245 1318 1397 1490 1568 1661 1760 1865 1967 64860 64898 94934 64968 64994 65030 65058 65085 65110 65134 65157 65178 65198 65217 65235 65252 65268 65283 19 T的值决定了 TH0和 TL0的值,其关系为: TH0=T/256, TL0=T%256 3.3 系统总体功能流程图 开 始系 统 初 始 化单 元 初 始 化有 键 按 下 ?NY键 处 理 图 3.1 主程序框图 4 电路仿真 4.1 ISIS 软件介绍 Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件。它运行于 Windows操作系统上,可以仿真、分析 (SPICE)各种模拟器件 和集成电路。 该软件的特点是: Proteus软件具有其它 EDA工具软件的功能。这些功能是: 20 ( 1)原理布图 ( 2) PCB布线 ( 3) SPICE电路仿真 革命性的特点 ( 1)互动的电路仿真 用户甚至可以实时采用诸如 RAM, ROM,键盘,马达, LED, LCD, AD/DA,部分 SPI器件,部分 IIC器件。 ( 2)仿真处理器及其外围电路 protues可以仿真 51系列、 AVR、 PIC、 ARM、等常用主流单片机。配合系统配置的虚拟逻辑分析仪、示波器等, Proteus 建立了 完备的电子设计开发环境。 在 PROTEUS 绘制好原理图后,调入已编译好的目标代码文件: *.HEX,可以在 PROTEUS的原理图中看到模拟的实物运行状态和过程。 在 PROTEUS仿真软件中,仿真系统 不 但 可 以让 许多单片机实例 运行过程 形象化,也可将许多单片机实例 功能具体 化。前者 拥有着 实物演示 的 实验 很难 达到的效果 , 后者则相当程度上得到实物演示的效果。 它的元件、连接线路等和传统的单片机实验 元件 高度对应。这 就 在 一定 程度上替代了传统的单片机 教学实验 的功能。 毕业设计是学生走向就业的重要实践环节。由于 PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上 无法比拟 的虚拟仪器、仪表, 所以 也提供了培养学生实践精神、创造精神的平台 。 随着科技的发展,“计算机仿真技术”成为 很多 设计部门重要的前期设计 途径 。它设计灵活,结果 和 过程统一。可使设计 耗资大为减少 、 时间大为缩短 ,也降低 了 工程制造的 相当 风险。相信在单片机 系统 开发应用中 PROTEUS 可以 茯得 越来越 广泛的应用。 在 使用 Proteus 软件进行单片机仿真设计 时 ,是 计算机多媒体技术 和 虚拟仿真 技术相结合的综合运用,有 助于 培养学生的电路设计能力 和 仿真软件的 动手 操作能力;在不需要硬件投入的条件下 , 对单片机的学习比单纯学习书本知识更 易于 接受,更容易提高。 事实 证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能 很 大 程度的 提高单片机系统设计效率。因此, Proteus 有较高的推广价值。 4.2 keil 简介 在 单片机开发 过程 中除 了所 必 需 的硬件 以外 , 一样 离不开软件 的帮助 ,我们写的汇编程序要变为 CPU 可以执行的机器码有两种 常用的 方法,一种是 机器 汇编,另一种是 手工 汇编 , 现在 已 基本上不会 使用手工汇编的方法了。机器汇编是 21 通过汇 编软件将源程序变为机器码 。 随着单片机开发技术的 逐渐 发展,从 最开始的 普遍使用汇编语言到 后来 逐渐 发展到 使用高级 开发 语言,单片机的开发软件也在 日新月异的 发展, Keil 软件是目前最流行 的 开发 MCS-51系列单片机的软件,这从 目前 各仿真机厂商 均 宣布全面支持 Keil 中 即可看出。 Keil 提供了包括 库管理、连接器 、 宏汇编 、 C编译器 和一个功能强大的仿真调试器等在内的完整 软件 开发方案,通过一个集成开发环境( uVision)将这些部份组合在一起。运行 Keil 软件需要 Pentium 或以上的 CPU, 16MB 或更 多 RAM以上空闲的硬盘空间、20MWIN98、 WIN2000、 NT、 WINXP 等操作系统。掌握这一软件对于使用 51系列单片机 等系列 的爱好者来说是 非常 必要的,如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即 便 不 是 使用 C 语言而 是仅 仅 使 用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你 事倍功半。 4.3 仿真图介绍 单片机: P2口对应数码管编码输出端; P3.7 口做音乐信号输出端; P0 口做键盘扫描部分输入输出端。 键盘扫描:将 16位开关通过矩阵连接,接出来四端接输入口( P3.0P3.3)用于 键盘情况的输入,另外四端接输出口( P3.4P3.7)用于给键盘扫描信号。 数码管显示:在使用时一要接上拉电阻(这是有单片机 P0口的物理特性决定的),二是要加限流电阻以使流进单片机的小于单片机所能承受的电流。 音乐处理: LM386将单片机 P3.7口送过来的信号进行 20倍的功率放大并送扬声器进行音乐的播出。 4.4 系统调试 电路调试是整个系统功能否实现的关键步骤,我们将整个 调试过程分为三大部分:硬件调试、软件调试和综合调试。 4.4.1 硬件调试 硬件调试主要是针对单片机部分进行调试。 在上电前,先确保电路中不在断路或短路情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。注意焊点之间,确保焊点没有短接在一起,同时注意焊点的美观,确保没有开路以及短路的现象出现。 在确保硬件电路正常,无异常情况 (断路或短路 )方可上电调试,上电调试的 22 目的是检验电路是否接错,同时还要检验原理是否正确,在本次 设计中,上电调试主要键盘单片机控制部分、数码管点亮部分、和音频转换电路硬件调试。 1、数码管 LED电路调试:接通电源,随机按下按钮可以看到数码管显示数字。 2、键盘单片机控制部分调试:上电后,随机按动键盘可以发现各个按键对应的音正确。 4.4.2 软件调试 调试主要方法和技巧: 通常一个调试程序应该具备至少四种性能:跟踪、断点、查看变量、更改数值。整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是 把各个子程序模块进行分别调试。 4.5 仿真图 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1X1CR Y S T A LC11nFC21nFR11 0 kC31nFD1L E D- B L U ED2L E D- B L U ER21 0 kR31 0 kR41 0 kR51 0 kR61 0 kR71 0 kR81 0 kR91 0 kL S 1S P E A K E R 图 4-1仿真静态图 23 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1X1CR Y S T A LC11nFC21nFR11 0 kC31nFD1L E D- B L U ED2L E D- B L U ER21 0 kR31 0 kR41 0 kR51 0 kR61 0 kR71 0 kR81 0 kR91 0 kL S 1S P E A K E R 图 4-2动态仿真图 5 仿真和调试 结论 通过各方面努力,本次设计任务完成,系统部分功能已实现。可以随意演奏一首喜欢的曲子,并可以显示在数码管上。基本达到预定的效果。 这 说明一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,于是我们可以利用 单片机的定时 /计数器 T0 来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时通过显示模块来确知自己所弹的音符。 通过这次比较系统的项目设计提高了我运用所学的专业基础知识来解决面临实际问题的能力,同时也提高了我查阅各种文献资料、设计手册、设计规范以及软件编程的水平。 5.1 不足之处 1.可弹奏的音符数较少,只能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块来增加其复杂度。 2.音量不可调。可通过改进功放电路,即在 lm386的 1脚和 8脚间增加一直外界电阻和电容,将 3脚与地之间的电阻换为 10k的变阻,即可调节其放大增益。 5.2 研究展望 微型计算机的出现和大量使用将人类社会带入一个新的时代,单片微型计算 24 机 (简称单片机 )在其中扮演着十分重要的角色。虽然它没有常见的 PC 那样大的体积和重量,不会在办公桌或控制台上占据一个显要的位置,但它就像小小的螺丝钉一样,镶嵌在人们工作、生活中需要计算、控制、测量等智能活动的各个角落。自 20世纪 70 年代问世以来,单片机以其 控制功能强 、可靠性高、 体积小 、性价比高 、 使用方便 、容易产品化等特点,在 家用电器 、 实时控制 、 机电一体化 、分布式多机系统、 智能仪器 等各个领域得到了广泛应用,对 许多 行业的技术改 革和产品的更新换代起着 非常 重要的推动作用,对人们生活质量的提高产生了深刻的影响。作为 21 世纪的工科大学生,学好单片机,一方面可以加深对计算机原理和结构的认识,另一方面也为自身在专业上的深入发展构筑了一个很好的平台其 重要性怎么强调都不为过。 参考文献 1 张虹 .单片机原理及应用 M.北京 :中国电力出版社 ,2009. 2 黄鑫 ,马善农 ,赵永科 .基于 CPLD的电子琴研究与设计 J.科技广场 ,2007(5). 3 李云钢 ,邹逢兴 ,龙志强 . 单片机原理与应用系统计 J.北京 :中国水利水电出版社 ,2008. 4 李林涛 ,陈明 ,梁宜勇 ,王晓萍 . 基于单片机的简易电子琴录 /放音系统 J. 数字技术与应用 . 2010(02) 5 田其冲 ,郑卫国 ,孙大雷 . 基于 AT89S51的电子琴设计 J. 电脑知识与技术 . 2009(24) 6张淑玲 ;凌阳单片机在微机原理实验箱系统中的应用 J;重庆理工大学学报 (自然科学 );2011年 07期 7张则 . 51 系列单片机 (C 语言 )快速入门 (五 )N;电子报 ;2010年 8孙文 ,赵万云 ,邹子春 ,袁小平 . 基于 RC 正弦波振荡电路的电子琴设计 J.现代电子技术 ,2010年 09期 9张瑞 ,夏路易 .基于 89S51单片机的锅炉给水控制系统 J.软件 ,2011年 01 期 10苏彦 . 微机原理与接口技术教 学方法研究与探索 J;中国科教创新导刊 .2010年 23期 11 周琛晖 . 基于 AT89S51单片机的电子琴设计 J. 电脑知识与技术 . 2009(27) 12 做而论道 .基于 51单片机的 4*4矩阵键盘电子琴 . /%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d025718ab4fa7bdefc1f10b7.html, 2010-08-05 13做而论道 .单片机播放音乐的基本知识/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d9581a512bddb3 25 511138c282.html,2010-07-07 致 谢 这次 的 毕业论文能够得以顺利完成,是 曾经 所有指导过我的老师,帮助过我的同学鼓励 和加油 的结果。我要在这里对他们表示深深的谢意! 首先,要 非常 感谢我的指导老师 叶爱芹 老师。 叶 老师在我毕业论文的撰写过程中, 单片机仿真过程和程序编译过程中 给我 提供了极大的帮助和指导。从开始选题到中期修正,再到最终定稿, 叶 老师给我提供了许多宝贵建议。老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多 为人处世和待人接物 的道理。 其次,要感谢所有曾经 教 我们 相关课程 的 任课老师,老师们教会我的不仅仅是专业知识,更多的是对待学习、对待生活的态度。 第三,感谢我的父母亲,你们是我力量的源泉,只要有你们,不管面对什么样的困难,我 都不会害怕,谢谢你们对我的支持与鼓励! 再次,感谢我的室友及其他好友,因为有你们的帮助,我的论文得以顺利完成。感谢你们,大学四年给我了那么多的帮助与鼓励,在我不开心的时候,总能让我开心起来。不会忘记,大学四年里我们一起度过的欢乐时光,那些开心的日子,总是那么令人难以忘怀 。 最后对老师,同学和家人再次致以我最衷心的感谢!教导过我的老师,你们的人格魅力永记我心间。身边的同学和朋友 们 ,有你们,我的大学才算完整。 26 ABSTRACT With the development of society, the music gradually become very important in our lives a. In a busy life, we always find time to enjoy your favorite songs, as Spirit baptism and spiritual sublimation. In this thesis, a simple microcontroller-based keyboard. Life, we keyboard how to achieve its functions, such as voice selection, sound level control, metronome, auto playback function so curious. Keyboard is a modern electronic technology and music combined with the product, is a new electronic keyboard instrument. It is modern music plays a very important role in all kinds of goods has shown a powerful single-chip control functions and flexible programming features, it has been integrated into the modern peoples lives, becoming an irreplaceable part of modern life. The design of the main contents of AT89S51 MCU as the core control components, to design a multi-organ. Has played and automatic playback function. Keywords: AT89S51 microcontroller sound play automatically play 27 附件 源程序: #include #include #include #include #define uchar unsigned char #define uint unsigned int uchar STH0;/定时器计数初值 uchar STL0; bit FY=0;/放乐曲时 FY=1, 电子琴弹奏时 FY=0 uchar Song_Index=0,Tone_Index=0;/放音乐的参数 uchar k, key; sbit SPK=P37; sbit LED1=P10; sbit LED2=P11; uchar code DSY_CODE= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 ; uchar code Song50= /任意选几首音乐的旋律 28 1,2,4,3,3,3,5,6,7,8,8,8,4,5,8,8,4,3,3,3, 3,3,3,4,5,5,5,5,6,5,3,5,3,2,1,5,6,5,3,3,2,1,1,-1, 3,2,1,3,2,1,1,2,3,2,1,2,3,1,3,4,5,3,4,5,5,6,5,3,5,3,2,1,3,2,1,1,-1, 10,10,10,9,10,9,10,9,9,6,6,7,8,9,8,7,6,5,6,-1, 10,10,10,9,10,13,12,13,12,12,9,9,10,11,12,11,10,9,8,10,10,-1, 13,14,13,12,12,10,12,10,12,9,13,12,10,9,10,10,-1, 9,13,13,13,8,13,13,13,13,14,15,14,13,14,13,14,10,10,-1, 13,14,13,12,12,10,12,10,12,13,14,13,14,13,14,10,-1, 9,13,13,13,8,13,13,13,13,14,15,14,13,13,14,12,13,-1, 5,5,10,9,8,5,5,5,5,10,9,8,6,6,6,11,10,9,6,-1, ; uchar code Len50= /上面几首音乐的旋律每个音符 对应的节拍 1,1,1,1,1,1,1,1,1,1,2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论