收藏 分享(赏)

基于单片机的简易电子琴设计.doc

上传人:11xg27ws 文档编号:8719440 上传时间:2019-07-09 格式:DOC 页数:8 大小:34KB
下载 相关 举报
基于单片机的简易电子琴设计.doc_第1页
第1页 / 共8页
基于单片机的简易电子琴设计.doc_第2页
第2页 / 共8页
基于单片机的简易电子琴设计.doc_第3页
第3页 / 共8页
基于单片机的简易电子琴设计.doc_第4页
第4页 / 共8页
基于单片机的简易电子琴设计.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、基于单片机的简易电子琴设计doc 文档可能在 WAP 端浏览体验不佳。建议您优先选择 TXT,或下载源文件到本机查看。电子系统设计实验 设计报告一 摘要介绍了用单片机设计微型电子琴的方法。给出了电路、程序框图及程序。本设计包括单 片机学习的外设,如 LED 灯、独立键盘、矩阵键盘、蜂鸣器等。关键词:单片机,电子琴,程序。 关键词:单片机,电子琴,程序。二 设计要求设计一个简易电子琴。 (1)用喇叭发 1、2、3、4、5、6、7、。 (2)要求按下按键发声,松开延时一段时间停止。 (3)中间再按别的键则发另一音调的声音。 (4)键盘输入功能。 (5)按键同时对应指示灯点亮,按键结束,指示灯熄灭。

2、方案设计 三 方案设计1.音乐产生原理 由于一首音乐是许多不同的音阶组成的, 而每个音阶对应着不同的频率, 这样我们就可 以利用不同的频率的组合, 即可构成我们所想要的音乐了, 当然对于单片机来产生不同的频 率非常方便,我们可以利用单片机的定时/计数器 T0 来产生这样方波频率信号,因此,我们 只要把一首歌曲的音阶对应频率关系弄正确即可。本次设计中单片机晶振为 12MHZ,那么定时器的计数周期为 1MHZ,假如 选择工作方式 1,那 T 值便为 T=216-5105/相应的频率,那么根据不同的频 率计算出应该赋给定时器的计数值,列出不同音符与单片机计数 T0 相关的计数 值如下表所示:按键 S

3、1音阶 中音 do参数 108S2 S3 S4 S5 S6 S7 S8中音 re 中音 mi 中音 fa 中音 so 中音 la 中音 xi 高音 do102 91 86 77 68 61 572.方案设计 (1)方案一:采用 CPLD 外接扬声器、键盘、数码管等。 8 个译码输出显示的数码管,以显示目标芯片的 32 位输出信号,且 8 个发 光管也能显示目标器件的 8 位输出信号。时钟为 50MHz ,输出接扬声器。 具体过程:主系统可由两个模块组成:当系统检测到有按键按下时,对应音 符的频率由模块 1 获得,这是一个数控分频器。由其 clk 端输入一具有较高频率 的信号,分频后输出。 音符

4、的持续时间须根据乐曲的速度及每个音符的节拍数决定, 模块 2 的功能 而此数在模块 1 输入口停留的时间即 是为模块 1 提供决定所发音的分频预置值, 为此音符的节拍值。 (2)方案二:采用单片机外接扬声器、键盘、数码管等。 具体过程: 当系统扫描到键盘上有键子被按下, 则快速检测出是那一个键子, 然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电 路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一 个键被按下,则启用中断系统,前面键的发音停止,转到后按的键的发音程序, 发出后按的键的音。3.方案选择 对比两套方案各有优缺点,方案一采用 CPLD,工作速

