基于单片机的电子琴毕业设计_第1页
基于单片机的电子琴毕业设计_第2页
基于单片机的电子琴毕业设计_第3页
基于单片机的电子琴毕业设计_第4页
基于单片机的电子琴毕业设计_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

电子信息工程系毕业论文 课题:基于单片机的电子琴电路设计课题:基于单片机的电子琴电路设计 毕毕 业业 论论 文文 专专业业 学学 生生 姓姓 名名 班班级级 学学号号 指指 导导 教教 师师 完完 成成 日日 期期 电子信息工程系毕业论文 摘摘 要要 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现 代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性, 它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用 AT89c51 单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与 键盘、扬声器等模块组成核心主控制模块,在主控模块上设有 16 个按键和扬声 器。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠, 性价比较高等,具有一定的实用和参考价值。 AbstractAbstract Electronic organ is a modern electronic music technology and the product is a new type of keyboard instruments. It played an important role in modern music. SCM has powerful control functions and flexible programming characteristics. It has converged with modern peoples lives, become an irreplaceable part. The main content is AT89C51 control of the core components, design of a electronic organ. SCM as a host to the core, with the keyboard, speaker and other core modules. In the main control module has 16 keys and a speaker. The system is steady, its simple hardware circuits, software functions, reliability of control system and high cost performance is its advantages. It also has certain practical and reference value. - 1 - 电子信息工程系毕业论文 目目录录 摘 要.1 Abstract.1 目录.2 第一章 绪论.3 第二章 总体方案.4 2.12.1 系统设计要求系统设计要求.4 4 2.22.2 电子琴系统的组成电子琴系统的组成 . . 4 4 2.42.4 系统框图系统框图 . . 4 4 第三章 硬件简介.6 3.1 AT89C513.1 AT89C51 .6 6 3.23.2 矩阵式键盘的识别和显示矩阵式键盘的识别和显示 . . 8 8 3.3 LED3.3 LED 数码管数码管.9 9 3.43.4 硬件设计图硬件设计图 . . 1111 第四章 软件设计.12 4.14.1 整体程序处理流程图整体程序处理流程图 . . 1212 4.2 I/O4.2 I/O 并行口直接驱动并行口直接驱动 LEDLED 显示显示 . 1212 4.34.3 音乐播放设计音乐播放设计 . . 1313 4.54.5 放歌子程序流程图放歌子程序流程图 . . 1616 第五章 调试.17 5.1 Proteus5.1 Proteus 简介简介 . . 1717 5.2 keil5.2 keil 简介简介 . . 1717 5.35.3 利用利用 keilkeil 与与 ProteusProteus 进行的调试进行的调试 . 1717 第六章 结论.20 致谢.21 参考资料.22 附录 完整程序.23 - 2 - 电子信息工程系毕业论文 第一章第一章 绪论绪论 随着大规模集成电路的出现和发展,芯片生产厂家把中央处理器CPU,随机 存取内存 RAM,只读存储器 ROM,定时器/计数器以及 I/O 接口电路等主要计算机 部件,集成在一块集成电路芯片(硅片)上,形成芯片级计算机,称为单片微型 计算机,直译为单片机。 单片机虽只是一个芯片, 但从组成和功能上看, 它已具有了微机系统的含义, 又称微型处理部件 MCU(Micro Controller Unit),单片机商品名称为微控制器 单元。 虽然单片机出现的历史并不长,但发展十分迅猛,在集成度、功能、速度、 可靠性、应用领域等全方位向更高水平发展。目前单片机已用于工业控制、机电 一体化设备、仪器仪表、信号处理、现代兵器、交通能源、商用设备、医疗设备 及家用电器等各个领域,随着单片机性能的不断提高,它的应用将会更加广泛。 单片机技术发展非常快,所以目前的产品都致力于在功能全面、技术先进、操作 简便、安全可靠、价格合理等方面进行仔细研究,精心设计;及时掌握最新的单 片机技术,在条件允许的情况下,尽可能地利用最新的单片机技术来研制其应用 系统,再利用单片机体积小、价格低、功能强等特点,以保证所设计的产品在未 来的一段时间内仍具生命力。在生活和生产的各个领域中,凡是有自动控制要求 的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能 想象到的地方几乎都有使用单片机的需求。现在,尽管单片机的应用已经很普遍 了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有 可以想象和拓展的空间。 单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效 率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证 安全等。 但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益 上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计 思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在 已能使用单片机通过软件(编程序) 方法实现了。这种以软件取代硬件并能提高 系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新 的概念,是对传统控制技术的一次革命。随单片机应用的推广普及,微控制技术 必将不断发展、日益完善和更加充实。 简易电子琴系统就是以单片机为主要元器件设计的一个简易电子琴,这只 是单片机应用的一个点,由点及面,希望可以更好的了解和应用单片机技术。 之所以以单片机电子琴为选题,目的在于从日常生活能接触到的细微处着 手,通过理论与实践的结合, 更明确自己的所学所用,也在实践中发现理论的不 足,对目前日益广泛应用的单片机有了更加理性化和感性化的认识,使理论和实 践相得益彰。 通过单片机电子琴这个选题,更深层次的了解了单片机技术,以前只是有理 论,实践的机会不是很多, 在作单片机电子琴这个选题的过程中,更加熟练的掌 握了一些单片机芯片的应用,也解决了很多以前理论和实践脱节的问题,可谓对 单片机的认识有了一个小的飞跃。 - 3 - 电子信息工程系毕业论文 第二章第二章 总体方案总体方案 2.12.1 系统设计要求系统设计要求 本系统分为两个部分,一个是音乐播放,另一个就是电子琴弹奏。 关于声音的处理,使用单片机 C 语言,利用定时器来控制频率,而每个音符 的符号只是存在我自己定义的表中。具体要求如下: 1.要求达到电子琴的基本功能,可以用弹奏出简单的乐曲。 2.用键盘作出电子琴的按键,每键代表一个音符。 3.各音符按一定的顺序排列,必须符合电子琴的按键排列顺序。 4.固定音乐播放有按键控制: “播放” 、 “弹奏/停止” 。 5.弹奏电子琴时能播放出准确的声音,不弹奏时可以播放内置音乐。 2.22.2 电子琴系统的组成电子琴系统的组成 单片机因体积小、功能强、价格低廉而得到广泛应用。AT89C51 单片机设计 微型电子琴的方法,仅需AT89C51 最小系统,扩展一组矩阵键盘,再接一组发光 二极管用来指示电子琴的工作状态。 本系统分为两个部分,一个是音乐另一个就是电子琴。 音乐播放部分:乐音实际上是有固定周期的信号。本文介绍用 AT89C51 的两 个定时器(如 T0,T1)控制,在 P3.7 脚上输出方波周期信号,产生乐音,通过 矩阵键盘按键产生不同的音符, 由此操作人员可以随心所欲的弹奏自己所喜爱的 乐曲, 当不想弹奏时通过按放歌键可以演奏事先存放在单片机中的几首动听的曲 子供消遣。当歌曲演奏完时, 通过按复位键便可回到初始状态,这样就做出了一 台微型电子琴。 由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这 样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于 单片机来产生不同的频率非常方便, 我们可以利用单片机的定时/计数器 T0 来产 生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即 可。乐曲中,每一音符对应着确定的频率,我们将每一音符的时间常数和其相应 的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程 序依次取出,产生音符并控制节奏,就可以实现演奏效果。 电子琴弹奏部分:实际上就是把每个按键所对应的值经过处理后发给单片 机,再在单片机内把数字当作指针指向所对应的音符。 2.42.4 系统框图系统框图 该系统通过电子琴按键随意键入所要表达的音符,作为电平送给主体电路, 中央处理器通过识别,解码输出音符, 在扬声器中发出有效的声音。通过这样可 以不断的弹奏音乐。嵌入式电路,按键电路,LED 显示电路和两个功能键组成, 通过功能键可以选择播放音乐。其主要模块由五个部分组成,具体关系如图 3-1 所示: - 4 - 电子信息工程系毕业论文 上图即为此次设计中的电子琴的硬件结构图,我们运用单片机的最小系统, 功能选择 (弹奏/播放) 4X4 矩阵式 键盘 51 单片机 AT89C51 图 3-1 带存储的电子琴框图 音频 LED 显示 用 P0 口的高四位和 P0 口的低四位作 4X4 矩阵式按键的接口,用 P2 口作数码管 的接口,用 P3.7 作信号输出口。 - 5 - 电子信息工程系毕业论文 第三章第三章 硬件简介硬件简介 3.1 AT89C513.1 AT89C51 3.1.1 AT89C513.1.1 AT89C51 简介简介 AT89C51 是一种带 4K字节闪烁可编程可擦 除只读存储器(FPEROM Flash Programmable andErasableRead Only Memory)的低电 压,高性能CMOS 8 位微 处理器,俗称单片机。 AT89C2051 是一种带 2K 字节闪烁可编程可擦除 只读存储器的单片机。 单片机的可擦除只读存 储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制 造技术制造,与工业标 准的 MCS-51 指令集和 输出管脚相兼容。由于 图 3-2 AT89C51 将多功能 8 位 CPU 和闪 烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器, AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高 且价廉的方案。外形及引脚排列如图 3-2 所示。 3.1.23.1.2 主要的功能特性主要的功能特性 与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 - 6 - 电子信息工程系毕业论文 3.1.33.1.3 管脚功能管脚功能 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的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电 平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的 地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不 变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外 部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时, 将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果 微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个 机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信 号将不出现。 - 7 - 电子信息工程系毕业论文 /EA/VPP: 当/EA 保持低电平时, 则在此期间外部程序存储器 (0000H-FFFFH) , 不管是否有内部程序存储器。 注意加密方式1时, /EA 将内部锁定为 RESET; 当/EA 端保持高电平时,此间内部程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和 XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为 片内振荡器。 石晶振荡和陶瓷振荡均可采用。 如采用外部时钟源驱动器件, XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信 号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 3.1.43.1.4 芯片擦除芯片擦除 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合, 并保持 ALE 管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在 任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持 两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计 数器,串口和中断系统仍在工作。 在掉电模式下,保存 RAM 的内容并且冻结振荡 器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3.23.2 矩阵式键盘的识别和显示矩阵式键盘的识别和显示 3.2.1.3.2.1.矩阵式键盘的结构与工作原理矩阵式键盘的结构与工作原理 在键盘中按键数量较多时,为了减少 I/O 口的占用,通常将按键排列成矩阵 形式。在矩阵式键盘中, 每条水平线和垂直线在交叉处不直接连通,而是通过一 个按键加以连接。这样,一个端口(如 P1口)就可以构成4*4=16个按键,比之 直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显, 比如再多加一 条线就可以构成20键的键盘, 而直接用端口线则只能多出一键 (9键) 。 由此可见, 在需要的键数比较多时,采用矩阵法来做键盘是合理的。 矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中, 列线通过电阻接正电源,并将行线所接的单片机的 I/O 口作为输出端,而列线所 接的 I/O 口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平, 代表无键按下。 行线输出是低电平, 一旦有键按下, 则输入线就会被拉低, 这样, 通过读入输入线的状态就可得知是否有键按下了。 具体的识别及编程方法如下所 述。 3.2.2.3.2.2.矩阵式键盘的按键识别方法矩阵式键盘的按键识别方法 确定矩阵式键盘上何键被按下介绍一种“行扫描法” 。 行扫描法 行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键 识别方法,如上图所示键盘,介绍过程如下。 1、判断键盘中有无键按下 将全部行线 Y0-Y3置低电平,然后检测列线的状 态。只要有一列的电平为低, 则表示键盘中有键被按下,而且闭合的键位于低电 平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按 - 8 - 电子信息工程系毕业论文 下。 2、判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的 过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线 为高电平。在确定某根行线位置为低电平后, 再逐行检测各列线的电平状态。若 某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 3.2.3.3.2.3. 键盘接口必须具有的键盘接口必须具有的 4 4 个基本功能。个基本功能。 (1)去抖动:每个按键在按下或松开时,都会产生短时间的抖动。 抖动的 持续时间与键的质量相关,一般为520mm。所谓抖动是指在识别被按键是必须 避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖 问题可通过软件延时或硬件电路解决。 (2)防串键:防串键是为了解决多个键同时按下或者前一按键没有释放 又有新的按键按下时产生的问题。常用的方法有双键锁定和 N 键轮回两种方法。 双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键 并产生相应的键码。N 键轮回,是当检测到有多个键被按下时,能根据发现它们 的顺序依次产生相应键的键码。 (3)被按键识别:如何识别被按键是接口解决的主要问题,一般可通过 软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本 思想是, 由程序对键盘逐行扫描, 通过检测到的列输出状态来确定闭合键, 为此, 需要设置入口、输出口一个, 该方法在微机系统中被广泛使用。线反转法的基本 思想是通过行列颠倒两次扫描来识别闭合键, 为此需要提供两个可编程的双向输 入/输出端口。 (4)键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般 在内存区中建立一个键盘编码表,通过查表获得被按键的键码。 用 AT89C51的并行口 P0接44矩阵键盘,以 P0.0P0.3作输入线,以 P0.4 P0.7作输出线;在数码管上显示每个按键的“0F”序号。 3.3 LED3.3 LED 数码管数码管 【数码管的分类】数码管的分类】 数码管按段数分为七段数码管和八 段数码管,八段数码管比七段数码管多 一个发光二极管单元(多一个小数点显 示) ;按能显示多少个“8”可分为1位、 2位、4位等等数码管;按发光二极管单 元连接方式分为共阳极数码管和共阴极 数码管。图3-3为2位数码管。共阳数码 管是指将所有发光二极管的阳极接到一 起形成公共阳极(COM)的数码管。共阳数 图 3-3LED 数码管码管在应用时应将公共极 COM 接到+5V, 当某一字段发光二极管的阴极为低电平 时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数 码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴 数码管在应用时应将公共极 COM 接到地线 GND 上, 当某一字段发光二极管的阳极 为高电平时, 相应字段就点亮。 当某一字段的阳极为低电平时, 相应字段就不亮。 - 9 - 电子信息工程系毕业论文 见图3-4。 【数码管的驱动方式】 数码管的驱动方式】 数码管要正常显示, 就要用驱动 电路来驱动数码管的各个段码, 从而 显示出我们要的数字, 因此根据数码 管的驱动方式的不同, 可以分为静态 式和动态式两类。 静态显示驱动:静态驱动也 称直流驱动。 静态驱动是指每个数码 管的每一个段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二-十进制译码器译码进行驱动。 静态驱动的优点是编程简单, 显示亮 度高, 缺点是占用 I/O 端口多, 如驱 动5个数码管静态显示则需要58 图 3-4 40根 I/O 端口来驱动,要知道一个 89S51单片机可用的 I/O 端口才32个 呢: ) ,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显 示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同 名端连在一起,另外为每个数码管的公共极 COM 增加位选通控制电路,位选通由 各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字 形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通 COM 端电路的 控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形, 没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的 COM 端,就使各 个数码管轮流受控显示,这就是动态驱动。 在轮流显示过程中,每位数码管的点 亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上 各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定 的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大 量的 I/O 端口,而且功耗更低。 - 10 - 电子信息工程系毕业论文 3.43.4 硬件设计图硬件设计图 R2 PULLUP R3 PULLUP R4 PULLUP R5 PULLUP R12 PULLUP R13 C1 22pF C2 22pF PULLUP X1 R14 PULLUP 1.2MHz 19 U1 XTAL1P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 R15 PULLUP 18 XTAL2 R1 +5v 10k 9 RST+5v C3 10pF 29 30 31 PSEN ALE EA D1弹奏/停止 LED-BLUE 1 2 3 4 5 6 7 8 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 80C51 弹奏/停止 歌曲选择 LS2 D2播放 LED-BLUE SOUNDER 利用 PROTEUS 仿真设计的硬件电路图 图中的矩阵键盘,从上到下,从左到右,依次为键盘的 0-15,在数码管上 显示时顺序为 0-9 和 A-F,在按功能键时,图上的两个指示灯会根据功能的不同 实现亮/灭状态的切换。在播放内置音乐时,指示灯在一定程度上能指示出曲目 的音符。 - 11 - 电子信息工程系毕业论文 第四章第四章 软件设计软件设计 4.14.1 整体程序处理流程图整体程序处理流程图 图4-1 整体程序处理流程图 在电子琴开始工作时,系统默认电子琴处于弹奏状态,歌曲选择功能键的目 的是赋予矩阵键盘第二功能,即对系统内置的歌曲进行选择,在放歌时能且只能 通过弹奏/停止键来结束放歌,选歌时必须先按下歌曲选择功能键,在通过矩阵 键盘来选择和切换曲目。 4.2 I/O4.2 I/O 并行口直接驱动并行口直接驱动 LEDLED 显示显示 把“AT89C51”区域中的P2.0/A8P2.7/A15端口用8芯排线连接到一位数码 - 12 - 电子信息工程系毕业论文 管的 ah 端口上;要求:P2.0/A8与 a 相连,P2.1/A9与 b 相连,P2.2/A10与 c 相连,P2.7/A15与 h 相连。 表 1字形码表及对应的音符 1 2 3 4 5 6 7 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 低 5 SO 低 6 LA 低 7 SI 中 1 DO 中 2 RE 中 3 M 中 4 FA 9 A b C D E F 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 中 6 LA 中 7 SI 高 1 DO 高 2 RE 高 3 M 高 4 FA 高 5 SO 80 x07中 5 SO00 x71高 6 LA 在本设计中,数码管的显示通过 P2=DSY_CODEk 这句语言来查表并输出,实现音符的显示。 4.34.3 音乐播放设计音乐播放设计 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这 样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于 单片机来产生不同的频率非常方便, 我们可以利用单片机的定时/计数器 T0 来产 生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即 可。 若要产生音频脉冲,只要算出某一音频的周期(1/频率) ,再将此周期 除以 2,即为半周期的时间。利用定时器计时半周期时间,每当计时终止后就将 P3.7 反相,然后重复计时再反相。就可在 P3.7 引脚上得到此频率的脉冲。 利用 AT89C51 的内部定时器使其工作计数器模式(MODE1)下,改变计 数值 TH0 及 TL0 以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其 周期 T1/5231912 s,因此只要令计数器计时 956 s/1 s956,每计数 956 次时将 I/O 反相,就可得到中音 DO(523Hz) 。 计数脉冲值与频率的关系式是: Nfi2fr 式中, N 是计数值; fi 是机器频率 (晶体振荡器为 12MHz 时, 其频率为 1MHz) ; fr 是想要产生的频率。 其计数初值 T 的求法如下: T65536N65536fi2fr 例如:设K65536,fi1MHz,求低音DO(261Hz) 、中音DO(523Hz) 、 高音 DO(1046Hz)的计数值。 T65536N65536fi2fr6553610000002fr 65536500000/fr 低音 DO 的 T65536500000/26263628 中音 DO 的 T65536500000/52364580 高音 DO 的 T65536500000/104665058 - 13 - 电子信息工程系毕业论文 单片机 12MHZ 晶振,高中低音符与计数 T0 相关的计数值如表 4-1 所示 表 4-1 音符频率表 音符 休止 频率(HZ) 简谱码(T 值) 00 63628 63835 64021 64103 64260 64400 64524 64580 64684 音符 中 4 FA 中 5 SO 中 6 LA 中 7 SI 高 1 DO 高 2 RE 高 3 M 高 4 FA 高 5 SO 高 6 LA 频率(HZ) 简谱码(T 值) 698 784 880 988 1046 1175 1318 1397 1568 1760 64820 64898 64968 65030 65058 65110 65157 65178 65217 65252 低 1DO262 低 2RE294 低 3 M 低 4 FA 低 5 SO 低 6 LA 低 7 SI 中 1 DO 中 2 RE 330 349 392 440 494 523 587 中 3 M65964777高 7 SI196765283 我们要为这个音符建立一个表格, 单片机通过查表的方式来获得相应的数据 uint code tab= 0,63628,63835,64021,64103,64260,64400,64524, 64580,64684,64777,64820,64898,64968,65030, 65058,65110,65157,65178,65217,65252,65283 音乐的音拍,一个节拍为单位(C 调) (如表 4-2 所示) 表 4-2 曲调值表 曲调值 调 4/4 调 3/4 DELAY 125ms 187ms 曲调值 调 4/4 调 3/4 DELAY 62ms 94ms 调 2/4250ms调 2/4125ms 对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。 在这个程序中用到了两个定时/计数器来完成的。其中 T0 用来产生音符频 率,T1 用来产生音拍。 - 14 - 电子信息工程系毕业论文 图 4-3 音频播放流程图 - 15 - 电子信息工程系毕业论文 4.54.5 放歌子程序流程图放歌子程序流程图 图 4-2 放歌子程序流程图 该程序实现的是单首曲目循环播放,无法在程序内部实现歌曲的切换。只能 通过外部功能键来实现曲目及功能的切换,是该电子琴设计的一个缺憾。相信如 果有更多的时间来进行调试和设计,这个设计会更加好。 - 16 - 电子信息工程系毕业论文 第五章第五章 调试调试 5.1 Proteus5.1 Proteus 简介简介 Proteus(海神)的 ISIS 是一款 Labcenter 出品的电路分析实物仿真系统, 可 仿真各种电路和 IC,并支持单片机,元件库齐全,使用方便,是不可多得的专 业的单片机软件仿真系统。 该软件的特点: 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有 明显的优势。 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿 真、RS-232 动态仿真、C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有 各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系 列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各种外围芯片。 支持大量的存储器和外围芯片。总之该软件是一款集单片机和 SPICE 分 析于一身的仿真软件,功能极其强大 ,可仿真 51、AVR、PIC。 5.2 keil5.2 keil 简介简介 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序 要变为 CPU 可以执行的机器码有两种方法, 一种是手工汇编, 另一种是机器汇编, 目前已极少使用手工汇编的方法了。 机器汇编是通过汇编软件将源程序变为机器 码,用于 MCS-51单片机的汇编软件有早期的 A51,随着单片机开发技术的不断发 展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断 发展,Keil 软件是目前最流行开发 MCS-51系列单片机的软件,这从近年来各仿 真机厂商纷纷宣布全面支持 Keil 即可看出。 Keil 提供了包括 C 编译器、 宏汇编、 连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个 集成开发环境(uVision)将这些部份组合在一起。运行Keil 软件需要 Pentium 或以上的 CPU, 16MB 或更多 RAM、 20M 以上空闲的硬盘空间、 WIN98、 NT、 WIN2000、 WINXP 等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是 十分必要的,如果你使用 C 语言编程,那么 Keil 几乎就是你的不二之选(目前 在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件) ,即使不使 用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工 具也会令你事半功倍。 5.35.3 利用利用 keilkeil 与与 ProteusProteus 进行的调试进行的调试 使用步骤: 1. 打开 keil,建立工程,输入程序 2. 编译和生成 hex 文件,如图 5-1 所示 - 17 - 电子信息工程系毕业论文 图 5-1 利用 keil 进行编译 3. 打开 Proteus,设计硬件电路图,见图 5-2 - 18 - 电子信息工程系毕业论文 图 5-2 硬件电路图 4.导入 hex 文件,见图 5-3 图 5-3 导入 hex 文件 将鼠标置于电路图中 AT89C51 器件上,右击后再左击,弹出图 5-3 中的对话 框,在红线框中导入 dzq.hex 文件。 5.点击面板左下角的,开始调试 - 19 - 电子信息工程系毕业论文 第六章第六章 结论结论 将程序导入 AT89C51 芯片,调试成功后,可任意弹奏自己想要的旋律。 本课题 通过制作电子琴,将几个模块很好的融合起来,对使用单片机设计简易电子琴进 行了分析,并介绍了基于单片机电子琴统硬件组成。利用单片机产生不同频率来 获得我们要求的音阶,最终可随意弹奏想要表达的音乐。说明一首音乐是许多不 同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频 率的组合,即可构成我们所想要的音乐了,于是我们可以利用单片机的定时/计 数器 T0 来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率 关系弄正确即可,然后我们利用功放电路来将音乐声音放大,同时通过显示模块 来确知自己所弹的音符。 通过这次课程设计,我感觉收获了很多: 首先,通过实践,加深对单片机系列知识及其系统的认识。这个设计题目并 不是新的,但从中能体现到一个系统开发设计的过程,足于让我们受益。 第二,通过设计学习到了很多软件的使用。本次设计,软件部分用到了 protues 进行硬件设计,用 keil 进行程系编译,用 protel 进行制板。 第三,提高了自己的动手能力。动手在一定程度上反映了一个人的能力,作 为当代大学生,社会要求的我们不是只能说而不能做的人才;作为海大的一员, 三能人才标准更让我们清醒地认识到,实际动手能力无比重要。从这次实物制作 中,我的动手能力提高了。 感谢学院给了我们这次实践动手的机会,更感谢我们 的周老师教育了我们单片机相关知识。 本设计还可以扩展其他功能,比如记忆功能,即可以存储弹奏者所弹奏的音 乐且保存,待弹奏完后播放给弹奏者听。 还可以做得更加娱乐一点,增加一些彩 灯使彩灯随着音调变化而产生不同的样式。 - 20 - 电子信息工程系毕业论文 致致谢谢 能够得以顺利完成,是所有曾经指导过我的老师,帮助过我的同学,一直支 持着我的家人对我的教诲、帮助和鼓励的结果。我要在这里对他们表示深深的谢 意! 首先,要特别感谢我的指导老师老师。 老师在我毕业论文的撰写过 程中,给我提供了极大的帮助和指导。从开始选题到中期修正,再到最终定稿, 老师给我提供了许多宝贵建议。老师渊博的专业知识,严谨的治学态度, 精益求 精的工作作风,诲人不倦的高尚师德, 朴实无华、平易近人的人格魅力对我影响 深远。不仅使我树立了远大的学术目标、 掌握了基本的研究方法,还使我明白了 许多待人接物与为人处世的道理。 其次,要感谢所有曾经给我们班任课的老师,老师们教会我的不仅 仅是专业知识,更多的是对待学习、对待生活的态度。 第三,感谢我的父母亲,你们是我力量的源泉,只要有你们,不管面对什么 样的困难,我都不会害怕,谢谢你们对我的支持与鼓励! 再次,感谢我的室友及其他好友,因为有你们的帮助,我的论文得以顺利完 成。感谢你们,大学三年给我了那么多的帮助与鼓励,在我不开心的时候,总能 让我开心起来。不会忘记, 大学三年里我们一起度过的欢乐时光,那些开心的日 子,总是那么令人难以忘怀。 最后对老师,同学和家人再次致以我最衷心的感谢!教导过我的老师,你们 的人格魅力永记我心间。身边的同学和朋友,有你们,我的大学才算完整。寝室 的好友,你们的天赋犹如上天恩赐,有了你们我的生活更加精彩。感谢那些同做 毕业设计的战友,那段光辉岁月不管成败,友情最可贵。 - 21 - 电子信息工程系毕业论文 参考资料参考资料 1 康年光.电子技术基础(数字部分).高等教育出版社.2005.07 2 刘乐喜.微机计算机接口技术及应用.华中科技大学出版社.2005.08 3 谢嘉奎.电子线路(线性部分).高等教育出版社.2004.04 4 潭浩强.C 语言程序设计.清华大学出版社.2005.07 5 李群芳,肖看.单片机原理、接口及应用嵌入式系统技术基础.清华大学出 版社.2005.03 6 冯博琴.微型计算机原理与接口技术.清华大学出版社.2004 7 长德,李华,李东.MCS51/98 系列单片机原理与应用.机械工业出版社.1997 8 李群芳,张士军,黄建 .单片微型计算机原理与接口技术 .电子工业出版 社.

温馨提示

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

评论

0/150

提交评论