单片机课程设计简易电子琴.docx

上传人:b****4 文档编号:2979153 上传时间:2022-11-16 格式:DOCX 页数:24 大小:593.43KB
下载 相关 举报
单片机课程设计简易电子琴.docx_第1页
第1页 / 共24页
单片机课程设计简易电子琴.docx_第2页
第2页 / 共24页
单片机课程设计简易电子琴.docx_第3页
第3页 / 共24页
单片机课程设计简易电子琴.docx_第4页
第4页 / 共24页
单片机课程设计简易电子琴.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

单片机课程设计简易电子琴.docx

《单片机课程设计简易电子琴.docx》由会员分享,可在线阅读,更多相关《单片机课程设计简易电子琴.docx(24页珍藏版)》请在冰豆网上搜索。

单片机课程设计简易电子琴.docx

单片机课程设计简易电子琴

 

《单片机技术及应用》

课程设计报告

专业:

电子信息工程

班级:

姓名:

指导教师:

 

二0一0年十一月十五日

目录

1、引言..................................................2

2、课题的方案设计与论证..................................2

3、系统的硬件设计........................................5

4、系统软件的设计.......................................10

5、系统软件调试.........................................14

6、系统软件仿真.........................................15

7、系统硬件焊接.........................................17

8、系统常见问题总结.....................................19

9、系统设计改进.........................................20

10、课程小结............................................20

11、指导老师意见........................................20

参考书目................................................21

附录一程序清单........................................21

附录二元器件清单......................................24

基于单片机的16键简易电子琴设计

1、引言

单片机(单片微型计算机)是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠等特点。

单片机的应用相当广泛,从平常的家用电器到航空航天系统和国防军事、尖端武器都能找到它的身影。

因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

随着社会的发展进步,音乐已经成为了我们生活中很重要的一部分。

电子琴则是一种很常见的键盘乐器,是现代电子科技与音乐结合的产物,在现代音乐中扮演着重要的角色。

单片机具有强大的控制功能和灵活的编程实现特性,早已溶入现代人们的日常生活中,成为不可替代的一部分。

本文的主要内容是用AT89C52单片机为核心控制元件,设计一个简易电子琴。

2、系统方案设计与论证

2、1系统基本组成

本系统以AT89C52为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。

2、2系统基本原理

声音的频率范围约是几十到几千赫兹,若能利用程序来控制单片机某个口线不断地输出高低电平,则在改口线上就能产生一定频率的方波,将该方波接上喇叭就能发出一定频率的声音。

本系统就是按此原理设计,对于AT89C52而言要产生一定频率的方波一般是先将某口线输出高电平,延迟一段时间后再输出低电平。

通过改变延迟时间可以改变单片机的输出频率。

单片机的延时主要有两种方式,即软件延时和使用定时/计数器延时。

其中软件延时不是很精确,而电子琴电路由于每个音符的频率值要求比较严格,因此我们选用定时/计数器延时。

 

键盘电路

AT89C52

扬声器

时钟电路

数码显示管

74LS247

复位电路

图2-1系统原理框图

2.3音乐相关知识

乐音听起来有的高、有的低,这就叫做音高。

音高是由发声物体振动频率的高低决定的,频率高声音就高,频率低声音就低。

音持续时间的长短即时值,一般用拍数表示。

休止符表示暂停发音。

一首音乐是由许多不同的音符组单片机产生的音频脉冲信号没有足够的驱动能力,因此要在扬声器前加一放大电路,保证扬声器能产生所要实现的音符成的,而每个音符对应着不同的频率,这样就可以利用不同的频率组合,加以拍数对应的延时,构成音乐。

如果单片机要自己播放音乐就必须考虑到节拍的设置。

由于本例中是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。

因此,我们只需弄清楚音乐中的音符和对应的频率。

要产生相应的音频脉冲,只需要计算出某音频的周期,再除以2单片机产生的音频脉冲信号没有足够的驱动能力,因此要在扬声器前加一放大电路,保证扬声器能产生所要实现的音符。

利用计数器计时半周期,计满时使P2.0反向,然后重复计时再反向。

本例中,单片机工作在12MHz时钟,使用定时器/计数器T0,工作模式为1,改变计数初值TH0、TL0就可产生不同频率的脉冲信号。

例如低3MI音,频率为330Hz,其周期T=1/f=1/330=3030us,计数值N=3030/2=1515,所以每计数1515次P2.0反向。

