单片机设计与制作 简易电子琴的设计Word下载.docx

上传人:b****2 文档编号:686410 上传时间:2023-04-29 格式:DOCX 页数:38 大小:433.76KB
下载 相关 举报
单片机设计与制作 简易电子琴的设计Word下载.docx_第1页
第1页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第2页
第2页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第3页
第3页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第4页
第4页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第5页
第5页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第6页
第6页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第7页
第7页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第8页
第8页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第9页
第9页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第10页
第10页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第11页
第11页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第12页
第12页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第13页
第13页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第14页
第14页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第15页
第15页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第16页
第16页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第17页
第17页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第18页
第18页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第19页
第19页 / 共38页
单片机设计与制作 简易电子琴的设计Word下载.docx_第20页
第20页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机设计与制作 简易电子琴的设计Word下载.docx

《单片机设计与制作 简易电子琴的设计Word下载.docx》由会员分享,可在线阅读,更多相关《单片机设计与制作 简易电子琴的设计Word下载.docx(38页珍藏版)》请在冰点文库上搜索。

单片机设计与制作 简易电子琴的设计Word下载.docx

1.1播放模块

1.2按键控制模块

1.3总体硬件组成框图

2、硬件设计

2.1硬件原理图

2.2系统板硬件连线

2.3主要硬件的介绍

2.3.1AT89S51简介

2.3.2LM386介绍

2.4播放模块的硬件设计

2.54×

4矩阵键盘识别处理

3、软件设计

4、系统调试

5、结束语

6、参考文献

7、附录

1.系统概述

本系统采用单片机AT89C51为电子琴的控制核心,系统主要包括播放模块、按键控制模块。

下面对各模块的设计逐一进行论证比较。

1.1播放模块

播放模块是喇叭构成。

它几乎不存在噪声,音响效果较好。

而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。

电子琴设有16个按键,其中7个作为音符输入,另外1个作为模式转换按键,实现用户自弹作曲。

7个按键分别代表7个音符,包括中音段的全部音符。

通过软硬件设计,模式转换按键触发外部中断,中断使程序跳转,实现模式转换,启动电子琴。

然后通过查询电子琴所按下的按键,读取电子琴输入状态,跳转到对应的程序人口,实现自编歌曲。

当需要取消电子琴编曲功能时,再次按下模式转换按键引起外部中断.即可退出电子琴功能而返回原来按键播放处。

图1-1总体硬件组成框图

2.硬件设计

2.1硬件原理图

2.2.系统板硬件连线

