基于AT89C52单片机的简易电子琴设计毕业论文.doc

上传人:小小飞 文档编号:3920091 上传时间:2019-10-10 格式:DOC 页数:34 大小:3.07MB
返回 下载 相关 举报
基于AT89C52单片机的简易电子琴设计毕业论文.doc_第1页
第1页 / 共34页
基于AT89C52单片机的简易电子琴设计毕业论文.doc_第2页
第2页 / 共34页
基于AT89C52单片机的简易电子琴设计毕业论文.doc_第3页
第3页 / 共34页
基于AT89C52单片机的简易电子琴设计毕业论文.doc_第4页
第4页 / 共34页
基于AT89C52单片机的简易电子琴设计毕业论文.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《基于AT89C52单片机的简易电子琴设计毕业论文.doc》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的简易电子琴设计毕业论文.doc(34页珍藏版)》请在三一文库上搜索。

1、滨滨江学院江学院 毕业论文毕业论文 题题 目目 简易电子琴设计简易电子琴设计 院院 系系 滨江学院滨江学院 专专 业业 电子信息工程电子信息工程 学生姓名学生姓名 张盛杰张盛杰 学学 号号 2009230501720092305017 指导教师指导教师 吴大中吴大中 二一三二一三 年年 五五 月月 二十五二十五 日日 声 明 本人郑重声明: 1、 持以“求实、创新”的科学精神从事研究工作。 2、 本论文是我个人在导师指导下进行的研究工作和取得的研究成 果。 3、 本论文中除了引文外,所有实验、数据和相关材料均是真实的。 4、 本论文中除引文和致谢的内容外,没有抄袭其他人或其他机构 已经发表或撰

2、写过的研究成果。 5、 其他同志对本研究所做的贡献均已在论文中作了声明并表示了 谢意。 作者签名: 日 期: 目 录 1.引言.1 2 工作原理2 2.1 电子发音原理.2 2.1.1 音调2 2.1.2 节拍5 2.2 设计可行性.5 2.3 设计指标6 3 硬件电路6 3.1 简易电子琴的组成框图.6 3.2 芯片选用.7 3.4 键盘设计9 4.软件设计10 4.1 主程序流程图.10 4.2 程序设计内容.11 5调试.15 5.1 Proteus 简介15 5.2 keil 简介15 5.3 仿真步骤17 6总结.19 致谢20 附录22 0 简易电子琴设计简易电子琴设计 张盛杰 南

3、京信息工程大学滨江学院 09 电子信息工程专业,南京 210044 摘要:摘要:本论文主要基于 AT89C52 单片机进行的简易电子琴设计。通过 LCD 显示屏、喇叭、键盘等外部器件,使用按键实现各 种音调和音符的输入,LCD 显示屏进行被操作的按键显示,用放大电路实现低音频信号的功率放大,最后经过调试用喇叭播 放相关音乐。本设计的优点是安全,硬件电路比较简单,操作起来便捷容易上手。 关键词:关键词:单片机;电子琴;LCD 显示屏 1.1.引言引言 电子技术伴随着现代社会科学技术的快速发展,它已经改变了人们生活的各个方面,电子琴作为一 种新型的的键盘乐器是音乐与现代电子科学技术发展相结合的产物

4、,虽然没有其它乐器那么多鲜明的特 点,但是它的简单易学已经让它在现代音乐中占到了一个很重要的位置。而单片机具有强大的编程实现 特性和灵活的控制功能,它成为了电子琴中不可替代的重要一部分,本设计的主要任务是用 AT89C52 单 片机作为核心控制元件,设计一个简易电子琴,主要介绍了电子琴硬件系统的组成并对相关软件程序方 面做了相关的分析研究和调试。 虽然单片机产生的时间并不是太长,但它的发展速度令人惊讶,它的高水平发展在集成度、可靠性、 速度、应用等领域表现的淋漓精致。随着单片机性能的不断提高,它的应用变得更加广泛,目前它已用 于工业控制、机电一体化设备、仪器仪表、信号处理、现代兵器、交通能源、