计数初值T=65536-N=64021。

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

 

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

音符

频率(HZ)

简谱码(T值)

音符

频率(HZ)

简谱码(T值)

低1DO

262

63628

#4FA#

740

64860

#1DO#

277

63731

中5SO

784

64898

低2RE

294

63853

#5SO#

831

64934

#2RE#

311

63928

中6LA

880

64968

低3M

330

64021

#6

932

64994

低4FA

349

64103

中7SI

988

65030

#4FA#

370

64185

高1DO

1046

65058

低5SO

392

64260

#1DO#

1109

65085

#5SO#

415

64331

高2RE

1175

65110

低6LA

440

64400

#2RE#

1245

65134

#6

466

64463

高3M

1318

65157

低7SI

494

64524

高4FA

1397

65178

中1DO

523

64580

#4FA#

1480

65198

#1DO#

554

64633

高5SO

1568

65217

中2RE

587

64684

#5SO#

1661

65235

#2RE#

622

64732

高6LA

1760

65252

中3M

659

64777

#6

1865

65268

中4FA

698

64820

高7SI

1967

65283

 

3、硬件设计

3.1主控核心

一、本实例采用AT89C52作为主控核心。

 

图3-1AT89C52芯片引脚图

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。

主要引脚功能:

1.RST(9):

复位输入。

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

2.XTAL1(19):

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

3.XTAL2(18):

来自反向振荡器的输出;

4.P1口(1-8):

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

5.ALE/PROG(30):

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

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

6.PSEN(29):

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

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

二、本实例采用7段共阳极数码管作显示

.

 

图3-2数码管引脚图

三、本实例采用74LS247作数码管控制芯片.

 

图3-374LS247引脚图

主要引脚功能:

1、BCD输入(1、2、6、7):

接AT89C52;

2、BCD输出(9—15):

接七段译码器;

3、8脚:

地线;

4、16脚:

电源VCC;

 

图3-474LS247与显示数码管连接图

3.2键盘模块

键盘是最常用的单片机输入设备,大致可以分为独立连接式键盘和矩阵式。

独立连接式键盘是最简单的键盘电路,每个键独立接入一根数据线。

这种键盘结构简单,使用方便,但是占用的I/O口线较多。

矩阵式键盘由行线和列线组成,按键位于行列的交叉点上,行线通过上拉电阻接到高电平。

行列式键盘可节省I/O口,适合按键数较多的场合。

所以本例的4X4键盘采用矩阵式键盘。

图3-5键盘输入模块

通过行列键盘扫描的方法可获取键盘输入的键值,从而知道按下的是哪个键,具体过程如下:

(1)查询是否键按下。

单片机向行扫描口输出全为“0”的扫描码,然后检测列线信号,只要有一列信号不为“1”,则表示有键按下,且不为“1”的列即是按下的键的所在列。

(2)查询按下键所在具体位置。

用逐行扫描的方法确定按下键所在的行号。

单片机先使第一行为“0”,其余行为“1”,接着进行信号检测,若全为“1”则按下键不在第一行;然后是第二行为“0”,其余行为“1”,接着进行信号检测,若全为“1”,则按下键不在第二行;往下依次类推。

(3)将得到的行号列号译码。

对于4X4行列式键盘,可用一个字节(8位)来对键盘编码。

本例中,将直接的高4为表示列号,低4位表示行号。

在键盘扫描过程中,应该注意以下几个问题:

(1)按下按键时,按键会产生机械抖动,一般持续几到几十毫秒。

在键盘扫描过程中,必须注意键盘的消抖处理,我们在实际制作中采用延时的方法来进行简易消抖。

(2)在键盘扫描过程中,应防止按一次键而多个对应键输入的情况。

在按键处理完毕后,还应检测按下的键是否松开,只有按下的键松开后程序才往下执行。

这样每按一个键,只做一个键处理。

表3-1键盘的按键与键值编码对应关系表

按键

列号

行号

键值编码

1(低3MI)

1

1

11H(00010001)

2(低4FA)

1

2

21H(00100001)

3(低5SO)

1

3

41H(01000001)

4(低6LA)

1

4

81H(10000001)

5(低7SI)

2

1

12H(00010010)

6(中1DO)

2

2

22H(00100010)

7(中2RE)

2

3

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1