电子琴课程设计_第1页
电子琴课程设计_第2页
电子琴课程设计_第3页
电子琴课程设计_第4页
电子琴课程设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、河南理工大学单片机应用与仿真训练设计报告模拟键盘声音控制系统姓氏:周鹏邓旭学习编号:3100880303108803030310专业课:通信0803类地图老师:高句丽大学:电气工程和自动化大学2011年11月26日摘要信息该设计基于AT89S52单片机电子钢琴的电路设计方法。该方法采用单片机定时器生成固定频率的方波信号,驱动扬声器的线率。通过使用LED显示屏显示有关音阶输入的消息,然后按键盘组中的相对键,从扬声器发出相对音阶单声道,自动保存输入的单声道,然后一起自动播放,可以实现具有存储功能的键盘系统。该设计实现了以下功能:使用蜂鸣器作为发声部件,使用两个数字管道作为显示部件,设置11个按钮,

2、实现高音、中音、低音的1、2、3、4、5、6、7的发音,存储一首歌的内容,使其可以自动播放。DO、RE、MI、FA、SO、LA、SI的7音系键盘。不同的音阶有不同的频率,这样才能把我们想要的音乐组合成不同的频率。单片机的定时/计数器T0对于生成这些方波频率信号非常方便。因此,只需准确地完成一首歌的音阶对应频率关系。用户根据乐谱在键盘上演奏,音乐生成器根据用户的演奏通过扬声器播放音乐。介绍了基于AT89S52单片机的电子琴电路设计方法。该方法采用单片机定时器生成固定频率的方波信号,驱动扬声器的线率。然后按键盘上的相对键,从扬声器发出相对音阶单音,自动存储输入的单音,然后一起自动演奏,实现具有存储

3、功能的键盘系统。关键字:微控制器、键盘、刻度、频率目录摘要21、概述41.1键盘概述41.2键盘系统原理41.3设计工作和要求42、系统范围的程序和硬件设计52.1系统硬件组件52.11 AT89S52简介52.12音乐播放第8节2.13键盘演奏第8节2.2具体的发音原则82.3电路图的每个部分102.31晶振102.32重置电路102.33键112.34发音113、软件设计123.1流程图123.2主程序代码134、Proteus软件模拟135、课程设计经验13参考文献14附录1源代码15附录2模拟图231概述1.1键盘概述电子钢琴也称为电子键盘,属于电子乐器(区别于电子音响乐器),可以自由

4、调节发音量。音域宽广,和弦丰富,甚至能产生一个管弦乐队的效果,表现力很丰富。它还可以模仿多种音调,甚至可以演奏普通乐器不能发出的声音(合唱、风雨、宇宙声等)。另一方面,电子钢琴在独奏中也可以自由搭配类似打击乐器的节拍伴奏,适合节奏感强的现代音乐演奏。AT89S52是低功耗高性能CMOS 8位微控制器,具有8K系统可编程闪存。Atmel采用高密度非易失性存储技术构建,与行业80C51产品指南和针脚完全兼容。片上闪存允许程序内存在系统中编程,适合一般程序员使用。单个芯片中包含8位CPU和系统可编程Flash,AT89S52在许多嵌入式控制应用系统中得到广泛应用。本文使用AT89C51微型计算机的强

5、大功能,通过软件生成各种频率的声音信号,并通过相应的放大电路从扬声器发出8音节。你可以演奏其他的曲子。1.2电子钢琴系统原理一个音乐由多个不同的音阶组成,每个音阶可以对应不同的频率,将我们想要的音乐配置成不同频率的组合,当然,可以利用单片机的定时/计数器T0来生成这些方波频率信号,所以我们只需要将一首曲子的音阶正确地匹配到频率关系上。如果把不同的音节和一定的节拍结合起来形成一定的曲调,只有在单芯片I/0口,通过软件控制输出不同频率的信号,就能产生8个基本音节。把音节组合成一定的节拍,就会形成歌曲。乐曲中的每个音符对应于固定的频率。如果单片机的输入线输出频率与音符相同,则将此音线连接到扬声器就可

