收藏 分享(赏)

简易8按键电子琴设计实验.doc

上传人:dcjskn 文档编号:8420941 上传时间:2019-06-25 格式:DOC 页数:11 大小:148.50KB
下载 相关 举报
简易8按键电子琴设计实验.doc_第1页
第1页 / 共11页
简易8按键电子琴设计实验.doc_第2页
第2页 / 共11页
简易8按键电子琴设计实验.doc_第3页
第3页 / 共11页
简易8按键电子琴设计实验.doc_第4页
第4页 / 共11页
简易8按键电子琴设计实验.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、本文仅供参考电子琴系统设计设计要求设计一个简易电子琴。(1)用喇叭发 1、2、3、4、5 、6、7、。(2)要求按下按键发声,松开延时一段时间停止。(3)中间再按别的键则发另一音调的声音。(4)键盘输入功能。(5)按键同时对应指示灯点亮,按键结束,指示灯熄灭。方案设计1.音乐产生原理由于一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器 T0 来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为 12M

2、HZ,那么定时器的计数周期为 1MHZ,假如选择工作方式 1,那 T 值便为 T=216-5105/相应的频率,那么根据不同的频率计算出应该赋给定时器的计数值,列出不同音符与单片机计数 T0 相关的计数值如下表所示: 按键 音阶 参数S1 中音 do 108S2 中音 re 102S3 中音 mi 91S4 中音 fa 86S5 中音 so 77S6 中音 la 68S7 中音 xi 61S8 高音 do 572.方案设计(1)方案一:采用 CPLD 外接扬声器、键盘、数码管等。8 个译码输出显示的数码管,以显示目标芯片的 32 位输出信号,且 8 个发光管也能显示目标器件的 8 位输出信号。

3、时钟为 50MHz ,输出接扬声器。具体过程:主系统可由两个模块组成:当系统检测到有按键按下时,对应音符的频率由模块 1 获得,这是一个数控分频器。由其 clk 端输入一具有较高频率的信号,分频后输出。 音符的持续时间须根据乐曲的速度及每个音符的节拍数决定,模块 2 的功能是为模块 1 提供决定所发音的分频预置值,而此数在模块 1 输入口停留的时间即为此音符的节拍值。(2)方案二:采用单片机外接扬声器、键盘、数码管等。具体过程:当系统扫描到键盘上有键子被按下,则快速检测出是那一个键子,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在

4、前一个按下的键发声的同时有另一个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序,发出后按的键的音。3.方案选择对比两套方案各有优缺点,方案一采用 CPLD,工作速度快,系统稳定,效果好,但是其价格昂贵;而方案二在设计这样小型电子系统方面,无论是效果还是工作速度与方案一都相差不大,而且价格较为便宜。因此,选择方案二即单片机加外设的方式设计该系统较好。系统硬件设计根据设计题目要求,该系统需要涉及如下几个方面:(1)电源部分(2)单片机部分(3)音频功放部分(4)扬声器、键盘及 LED 指示灯部分1.电源部分设计由于本系统构造简单,不宜使用自制或者购买的 5v 稳压电源,采用三节