5、商用设备、医疗设备及家 用电器等多个领域。单片机技术的发展速度非常之快,目前的产品都致力于在各个功能方面进行更加全 面的设计研究;在社会消费的需求竞争之下,尽可能地利用单片机的最新技术来研制其应用系统,再利 用单片机灵便、性价比高等特点,来确保所设计出来的产品能够具有强大的竞争力和存活力。在社会活 动的各个方面中,始终都有单片机的身影;从简易的到复杂的,各个地点,凡是能看到的地方几乎都有 使用单片机的需求。虽然现在单片机供应的应用已经普及开来了,但还是有许多单片机尚未涉足到的地 方,因此,单片机的应用和需求在现在现代社会的运用中还是有发展的。 电子琴在当前的音乐玩具市场上是一个非常好的应用方面

6、。单片机技术使我们可以利用软硬件开发 出电子琴功能,从而实现电子琴的微型化,可以用作教学琴、玩具琴等。还可以对相关功能作出一些拓 展。参照传统电子琴可以用键盘上的“k0”到“k8”键演奏从低 So 到高 DO 等 8 个音,从而可以用来弹 奏喜欢的乐曲。 1 2工作原理工作原理 声音是周围空气的震动,音调取决于震动的频率,频率越高音调越高。电子琴按下不同的琴键就会 发出不同音调的声音,其实就是产生不同频率的震动。单片机电子琴就是利用单片机产生不同频率的电 压波形,推动扬声器或蜂鸣器来发出不同音调的声音。假设电子琴有八个音阶,就对应 8 个不同的频率, 频率越高音调就越高。单片机很容易输出方波信

7、号,那么只要让它产生不同频率的方波就可以了,然后 用这个方波信号驱动扬声器就可以了。单片机的按键可以模拟琴键,按下不同的按键就对应不同的频率 的方波,就能发出不同频率的声音。 2.1 电子发音原理电子发音原理 由于单片机的强大功能,除了在测试控制领域中有着广泛的运用外,还有一些简单而有趣的应用。 比如,驱动单片机可以使蜂鸣器和扬声器发出声音,还可以控制其发出不同的声调,从而连接起来构成 一个曲子。 目前,市场上有很多种音乐模块和音乐芯片,可以直接产生各种曲子,但是,这种模块价格比较昂 贵,电路结构比较复杂,如果系统中仅需要产生简单的音符或者简单的曲子,可以使用单片机配合扬声 器产生需要的音乐效

8、果。 一般来说,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。 单片机演奏的音乐基本上都是单音频率。因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍” 。在这两个当中,音调表示某个音符所表现的频率的高低程度;节拍表示某个音符所表现的时间长久。 音乐播放在本系统中,一般只需按顺序播放音符即可。用单片机播放音乐的方法如下: (1)复位单片机定时器 (2)将乐谱中的各个音符的音调及节拍转换成各个对应的音调和节拍参数 (3)将乐谱中音符的参数做成数据表格存放在存储器中 (4)通过程序取出一个音符的相关参数,如此直到播放完毕最后一个音符,根据需要也可循 环不停地播放整

9、个乐曲。 2.1.1 音调音调 音调是音乐学中的名词,与平时所说的音高十分相似。在音乐中标准音高为中音 C 上方的 A 音,它 的频率是 f = 440Hz,把其它的音和它进行比较。 和为两个不同的音符,如果其中一个音符的频f 1 f 2 率是另外一个音符的两倍时,即时,则称比要高出一个倍频程。2 12 f ff 2 f 1 在音乐中音符 1(do)与音符之间其中一个的频率正好是另外一个音符频率的两倍,它在音乐学中 2 被称为相差一个八度音。在一个八度音里,有 12 个半音。以 1-八音区为例。12 个半音是:1- #1,#1-2,2-#2,#23,34,4-#4,#45,5-#5,#56,6