6、以发出此音。1.3设计工作和要求该系统分为音乐回放和电子琴演奏两部分。打开控件演奏音乐或弹电子琴。这个系统使用蜂鸣器作为发声部件,演奏音乐时,演奏键没有效果;演奏时设置10个键,启用高音、中音、低音的1、2、3、4、5、6、7的发音,并将2个数码管设置为显示输入信息的显示部件。2系统范围的程序和硬件设计2.1硬件配置2.11 AT89S52简介1.概述AT89S52是低功耗高性能CMOS 8位微控制器,具有8K系统可编程闪存。Atmel采用高密度非易失性存储技术构建,与行业80C51产品指南和针脚完全兼容。片上闪存允许程序内存在系统中编程,适合一般程序员使用。在单个芯片上,图2-2 AT89S

7、52微控制器使用8位CPU和系统可编程Flash,在许多嵌入式控制应用系统中广泛使用AT89S52。2.主要性能与MCS-51单片机产品兼容。系统可编程闪存的8K字节;1000次写入周期;整体静态运作:0Hz-33 MHz;三级加密程序内存;32个可编程I/O端口线;3个16位计时器/计数器;6个中断源;全双工UART串行通道;低功耗空闲和断电模式断电后中断可以唤醒。看门狗计时器;双数据指针断电标识符。3.接脚描述P0端口:P0端口是具有8位复盖的双向I/O端口。输出端口,每个端口可驱动8个TTL徽标集级别。在P0端口上写入“1”时,端号用作高阻抗输入。访问外部程序和数据存储时,P0端口也作为

8、低8位地址/数据重复使用。在此模式下,P0没有内部拉环电阻。在Flash编程中,P0端口也用于接收指令字节。程序验证时输出指令字节。程序验证需要外部牵引阻力。P1端口:P1端口是具有内部池电阻的8位双向I/O端口,P1输出缓冲区可以驱动4个TTL逻辑级别。如果在P1端口上写“1”,则内部电阻将端口拉高,此时可以用作输入端口。用作输入时,拉向外部的针脚因内部电阻而输出电流(IIL)。此外,P1.0和P1.1分别作为计时器/计数器2的外部计数输入(P1.0/T2)和计时器/计数器2的触发器输入(P1.1/T2EX)运行。在Flash编程和验证中,P1端口接收低8位地址字节。接脚号码第二个功能:P1

9、.0 T2(输入计时器/计数器T2的外部计数),时钟输出P1.1 T2EX(控制计时器/计数器T2的捕捉/重新加载触发信号和方向)P1.5 MOSI(用于系统编程)P1.6 MISO(用于系统编程)P1.7 SCK(用于系统编程)P2端口:P2端口是具有内部池电阻的8位双向I/O端口,可以由P2输出缓冲区驱动。4个TTL逻辑级别。如果在P2端口上写“1”,内部拉阻将端口拉高,可以用作输入端口。用作输入时,拉向外部的针脚因内部电阻而输出电流(IIL)。P2端口在访问外部程序存储或将外部数据存储(如MOVX DPTR)读取到16位地址时传输高8位地址。在这种情况下,P2端口使用强大的内部池发送1。