5、 5号电池供电即可。2.单片机部分设计根据本系统的特点,采用 AT89C51 单片机即可完成全部功能。AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器( FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁

6、存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器, AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 单片机引脚图见下图:(1)主要特性与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环数据保留时间:10 年全静态工作:0Hz-24Hz三级程序存储器锁定128*8 位内部 RAM32 可编程 I/O 线两个 16 位定时器/计数器5 个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路(2)管脚说明VCC:供电电压。GND:接地。P0 口:P0 口为一

7、个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。 P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。 P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地址接收

8、。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O

9、 口,可接收输出 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 口同时为闪烁编程和编程校验接收一些控制信号

10、。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE

11、禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器( 0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当 /EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(3)振荡器特性XTAL1 和

12、XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(4)芯片擦除整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下

13、,CPU 停止工作。但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.音频功放部分设计音频功放部分可用一片 LM386 来对信号进行放大在输入扬声器发声。LM386 是美国国家半导体公司生产的音频功率放大器,主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为 20。但在 1 脚和 8 脚之间增加一只外接电阻和电容,便可将电压增益调为任意值,直至 200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在 6V 电源电压下,它的静态功耗仅为 24mW,使得 LM386 特别适用

14、于电池供电的场合。LM386 的封装形式有塑封 8 引线双列直插式和贴片式。下图为 LM386 芯片引脚图:4.其他部分设计由该系统特点及设计要求可知,LED、外扩键盘及扬声器用手边能找到的型号即可。电路原理设计1.系统原理框图AT89C51键盘输入LED 指示灯输出音频信号输出2.电路原理图该系统硬件单路由 AT89C51 单片机、键盘电路、LM386 音频功放电路、扩展电路及扬声器发生组组成。具体原理图如下:1 2 3 4 5 6ABCD654321DCBATitleNumber RevisionSizeBDate: 2-Jan-2010 Sheet of File: C:Userskai

15、Desktop子子子子pcbLWJLWJ.ddbDrawn By:EA/VP31X119 X218RESET9RD17 WR16INT012 INT113T014 T115P101 P112P123 P134P145 P156P167 P178P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P23 24P24 25P25 26P26 27P27 28PSEN 29ALE/P30TXD 11RXD 10U1LS1SPEAKERS1S7S2S6S3S5S4S8VCCS9KEYR11KC310uY111.0592MC

16、130pC230pX1X2VCCX1X2D1 D2 D3 D4 D5 D6 D7 D8D1D2D3D4D5D6D7D8SZ1 IN-2IN+3 GND4Z 8P 7VCC 6OUT 5U2LM386C?CAPC410uC?ELECTRO1C?ELECTRO1C?ELECTRO1R?RES2R?RES2R?RES2VCCS驱动程序设计该系统驱动程序由主程序,发声程序以及延时程序构成。1.程序:/* panio.c-电子琴设计*/#include /包含 reg51.h 文件Sbit speaker=P30; /声明喇叭位置Sbit led=P1; /声明指示灯位置Unsigned char ke

17、ys; /声明变量/*声明音阶数组- Do Re Mi Fa So La Si Do# */unsigned char freq=108,102,91,86,77,68,61,57;void sound(unsigned char); /声明发声函数void delay(unsigned char); /声明延迟函数/=主程序=/main() /主程序开始P2=0xff; /将 P2 规划成输入口while(1) /while 循环 keys=P2; /读取按钮switch(keys) /判断 case 0x01:sound(0);led=0x01;break; /按下 S1, 发 Do 音,

18、同时对应指示灯亮case 0x02:sound(1);led=0x02;break; /按下 S2,发 Re 音,同时对应指示灯亮case 0x04:sound(2);led=0x04;break; /按下 S3,发 Mi 音,同时对应指示灯亮case 0x08:sound(3);led=0x08;break; /按下 S4,发 Fa 音,同时对应指示灯亮case 0x10:sound(4);led=0x10;break; /按下 S5,发 So 音,同时对应指示灯亮case 0x20:sound(5);led=0x20;break; /按下 S6,发 La 音,同时对应指示亮case 0x4

19、0:sound(6);led=0x40;break; /按下 S7,发 Si 音,同时对应指示灯亮case 0x80:sound(7);led=0x80;break; /按下 S8,发 Do 音,同时对应指示灯亮Led=0x00; /按键结束,指示灯灭 /while 循环结束 /主程序结束/=发声函数 =/void sound(unsigned char x) /发声函数开始char i; /声明变量for(i=0;i60;i+) /执行 60 次 speaker=1; /输出高电平delay(freqx); /延迟speak=0; /输出低电平delay(freqx); /延迟 /结束一个音

20、 /结束/=延时函数=/void delay(unsigned char x) /延迟函数开始 unsigned char i,j; /声明变量for(i=0;i120;i+) /外循环for(j=0;j120;j+); /内循环 /结束2.程序框图实验总结1.该系统实现的功能根据功能需求与电路结构得知,当按钮开关 ON 时,将可有其连接的输入口读取到低电平,再次制作的一个八键的电子琴,若按 S1,则发出中音 DO,如按 S2,则发中 Re依次类推。2.实验心得体会本周单片机原理及应用技术的课程设计,我通过查找资料,设计了简单的电子琴,这个电子琴有八个按键,按下不同的按键可以发出七个不同的音符。在次过程中,应用 PROTEL 软件画出相应的原理图,应用 KEIL 软件编译程序输入 PROTEUS 仿真软件进行了电路仿真。在这一系列程序中,了解了产品制作过程,掌握了 PROTEL 软件 KEIL 软件 PROTEUS 仿真软件的应用,还有对单片机工作原理的掌握。受益匪浅。

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报