10、-#6,#67,7-。由于人耳的听觉效果, 这 12 个音节的分度基本上都是以对数关系来划分它们的。因此,只需要知道这 12 个音符的音高,也就 是它们基本的音乐的频率,就可以根据音符之间的倍频程关系得到其他音符基本的音调频率。 在知道了一个音符的频率后,就可以让单片机发出相应的频率所对应的的振荡信号,从而产生相应 的音符声音。常采用的方法是通过单片机的定时器进行定时中断,在中断服务子程序中将单片机上外界 扬声器的 I/O 口来回置高电平或置低电平,从而让扬声器发出声音。为了让单片机发出不同频率音符的 声音,只需将定时器预置不同的定时值来实现。 以标准音高 A 为例: 标准音高 A 的频率 f

11、=440Hz,其对应的周期为: (2-12-1)usfT2272/1 因此需要在单片机 I/O 口输出周期为 T=2272us 的方波脉冲,如图 2-1 所示 图 2-1 单片机控制音调示意图 由上图可知: 单片机输出高电平和低电平信号均为: (2-2)usTt11362/ 也就是说,单片机上定时器的中断触发时间为 1136us。如果单片机采用定时器工作方式 1,它的计数脉 冲为振荡器的十二分频信号。如果外接晶振的振荡器频率为 f0,那么定时器的预置初值由下式来显示: (2-3) f TTCountt 0 )(12 式中,Count = =65536, 是定时器将要确定的计数初值。所以定时器的

12、高低计数器的初值为: 2 16 THL (2-4) 256)12/(256/ 0 f tCountTTTH 3 (2-5)256)%12/(256% 0 f tCountTTTL 如果单片机外接 12MHz 的晶振,则,把 t=1136us 和代入上面的两式,MHz f 12 0 MHz f 12 0 随之可以求出标准音高 A 在单片机定时器工作方式 1 下的定时器高低计数器的初值为: (2-6)FBHTT THA 256)12/12113665536(256/ (2-7)HTT THA 90256)%12/12113665536(256% 参考以上的求法,我们就可以得出其他音调相应的计数器的

13、预置初值。 在单片机的晶振频率,定时器在工作方式 1 下定时器计数初值见表 2-1MHz f 12 0 音符频率/Hz计数初值音符频率/Hz计数初值 低 1 DO26263628# 4 FA #74064860 #1 DO#27763731中 5 SO78464898 低 2 RE29463835# 5 SO#83164934 #1 RE#31163928中 6 LA88064968 低 3 MI33064021# 6 LA#93264994 低 4 FA34964013中 7 SI98895030 #4 FA#37064185高 1 DO104665058 低 5 SO39264260# 1

14、 DO110965085 #5 SO41564331高 117565110 低 6 LA44064400#2 RE#124565134 #6 LA#46664463高 3 MI131865157 低 7 SI49464524高 4 FA139765178 中 1 DO52364580# 4 FA#148065198 # 1 DO#55464633高 5 SO 156865217 中 2 RE58764684# 5 SO#166165235 #2 RE#62264732高 6 LA176065252 中 3 MI65964777# 6 LA#186565268 中 4 FA69864820高 7

15、 SI196765283 表 2-1 晶振频率定时器在工作方式 1 下定时器计数初值表MHz f 12 0 4 2.1.2 节拍节拍 在一张完整乐谱开头,都有如 1=C、1=G等等的标识。这里 1=C,1=G 标识乐谱的曲调, 4 4 4 3 简单的说就是跟音调有关系;这里的、用来表示节拍。对于音符的节拍,以为例。它表示 4 4 4 3 4 3 乐谱中以四分音符为节拍,每一小节有三拍。1= G的节拍示意图,见图 1-2 。 4 3 在图中,总共有三拍:1、2 为一拍,3、4、5 为一拍,6 为一拍。从时长角度看,1、2 的时长为四 分音的一半,即为八分音符长;3、4 的时长为八分音符的一半,即

16、为十六分音符长;5 的时长为四分音 符的一半,即为八分音符长;6 的时长为四分音符长。 1=G 4 3 图 2-2 节拍示意图 对于一拍的发音时间,如果乐曲没有特殊说明,一般说来,一拍的时长大约为 400450ms。如果这里 规定一拍的时长为 400ms,那么以四分音符为节拍时,四分音符的时长为 400ms,八分音符的时长为 200ms,十六分音符的时长为 100ms。 从而,在单片机上可采用循环延时的办法来实现控制一个音符唱多长时间。首先要编写一个精确的 基本时长的延时程序,比如说以八分音符的时长为基本延时时间,那么对于一个音符,如果它是四分音 符,只需调用四次延时程序,如果它是二分音符,则

17、只需调用八次延时程序,以此类推。 单片机电子琴演奏音乐的方法: 步骤一:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍数。 步骤二:将这些参数做成数据表格,存放在存储器中。 步骤三:通过按键调用程序取出一个音符的相关参数,播放该音符。 步骤四:播放完该音符后,等待下一次按键调用程序去取出下一次的音符的相关参数,再播放音符。 对于演奏乐曲,一般将休止符的音调参数设置为 FFH,节拍参数设置为 00H。 5 2.2 设计可行性设计可行性 由于本次设计主要应用在生活相关的教学娱乐当中,所以在设计上要尽量的使其变的简单安全容易 操作。其次,在这次设计可行性上进行分析如下: 技术可行性 技术可

18、行性主要是分析技术条件上是否能够顺利开展并完成课程设计的主要问题,硬件、软件能否 满足设计者的需要等。通过分析各种软件环境,硬件仿真环境等均已经具备。 经济可行性 所谓经济可行性,即在这次设计上需要投入资金的多少,由于课程设计是提高我们的动手能力以及 资金有限。因此在经济上必须能够承受,比较理想化的对于我们课程设计来说是不可行的。通过分析后, 无论是在器件价格或是常见度上均是可行的。 该设计具有以下优点: 可以随意弹奏想要表达的音乐; 制作简单,成本低; 比传统电子琴功能更完善。 2.3 设计设计指标指标 实现电子琴发声控制系统,要求电路实现如下功能: 利用 LCD 数码管作为显示部件,喇叭作

19、为发声部件,设置 8 个按键,实现高音、中音、低音的 1、2、3、4、5、6、7、8 的发音。并在存储一首歌曲的内容,可以实现自动播放。 用 PROTEUS 实现的电子琴仿真设计。 按下音符键可以发出相应的音符 按下音乐播放键可以自动播放预先存在内存中的曲子 AT89C52 作为本设计的主控芯片,作为大规模集成电路技术发展的产物,它拥有高性能、高速度、 简单、体积小、价格低廉、稳定可靠、应用广泛的特点,也具有编程实现灵活的特性,由于本设计主要 用于教学娱乐方面,因此在设计上尽量使其简单易懂。 3硬件电路硬件电路 通过 LCD 显示屏、喇叭、键盘这一些外部器件,经过按键实现各种音调和音符的输入,

20、LCD 显示屏 进行被操作的按键显示,用放大电路实现低音频信号的功率放大,然后通过调试用喇叭播放相关音乐。 6 3.1 简易电子琴的组成框图简易电子琴的组成框图 图 3-1 电子琴系统原理框图 (1)LCD 显示屏 LCD 液晶显示器是 Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃基板当中放 置液晶盒,下基板玻璃上设置 TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过 TFT 上的信号与 电压改变来控制液晶分子的转动方向,以此来达到控制住每个像素点偏振光出射与否从而达到显示的目 的。自然界中的物质有气态、液态、固态三种型态。虽然液体分子质心的排列

21、没有任何规律性,不过如 果这些分子是扁形的,那么这些分子的分子指向就有可能具有规律性。因此人们就可以将液态再次细分 成好多型态。液体直接称为分子方向没有规律性的液体,如果分子具有方向性的液体,那么就可以称它 为为“液态晶体”,简称“液晶”。生活中的电视、手机绝大多数产品都属于液晶产品,因此,液晶对 于人们的生活来说并不陌生。液晶是在 1888 年由奥地利植物学家莱尼茨尔(Reinitzer)发现的,是一 种介于固体与液体之间且具有规则性分子排列的有机化合物。 (2)时钟频率 由于单片机只有在时钟的驱动下才能完成工作。在单片机内部放置一个时钟振荡电路,它只要外接 一个振荡源就能产生相定的时钟信号

22、传输到单片机内部的各个单元,以此决定单片机的工作速度。外部 振荡源电路一般选用石英晶体振荡器,此电路在加电大约延迟 10mS 后振荡器起振,在 XTAL2 引脚产生幅 度为 3V 左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2,作用 有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2 的典型值为 30PF。 晶振电路 AT89C52 供电及复位电路 发音电路 键盘 LCD 显示屏 7 工作中的单片机,由外直接输入的送至内部控制逻辑单元的时钟信号的周期或内部振荡器产生的称 为时钟周期。时钟信号频率的倒数是零大小,通常用 fosc 表示。如时钟

23、频率为 6MHz,即 fosc=6MHz,则 时钟周期为 1/6s。 3.2 芯片选用芯片选用 在此次的毕业课程设计中使用 Atmel 公司所开发的 AT89C52 单片机。AT89C52 是美国 Atmel 公司生 产的具有低高性能、低电压等特点的 CMOS 8 位单片机,内部含有 8KB 的可以不断修改的程序存储器和 12B 的随机存取数据存储器(RAM) ,它使用了 Atmel 公司的高质密、不容易失性存储的技术生产,并且和 标准 MCS-51 指令系统所兼容,片内配置通用 8 位中央处理器(CPU)和 Flash 存储单元,由于 AT89C52 的强大功能使它可以广泛的应用到人们生产生

24、活的各个方面。AT89C52 的前身是 AT89C51,它在硬件组成、 工作特点、引脚排列等方面兼容 Intel 公司的 80C52。AT89C52 的引脚图如图 3-2。 图 3-2 AT89C52 的引脚示意图 其主要功能特性: (1)和 MCS51 指令系统相兼容 (2)8k 可反复擦写(1000 次)Flash ROM (3)32 个双向 I/O 口 (3)3 个 16 位可编程定时/计数器中断 (4)时钟频率 0-24MHz (5)2 个串行中断 (6)可编程 UART 串行通道 (7)2 个外部中断源 (8)共 6 个中断源 (10)2 个读写中断口线 3.3 单片机最小电路系统单

25、片机最小电路系统 单片机的最小工作系统是单片机加上应用程序和合适的外围器件。 (1)但单片机的应用系统中,单片机是核心部件,它能够自动完成用户的需求所赋予的任务。 (2)电源电路单片机是一种超大规模集成电路,在该集成电路内有成千上万个晶体管或场效应骨。 8 因此,要使单片机正常运行,就必须为其提供能量,即为片内的晶体管或场效应管供给电源,使其能工 作在相应的状态。 (3)输入输出口线插座: 单片机通过输入输出口线与外界来完成转换信息的任务。如,单片机与外 设的通讯就是通过输入输出口线来实现的。单片机输入输出口线的驱动能力有限。当驱动能力不足的时 候,就可以在口线上接驱动器。 时钟电路可以简单定

26、义如下: 就是产生象时钟一样准确的振荡电路。 任何工作都按时间顺序。 构成振荡器的是单片机背部的一个高增益反相放大器。通常在引脚 XTALl 和 XTAL2 跨接石英晶体和 两个补偿电容构成自激振荡器,结构图 3-3 中 X1、C1、C2。 图 3-3 时钟电路 单片机小系统常采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通 电源后,自动实现复位操作。手动按钮复位需要人为在复位输入端 RST 上加入高电平(图 1)。一般采用 的办法是在 RST 端和正电源 Vcc 之间接一个按钮。当人为按下按钮时,则 Vcc 的+5V 电平就会直接加到 RST 端。手动按钮复位的电路

27、如所示。即使人的动作再快也会让按钮保持接通的状态达数十毫秒,因此, 它能够完全满足复位的时间要求。 手动复位的要求是,在电源接通的条件下,在单片机运行的期间内, 使用按钮开关操作将单片机复位。单片机小系统一般采用手动按键复位和上电复位两种方法来实现系统 的复位操作。上电复位要求是,接通电源后,系统能够自动实现复位操作。手动复位要求是,在电源接 通的条件下,在单片机运行期间内,用按钮开关操作使单片机复位。它的结构见下图。 图 3-4 复位电路 9 3.4 键盘设计键盘设计 在设计的过程中由于键盘中按键数量比较多,为了减少 I/O 口的占用,一般将按键排列成矩阵形式。 在矩阵式键盘里,各个水平线和

28、垂直线在交叉处是不直接连通的,而是通过一个按键将它们加以连 接的。所以一个端口就可以构成 4*4=16 个按键,与直接将端口线用于键盘相比之下多出了一倍,而且在 线数更多的情况下,区别就会越明显,或者再多加一条线就能够构成 20 键的键盘,而直接用端口线就只 能多出一键(9 键) 。综上所述,在需要的键数比较多的情况时,使用矩阵法来做键盘是很合理的。 在单 片机的系统中,假如按键比较多,一般就会采用矩阵式(也称行列式)键盘,此次毕业设计就采用了此 种键盘。矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。很明显,在按键数量比较多的 时候,矩阵式键盘要节省很多 I/O 口。虽然矩阵键盘在硬

29、件电路上相比其他键盘比较复杂,而且在程序 算法上还比较麻烦,不过它在节省端口资源上非常具有优势,因所以它比较适合于多按键电路。 采用矩阵式键盘电路,可以大大的节省单片机 I/O 的开销。 图 3-5 键盘 10 4.软件设计软件设计 软件主要由初始化程序、键盘扫描程序、音调发生程序、延时程序和曲调播放程序组成。程序框图 如图 4-1 所示。 4.1 主程序流程图主程序流程图 本设计共两种播放模式,包括自动播放存储音乐和按键发音。上电之后,首第一先开中断,设置定 时器 0 为工作方式 1,当自动播放键按下的时候,进入中断,根据乐谱在音频数组中查找相应的音律,给 定时器赋上初值,最后开始播放音乐。

30、当 DO、RE、MI、FA、SO、LA、SI、DO(高音)八种音符键按下时, 根据音阶值和音符值在定义的音频数组中查找相应音律,然后给定时器赋初值,即按键发音。下为主程 序流程图。【播放程序见附录】 11 图 4-1 程序流程图 4.2 程序设计内容程序设计内容 (1)44 矩阵键盘识别处理之中每个按键有它们自己的行值和列值,它们的组合就是能够识别这 个按键的编码。在矩阵中,它的的行线和列线分别通过两并行接口和 CPU 通信。每个按键的状态都需要 变成数字量“0”和“1”,开关的一端(列线)通过电阻接 VCC,而接地就是通过程序输出数字“0”所 实现的。 (2)键盘处理程序的目的是:确定有没有

31、键按下,再判断是哪一个键按下的,这个键所展示的功能 开始 开中断并设置工作式寄存 器 有键按下 自动播放键按下 进入中断 查找相应音律 给定时器赋值 播放音乐 进入中断 查找相应音律 给定时器赋值 播放键值对应音符 12 是什么;而且还要消除按键在闭合或断开的状态时的抖动。两个并行口中,一个输出扫描码,另一个并 行口随之输入按键状态,将按键逐行动态接地,行扫描值和回馈信号共同形成键编码而识别按键,该键 功能可以通过软件查表来看到。下为主函数键盘处理部分 void main (void) uchar num,k,i; lcd_init(); lcd_string(0,10,dis10);/ 开机

32、画面 lcd_string(11,5,dis11);/开机画面 Init_Timer0(); /初始化定时器 0,主要用于数码管动态扫描 SPK=0;/在未按键时,喇叭低电平,防止长期高电平损坏喇叭 lcd_string(0x40+0,5,“NOTE:“); while (1) switch(KeyPort) case 0xfe:num= 1;break; case 0xfd:num= 2;break; case 0xfb:num= 3;break; case 0xf7:num= 4;break; case 0xef:num= 5;break; case 0xdf:num= 6;break;

33、case 0xbf:num= 7;break; case 0x7f:num= 8;break; default:num= 0;break; 13 lcd_string(0x40+7,1,YINFUnum); if(num=0) TR0=0; SPK=0; /在未按键时,喇叭低电平,防止长期高电平损坏喇叭 else High=freqnum-11; Low =freqnum-10; TR0=1; if(tab=0) delayms(10); if(tab=0) i=0; while(i“Debug(调试)“中,选中“Use Remote Debug Monitor(使用远程调试监控)“,再左键双

34、击 芯片将所生成的 .hex 文件写入 AT89C52 芯片中,将 .hex 文件载入,就完成了序的写入。导入文件如图 5-4 所示 图 5-4 hex 文件导入 19 5、此时程序已经写入芯片中,这时就可以进行电路图功能的仿真了。点击左下方的运行按钮。如图 5-5 图 5-5 点击开始仿真 6、仿真结果,摁下相关键位发出相应声音 LCD 显示屏显示相关音符,如图 5-6 图 5-6 仿真结果 6总结总结 经过两个多个月的努力,简易电子琴的电路设计成功了,简易电子琴的设计有众多的方法,此次选择 了以单片机为基础的简易电子琴历,当然这和我们所学的专业有很大的关系,首先我们所学的课程中有关 电子硬

35、件的知识占了多数,在大学期间学习了单片机原理等基础电子有关知识。 基于单片机原理的电子 琴大大简化了以前传统的音乐产生电路,使得元件得到减少,生产成本降低而且性能也得到了提高,并 且耗能也降低了。将程序烧入芯片,调试成功后,可任意弹奏自己想要的旋律。 不足之处有: (1)可弹奏的音符数较少,只能在一定范围内满足用户需要。可通过改进键盘识别模块和发生模块 来增加其复杂度。 (2)音量不可调。 以单片机基础铺以外部设备设计的简易电子琴,它可以被制造成一个电子产品,应用方便,可以广 泛的应用与我们的日常生活中。伴随着科技水品的提高,电子产品会朝着节能、使用寿命长,故障发生频 率低、体积小、功能强大等

36、方面迅踊发展,而单片机的发展必然会促进其发展,在不久的将来,高性能 20 的单片机系统会在电子领域得到广泛应用,所以现在对单片机进行初步的研究对以后个人的发展很有帮 助。 我通过收集、查阅与发声原理、声音的产生电路有关的文献资料以及仿真调试软件的使用使我对单 片机的应用前景有了深刻的了解。 致谢致谢 通过两个多月的学习查资料终于将这篇论文顺利完成,在这个过程中遇到了不少的问题,都在各位 同学朋友和导师的帮助下得以解决,同时也认识到了自身综合知识方面的欠缺。在这里我首先要强烈谢 谢我的论文指导老师吴大中老师,他对我进行了无数次的指导,不厌其烦的帮助我进行论文的修改 和改进。其次感谢这篇论文所涉及

37、到的各位学者,本文引用了各位学者的研究文献,如果没有各位学者 的研究成果的帮助和启发,我将很难完成本篇论文。最后感谢我的同学和朋友,在论文的撰写和排版的 过程中提供热情的帮助。 由于我的学术水平有限,所写论文难免还有许多缺点和错误,恳请各位老师批评和指正。 参考文献:参考文献: 1张鑫,华臻,陈书谦.单片机原理与应用.(M).电子工业出版社,2009,6 2肖婧.单片入门与趣味实验设计(M).北京航空航天大学出版社,2008,4 3陈明荧.8051 单片机课程设计实训教材(M).清华大学出版社,2004,3 4赵建领.51 系列单片机开发宝典(M).电子工业出版社,2007,4 5求是科技.8

38、051 系列单片机 C 程序设计完全手册(M).人民邮电出版社,2006,4 6楼然苗,李光飞.51 系列单片机设计实例(M) .北京航空航天大学出版社,2003,3 7百度百科.音符(Online) . http:/ 8 周琛晖.基于 AT89S51单片机的电子琴设计J .中国矿业大学计算机学院,江苏徐州(221008). 9 韩改宁.基于AT89C52实现简单音乐发生器J .咸阳师范学院计算机科学系.陕西成阳(712000). 10ChenTianzhou,ZbaoYi,HuWe.Assigning program to cache-aware scratchpad concerning

39、the in fluence of the whole embedded sys- tem CNetworking,Architecture,and Storages IEEE Conf of International Workshop on Aug2006 21 Research and Design for the Simple Electronic Organ Department of electronics of Nanjing University of Information Science and Technology, Nanjing ShengjieZhang 21004

40、4 ABSTRACT Abstract: This design study based on AT89C52 simple flower design. It is based on the microcontroller as a master core set of periph eral devices such as keyboard, buzzer; also use some simple devices such as: two digital tube, and an NPN transistor and resistors, et c Keys to input notes

41、 and tones; button to display two digital tube operation; achieve low audio power amplifier with an NPN transi stor 8550 play “Farewell“; final buzzer. Keywords: AT89C52 ; Electronic Organ;LCD screen 22 附录附录 1、实物图 2、电子琴程序 #include #define uchar unsigned char #define uint unsigned int #define KeyPort

42、 P1 #define comm 0 #define dat 1 /*- 变量 -*/ uchar High,Low; /定时器预装值的高 8 位和低 8 位 23 sbit SPK=P21; /定义喇叭接口 sbit tab=P34; /功能键 sbit RS=P25;/液晶数据命令选择 sbit RW=P26;/液晶读写选择 sbit EN=P27;/液晶使能端 uchar code freq2= 0xD8,0xF7,/00440HZ 1 0xBD,0xF8,/00494HZ 2 0x87,0xF9,/00554HZ 3 0xE4,0xF9,/00587HZ 4 0x90,0xFA,/00

43、659HZ 5 0x29,0xFB,/00740HZ 6 0xB1,0xFB,/00831HZ 7 0xEF,0xFB,/00880HZ 1 ; uchar Time; uchar code YINFU91= ,1,2,3,4,5,6,7,8; /世上只有妈妈好数据表 uchar code MUSIC= 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,

44、5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1, 2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0 ; / 音阶频率表 高八位 uchar code FREQH= 0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, 24 0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, /1,2,3,4,5,6,7,8,i 0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF, ; / 音阶频率表 低八

45、位 uchar code FREQL= 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, /1,2,3,4,5,6,7,8,i 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16, ; uchar code dis1210=“ELECTRONIC“,“ORGAN“; /*- 函数声明 -*/ void Init_Timer0(void);/定时器初始化 /*- 延时函数大约约 2*z+5us -*/ void

46、delay2xus(uchar z) while(z-); /*- 延时函数大约约 1ms -*/ void delayms(uchar x) while(x-) 25 delay2xus(245); delay2xus(245); /*- 1602 液晶写命令 comm/数据 dat -*/ void lcd_wr(uchar comm_dat,uchar xdat) RS=comm_dat; RW=0; delay2xus(10); P0=xdat; EN=1; delayms(1); EN=0; /*- 1602 液晶写字符串命令 -*/ void lcd_string(uchar add,uchar mun,uchar *pstring) lcd_wr(comm,0x80+add); while(mun-) lcd_wr(dat,*(pstring+); /*- *1602 初始化* -

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1