(1.把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPKIN端口上;

(2.把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上;

2.3主要硬件的介绍

2.3.1AT89S51简介

AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

图2-1单片机管脚图

引脚功能

VCC(40):

+5V;

GND(20):

接地;

P0口(39-32):

P0口为8位漏极开路双向I/O口,每引脚可吸收8个TTL门电流;

P1口(1-8):

P1口是从内部提供上拉电阻器的8位双向I/O口,P1口缓冲器能接收和输出4个TTL门电流;

P2口(21-28):

P2口为内部上拉电阻器的8位双向I/O口,P2口缓冲器可接收和输出4个TTL门电流;

P3口(10-17):

P3口是8个带内部上拉电阻器的双向I/O口,可接收和输出4个TTL门电流,P3口也可作为AT89C51的特殊功能口;

RST(9):

复位输入。

当振荡器复位时,要保持RST引脚2个机器周期的高电平时间;

ALE/PROG(30):

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节,在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6,它可用作对外部输出的脉冲或用于定时目的,要注意的是,每当访问外部数据存储器时,将跳过1个ALE脉冲;

PSEN(29):

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期2次PSEN有效,但在访问外部数据存储器时,这2次有效的PSEN信号将不出现;

EA/VPP(31):

当EA保持低电平时,外部程序存储器地址为(0000H-FFFFH)不管是否有内部程序存储器。

FLASH编程期间,此引脚也用于施加12V编程电源(VPP);

XTAL1(19):

反向振荡器放大器的输入及内部时钟工作电路的输入;

XTAL2(18):

来自反向振荡器的输出;

2.3.2LM386介绍

LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中.

LM386内部电路及特性

图2-2 

LM386内部电路原理图

LM386内部电路原理图如图2-2所示。

与通用型集成运放相类似,它是一个三级放大电路。

第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;

T5和T6组成镜像电流源作为T1和T2的有源负载;

T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。

使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。

第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。

第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。

二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。

引脚2为反相输入端,引脚3为同相输入端。

电路由单电源供电,故为OTL电路。

输出端(引脚5)应外接输出电容后再接负载。

电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。

 

图2-3 

LM386的外形和引脚的排列

LM386的外形和引脚的排列如图3-3所示。

引脚2为反相输入端,3为同相输入端;

引脚5为输出端;

引脚6和4分别为电源和地;

引脚1和8为电压增益设定端;

使用时在引脚7和地之间接旁路电容,通常取10μF。

查LM386的电源电压4-12V或5-18V(LM386N-4);

静态消耗电流为4mA;

电压增益为20-200dB;

在1、8脚开路时,带宽为300KHz;

输入阻抗为50K;

音频功率0.5W。

尽管LM386的应用非常简单,但稍不注意,特别是器件上电、断电瞬间,甚至工作稳定后,一些操作(如插拔音频插头、旋音量调节钮)都会带来的瞬态冲击,在输出喇叭上会产生非常讨厌的噪声。

要注意以下几点:

1、通过接在1脚、8脚间的电容(1脚接电容+极)来改变增益,断开时增益为20dB。

因此用不到大的增益,电容就不要接了,不光省了成本,还会带来好处--噪音减少,何乐而不为?

2、PCB设计时,所有外围元件尽可能靠近LM386;

地线尽可能粗一些;

输入音频信号通路尽可能平行走线,输出亦如此。

这是死理,不用多说了吧。

3、选好调节音量的电位器。

质量太差的不要,否则受害的是耳朵;

阻值不要太大,10K最合适,太大也会影响音质。

4、尽可能采用双音频输入/输出。

好处是:

“+”、“-”输出端可以很好地抵消共模信号,故能有效抑制共模噪声。

5、第7脚(BYPASS)的旁路电容不可少!

实际应用时,BYPASS端必须外接一个电解电容到地,起滤除噪声的作用。

工作稳定后,该管脚电压值约等于电源电压的一半。

增大这个电容的容值,减缓直流基准电压的上升、下降速度,有效抑制噪声。

在器件上电、掉电时的噪声就是由该偏置电压的瞬间跳变所致,这个电容可千万别省啊!

6、减少输出耦合电容。

此电容的作用有二:

隔直+耦合。

隔断直流电压,直流电压过大有可能会损坏喇叭线圈;

耦合音频的交流信号。

它与扬声器负载构成了一阶高通滤波器。

减小该电容值,可使噪声能量冲击的幅度变小、宽度变窄;

太低还会使截止频率(fc=1/(2π*RL*Cout))提高。

分别测试,发现10uF/4.7uF最为合适,这是我的经验值。

7、

电源的处理,也很关键。

如果系统中有多组电源,由于电压不同、负载不同以及并联的去耦电容不同,每组电源的上升、下降时间必有差异。

非常可行的方法:

将上电、掉电时间短的电源放到+12V处,选择上升相对较慢的电源作为LM386的Vs,但不要低于4V,效果确实不错!

图2-4音频放大电路

2.4播放模块的硬件设计

音乐产生的方法

一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。

C调各音符频率与计数值T的对照如表1所示

表1C调各音符频率与计数值T的对照表

音符

频率(HZ)

简谱码(T值)

低1DO

262

63628

#4FA#

740

64860

#1DO#

277

63731

中5SO

784

64898

低2RE

294

63835

#5SO#

831

64934

#2RE#

311

63928

中6LA

880

64968

低3M

330

64021

#6

932

64994

低4FA

349

64103

中7SI

988

65030

370

64185

高1DO

1046

65058

低5SO

392

64260

#1DO#

1109

65085

#5SO#

415

64331

高2RE

1175

65110

低6LA

440

64400

1245

65134

466

64463

高3M

1318

65157

低7SI

494

64524

高4FA

1397

65178

中1DO

523

64580

1480

65198

#1DO#

554

64633

高5SO

1568

65217

中2RE

587

64684

1661

65235

622

64732

高6LA

1760

65252

中3M

659

64777

1865

65268

中4FA

698

64820

高7SI

1967

65283

下面我们要为这个音符建立一个表格,有助于单片机通过查表的方式来获得相应的数据

低音0-19之间,中音在20-39之间,高音在40-59之间

TABLE:

DW0,63628,63835,64021,64103,64260,64400,64524,0,0

DW0,63731,63928,0,64185,64331,64463,0,0,0

DW0,64580,64684,64777,64820,64898,64968,65030,0,0

DW0,64633,64732,0,64860,64934,64994,0,0,0

DW0,65058,65110,65157,65178,65217,65252,65283,0,0

DW0,65085,65134,0,65198,65235,65268,0,0,0

DW0

表2音乐的音拍,一个节拍为单位(C调)

曲调值

DELAY

调4/4

125ms

62ms

调3/4

187ms

94ms

调2/4

250ms

对于不同的曲调我们也可以用单片机的另外一个定时/计数器来完成。

音乐发声程序如图

图2-5音乐发声程序流程图

2.54×

每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

矩阵的行线和列线分别通过两并行接口和CPU通信。

每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。

键盘处理程序的任务是:

确定有无键按下,判断哪一个键按下,键的功能是什么;

还要消除按键在闭合或断开时的抖动。

两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。

用AT89S51的并行口P1接4×

4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;

图2-7行列式键盘电路

图2-7键盘识别程序框图

3.软件设计

软件调试采用单片机仿真器KEILC及微机,将编好的程序进行调试,主要是检查语法错误。

KEYBUFEQU30H;

KEYBUF定义为,30H

STH0EQU31H;

STH0定义为,31H

STL0EQU32H;

STL0定义为,32H

TEMPEQU33H;

TEMP定义为,33H

ORG00H;

定义当前位置为00H

LJMPSTART;

长转移到START

ORG0BH;

定义当前位置为0BH

LJMPINT_T0;

长转移到INT_T0

START:

MOVTMOD,#01H;

传送TMOD,立即数01H

SETBET0;

位-置1ET0

SETBEA;

位-置1EA

WAIT:

;

MOVP3,#0FFH;

传送接口3,立即数0FFH

CLRP3.4;

清0接口3第4位

MOVA,P3;

传送寄存器A,接口3

ANLA,#0FH;

逻辑-与寄存器A,立即数0FH

XRLA,#0FH;

逻辑-异或寄存器A,立即数0FH

JZNOKEY1;

寄存器为0转移NOKEY1

LCALLDELY10MS;

长调用DELY10MS

CJNEA,#0EH,NK1;

比较-不等转移寄存器A,立即数0EH,

MOVKEYBUF,#0;

传送KEYBUF,立即数

LJMPDK1;

长转移到DK1

NK1:

CJNEA,#0DH,NK2;

比较-不等转移寄存器A,立即数0DH,

MOVKEYBUF,#1;

传送KEYBUF,立即数1

NK2:

CJNEA,#0BH,NK3;

比较-不等转移寄存器A,立即数0BH,

MOVKEYBUF,#2;

传送KEYBUF,立即数2

NK3:

CJNEA,#07H,NK4;

比较-不等转移寄存器A,立即数07H,

MOVKEYBUF,#3;

传送KEYBUF,立即数3

NK4:

NOP;

空操作

DK1:

MOVA,KEYBUF;

传送A,KEYBUF

MOVDPTR,#TABLE;

传送DPTR,立即数TABLE

MOVCA,@A+DPTR;

程序存储器-读寄存器A,A+DPTR指向的单元的内容

MOVP0,A;

传送接口0,寄存器A

MOVA,KEYBUF;

传送寄存器A,KEYBUF

MOVB,#2;

传送B,立即数2

MULAB;

两数相乘AB

MOVTEMP,A;

传送TEMP,寄存器A

MOVDPTR,#TABLE1;

传送DPTR,立即数TABLE1

MOVSTH0,A;

传送STH0,寄存器A

MOVTH0,A;

传送TH0,寄存器A

INCTEMP;

加1TEMP

MOVA,TEMP;

传送寄存器A,TEMP

MOVSTL0,A;

传送STL0,寄存器A

MOVTL0,A;

传送TL0,寄存器A

SETBTR0;

位-置1TR0

DK1A:

JNZDK1A;

寄存器不为0转移DK1A

CLRTR0;

清0TR0

NOKEY1:

CLRP3.5;

清0接口3第5位

JZNOKEY2;

寄存器为0转移NOKEY2

CJNEA,#0EH,Nk5;

MOVKEYBUF,#4;

传送KEYBUF,立即数4

LJMPDK2;

长转移到DK2

NK5:

CJNEA,#0DH,NK6;

MOVKEYBUF,#5;

传送KEYBUF,立即数5

NK6:

CJNEA,#0BH,NK7;

MOVKEYBUF,#6;

传送KEYBUF,立即数6

NK7:

CJNEA,#07H,NK8;

MOVKEYBUF,#7;

传送KEYBUF,立即数7

NK8:

DK2:

DK2A:

JNZDK2A;

寄存器不为0转移DK2A

NOKEY2:

CLRP3.6;

清0接口3第6位

JZNOKEY3;

寄存器为0转移NOKEY3

ANL

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2