10、使用8位地址(如MOVX RI)访问外部数据存储时,P2端口将输出P2闩锁的内容。P2端口在flash编程和验证时接收前8位地址字节和某些控制信号。P3端口:P3端口是具有内部池电阻的8位双向I/O端口,P3输出缓冲区可以驱动4个TTL逻辑级别。将“1”写入P3端口时,内部下拉菜单将提高端口,此时可以用作输入端口。用作输入时,拉向外部的针脚因内部电阻而输出电流(IIL)。P3端口还用作AT89S52特殊功能(第二个功能),如下表所示。在Flash编程和验证中,P3端口也接收一些控制信号。端口针脚第二个功能:P3.0串行输入端口(RXD)P3.1串行输出端口(TXD)P3.2 INTO(外部中断

11、0)P3.3 INT1(外部中断1)P3.4 TO(计时/计数器0)P3.5 T1(计时/计数器1)P3.6 WR(外部数据存储写入门控)P3.7 RD(外部数据存储读取门控)P3端口还接收用于FLASH FLASH编程和程序验证的某些控制信号。RST:重置输入。振荡器工作时,RST针脚上出现两个机器周期以上的高水平是单片机复位。ALE/PROG:访问外部程序或数据存储时,地址锁定(ALE)输出脉冲用于锁定地址的低8位字节。艾耳通常将固定脉冲信号输出到时钟振荡频率的1/6,因此可以输出外部时钟或用于计时用途。每次访问外部数据存储时跳过一个ALE脉冲。此针脚还用于在编程闪存时输入PROG (Pr

12、og)。如果需要,特殊功能寄存器(SFR)区域可以通过8EH单元中的D0位置位禁止ALE操作。有了这个位置位元,只有一个MOVX和MOVC指令可以启用ALE。此外,针脚应该稍微拉一下,并且当单片机运行外部程序时,禁止all位无效。PSEN: PSEN(允许程序存储)输出是外部程序内存的读取选择通信号,AT89S52从外部程序存储获取指令(或数据)时,PSEN在每个系统周期中有效两次。也就是说,访问外部数据存储时,PSEN信号将跳过两次。EA/VPP:要通过外部访问使CPU仅访问外部程序存储(0000H-FFFFH地址),必须在EA端保持较低级别(接地)。如果加密位LB1已编程,请注意,重置时内

13、部EA端状态将锁定。如果EA是高级别(Vcc端),CPU将向内部程序存储发出命令。在对闪存进行编程时,向针脚添加12V的编程允许电源Vpp。当然,该设备必须使用12V编程电压Vpp。XTAL1:振荡器倒相放大器和内部时钟发生电路的输入端。XTAL2:振荡器倒相放大器输出。2.12音乐播放部分音乐声音实际上是固定周期的信号。该系统使用AT89s52的计时器控制,在P3.6脚输出方波周期信号,生成音乐。乐曲中的每个音符对应于一个确定的频率,将每个音符的时间常数和相应的节拍常数组合成一个组,将音乐中的所有常数按顺序排列,然后从诗选表程序中依次取出,生成音符,控制节奏,就能达到演奏效果。输出中,我们用

14、蜂鸣器及其驱动电路发出声音。2.13电子琴演奏部分这个系统安装了10个键,其中3个是高音、中音、低音的选择按钮,其他的是发音按钮。通过按不同的键制作不同的音符,通过调节键长调节发音的长度,演奏者可以随心所欲地演奏喜欢的曲子。电子钢琴处理每个键的对应值,发送到微芯片,在微控制器里把这个数字当作指针指向的音符。我们使用了微控制器系统,该系统将P2端口中的低3位用作高、中、低音选择键、P1端口中的低7位用作发音键接口。2.2具体的发音原则一种音乐由多个不同的音阶组成,每个音阶可以对应不同的频率,将我们想要的音乐组合成不同的频率组合。当然,生成单片机的不同频率很方便。利用单片机的定时/计数器T0可以生

15、成这样的方波频率信号,所以我们只要将每个音阶适当地配合到频率关系就行了。要生成音频脉冲,请计算音频的周期(1/频率),然后将此周期除以2,即1/2周期。使用计时器计时反周期时间,每次计时结束时反转蜂鸣器端口,然后重复计时。这个频率的脉冲可以从该针上获得发音。使用AT89S52的内部计时器在操作计数器模式(MODE1)下更改TH0和TL0的初始值以生成不同频率的方法(例如,如果频率为523Hz,则周期t=1/523=1912 s,因此计数器计时956 s/1 s=956)计算脉冲值和频率的关系如下:N=fi2fr表达式中的n是计数值。Fi是机器频率(晶体振荡器为12MHz,频率为1mhz)。Fr是要生成的频率。计算初始值t的方法如下:T=65536-n=65536-fi2fr例如,设置k=65536、fi=1mhz、低音DO(261Hz)、523hz和高音DO(1046Hz)的值。T=65536-n=65536-fi2fr=65536-100000002 fr=65536-500000/fr基准DO

温馨提示

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

评论

0/150

提交评论