5、度快,系统稳定,效 果好,但是其价格昂贵;而方案二在设计这样小型电子系统方面,无论是效果还 是工作速度与方案一都相差不大,而且价格较为便宜。因此,选择方案二即单片 机加外设的方式设计该系统较好。四 系统硬件设计根据设计题目要求,该系统需要涉及如下几个方面: (1)电源部分 (2)单片机部分 (3)音频功放部分 (4)扬声器、键盘及 LED 指示灯部分 1.电源部分设计 由于本系统构造简单,不宜使用自制或者购买的 5v 稳压电源,采用三节 5号电池供电即可。 2.单片机部分设计 根据本系统的特点,采用 AT89C51 单片机即可完成全部功能。 (FPEROMFalsh AT89C51 是一种带

6、4K 字节闪烁可编程可擦除只读存储器 Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微 处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪烁可编程可擦除只读存储 器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输 ATMEL 出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C 单 片机为很多

7、嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 单片 机引脚图见下图:(1)主要特性与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 (2)管脚说明 VCC:供电电压。GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P1 口的管脚第一次写 1 时,被定义为高阻

8、输入。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 个

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

10、平,并用作输入。作为 输入,由于外部下拉为低电平,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 脚两个

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

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

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

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

15、86 特别适用于电池供电的场合。 LM386 的封装形式有塑封 8 引线双列直插式和贴片式。下图为 LM386 芯片 引脚图:4.其他部分设计 由该系统特点及设计要求可知,LED、外扩键盘及扬声器用手边能找到的型 号即可。五 电路原理设计1.系统原理框图LED键 盘 输 入AT89C51 音频2.电路原理图 该系统硬件单路由 AT89C51 单片机、键盘电路、LM386 音频功放电路、扩 展电路及扬声器发生组组成。 具体原理图如下:D1D2D3D4D5D6D7VCC S RES2 C? ELECTRO1 C4 10 u U2 U1 C? 8 7 6 5 ELECTRO1 C? CAP SPEA

16、KER P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 13 12 VCC 15 14 X1 KEY S9 C1 30 p Y1 11 .0 592 M C2 30 p 1K R1 X2 10 u C3 31 X1 19 X2 18 9 17 16 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR RXD TXD ALE/P PSEN 10 S 11 30 29 LS1 D1 D2 D3 D4 D5 D6 D7 D8 1 2 3 4 5 6 7 8 P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 P2

17、 0 P2 1 P2 2 P2 3 P2 4 P2 5 P2 6 P2 7 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 S1 S2 S3 S4 S5 S6 S7 S8 R? RES2 R? RES2 LM3 86 1 2 3 4 Z Z IN- P IN+ VCC GND OUT C? ELECTRO1 VCC R?D8该系统驱动程序由主程序,发声程序以及延时程序构成。 1.程序:驱动程序设计 六 驱动程序设计/* panio.c-电子琴设计*/#include Sbit speaker=P30; Sbit led=P1; Unsigned

18、char keys;/包含 reg51.h 文件 /声明喇叭位置 /声明指示灯位置 /声明变量/*声明音阶数组- 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; while(1) keys=P2; switch(keys) case 0x01: sound(0); led=0x01; break; case 0x

19、02: sound(1); led=0x02; break; case 0x04: sound(2); /按下 S2,发 Re 音,同时对应指示灯亮 /按下 S1, 发 Do 音,同时对应指示灯亮 /主程序开始 /将 P2 规划成输入口 /while 循环 /读取按钮 /判断led=0x04; break; case 0x08: sound(3); led=0x08; break; case 0x10: sound(4); led=0x10; break; case 0x20: sound(5); led=0x20; break; case 0x40: sound(6); led=0x40;

20、break; /按下 S7, Si 音, 发 同时对应指示灯亮 /按下 S6,发 La 音,同时对应指示亮 /按下 S5,发 So 音,同时对应指示灯亮 /按下 S4,发 Fa 音,同时对应指示灯亮 /按下 S3,发 Mi 音,同时对应指示灯亮case 0x80: sound(7); led=0x80; break; /按下 S8,发 Do 音,同时对应指示灯亮Led=0x00; /按键结束,指示灯灭 /while 循环结束 /主程序结束/=发声函数=/ void sound(unsigned char x) char i; for(i=0;i60;i+) speaker=1; delay(f

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

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

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

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


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

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

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