基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx

上传人:b****6 文档编号:17355483 上传时间:2022-12-01 格式:DOCX 页数:25 大小:385.22KB
下载 相关 举报
基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx_第1页
第1页 / 共25页
基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx_第2页
第2页 / 共25页
基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx_第3页
第3页 / 共25页
基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx_第4页
第4页 / 共25页
基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx

《基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。

基于AT89C52单片机的简易电子琴设计报告Word文档下载推荐.docx

故简易电子乐器的研制具有一定的社会意义。

本次课程设计主要研究基于AT89C52单片机的16键简易电子琴的设计。

1.1单片机发音概述

由于单片机的强大功能,除了在测试控制领域中有着广泛的应用外,还有一些而有趣的应用。

比如,使用单片机可以驱动蜂鸣器或者扬声器发出声音,还可以控制其发出不同的声调,从而连接起来构成一个曲子。

目前,市场上有很多种音乐模块或者音乐芯片,可以直接产生各种曲子。

但是,这种模块价格比较昂贵,电路结构比较复杂。

如果系统中仅需要产生简单的音符或者简短的曲子,可以使用单片机配合简单的扬声器而产生需要的音乐效果。

一般说来,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。

单片机演奏的音乐基本都是单音频率。

因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”。

音调表示一个音符唱多高的频率

节拍表示一个音符唱多长的时间

1.1.1音调

音调是音乐学中的名词,与平时所说的音高十分相似。

在音乐中常把中音C上方的A音定为标准音高,其频率为f=440Hz,其余音均与其进行比较。

为两个音符,如果两个音符的频率相差一倍时,即

时,则称

高一个倍频程。

在音乐中音符1(do)与音符ⅰ之间正好相差一个倍频程,在音乐学中称它相差一个八度音。

在一个八度音里,有12个半音。

以1--ⅰ八音区为例。

12个半音是:

1--#1,

#1--2,2--#2,#2—3,3—4,4--#4,#4—5,5--#5,#5—6,6--#6,#6—7,7--ⅰ。

由于人耳的听觉效果,这12个音节的分度基本上是以对数关系来划分的。

只要知道了这12个音符的音高,也就是其基本的音乐的频率,就可以根据音符之间的倍频程关系得到其他音符基本的音调频率。

知道了一个音符的频率后,便可以让单片机发出相应的频率的振荡信号,从而产生相应的音符声音。

常采用的方法是通过单片机的定时器进行定时中断,在中断服务子程序中

将单片机上外界扬声器的I/O口来回置高电平或置低电平,从而让扬声器发出声音。

为了让单片机发出不同频率音符的声音,只需将定时器预置不同的定时值来实现。

以标准音高A为例:

标准音高A的频率f=440Hz,其对应的周期为:

(1-1)

因此需要在单片机I/O口输出周期为T=2272us的方波脉冲,如图1-1所示

图1-1单片机控制音调示意图

由上图可知:

单片机输出高电平和低电平信号均为:

(1-2)

也就是说,单片机上定时器的中断触发时间为1136us。

如果单片机采用定时器工作方式1,它以振荡器的十二分频信号为计数脉冲。

设外接晶振的振荡器频率为f0,则定时器的预置初值由下式来确定:

(1-3)

式中,Count=

=65536,

为定时器待确定的计数初值。

因此定时器的高低计数器的初值为:

(1-4)

(1-5)

如果单片机外接12MHz的晶振,则

,将t=1136us和

代入上面两式,即可求得标准音高A在单片机定时器工作方式1下的定时器高低计数器的初值为:

(1-6)

(1-7)

根据上面的求法,我们可以求出其他音调相应的计数器的预置初值。

在单片机晶振频率

,定时器在工作方式1下定时器计数初值见表1-1

表1-1晶振频率

定时器在工作方式1下定时器计数初值表

音符

频率/Hz

计数初值

低1DO

262

63628

#4FA#

740

64860

#1DO#

277

63731

中5SO

784

64898

低2RE

294

63835

#5SO#

831

64934

#1RE#

311

63928

中6LA

880

64968

低3MI

330

64021

#6LA#

932

64994

低4FA

349

64013

中7SI

988

95030

#4FA#

370

64185

高1DO

1046

65058

低5SO

392

64260

#1DO#

1109

65085

#5SO

415

64331

高2RE 

1175

65110

低6LA

440

64400

#2RE#

1245

65134

#6LA#

466

64463

高3MI

1318

65157

低7SI

494

64524

高4FA

1397

65178

中1DO

523

64580

#4FA#

1480

65198

#1DO#

554

64633

高5SO

1568

65217

中2RE

587

64684

1661

65235

622

64732

高6LA

1760

65252

中3MI

659

64777

1865

65268

中4FA

698

64820

高7SI

1967

65283

1.1.2节拍

在一完整乐谱开头,都有如1=C

、1=G

……等等的标识。

这里1=C,1=G标识乐谱的曲调,简单的说就是跟音调有关系;

这里的

用来表示节拍。

对于音符的节拍,以

为例。

它表示乐谱中以四分音符为节拍,每一小节有三拍。

1=G

的节拍示意图,见图1-2

在图中,总共有三拍:

1、2为一拍,3、4、5为一拍,6为一拍。

从时长角度看,1、2的时长为四分音的一半,即为八分音符长;

3、4的时长为八分音符的一半,即为十六分音符长;

5的时长为四分音符的一半,即为八分音符长;

6的时长为四分音符长。

图1-2节拍示意图

对于一拍的发音时间,如果乐曲没有特殊说明,一般说来,一拍的时长大约为400~450ms

如果这里规定一拍的时长为400ms,那么以四分音符为节拍时,四分音符的时长为400ms,

八分音符的时长为200ms,十六分音符的时长为100ms。

从而,在单片机上可采用循环延时的办法来实现控制一个音符唱多长时间。

首先要编写一个精确的基本时长的延时程序,比如说以八分音符的时长为基本延时时间,那么对于一个音符,如果它是四分音符,只需调用四次延时程序,如果它是二分音符,则只需调用八次延时程序,以此类推。

1.1.3单片机电子琴演奏音乐的方法

步骤一:

将乐谱中的每个音符的音调与节拍变换成相应的音调参数和节拍数。

步骤二:

将这些参数做成数据表格,存放在存储器中。

步骤三:

通过按键调用程序取出一个音符的相关参数,播放该音符。

步骤四:

播放完该音符后,等待下一次按键调用程序去取出下一次的音符的相关参数,再播放音符。

对于演奏乐曲,一般将休止符的音调参数设置为FFH,节拍参数设置为00H。

1.2本设计任务和主要容

具体要现以下功能:

1按下音符键可以发出相应的音符

2按下音乐播放键可以自动播放预先存在存中的曲子

第2节系统主要硬件电路设计

2.1单片机控制系统原理

2.1.1芯片选用

在本次课程设计中我采用Atmel公司的AT89C52单片机。

AT89C52是美国Atmel公司生产的低电压、高性能CMOS8位单片机,片含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。

AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。

AT89C52引脚图见图2-1.

图2-1AT89C52引脚图

其主要功能特性:

·

兼容MCS51指令系统

8k可反复擦写(>

1000次)FlashROM

32个双向I/O口

·

256x8bit部RAM

3个16位可编程定时/计数器中断

时钟频率0-24MHz

2个串行中断

可编程UART串行通道

2个外部中断源

共6个中断源

2个读写中断口线

3级加密位

低功耗空闲和掉电模式

软件设置睡眠和唤醒功能

2.1.2简易电子琴的组成框图

图2-2电子琴系统原理框图

2.1.3简易电子琴的proteus总体仿真图

电子琴的proteus总体仿真图见图2-3。

按下MUSICKEY键,系统自动播放预存在存中的曲子,按下RESKEY键,系统复位,停止播放。

按下矩阵键盘中的任意键,扬声器发出相应的音符。

图2-3简易电子琴的proteus总体仿真图

2.2单片机主机系统电路

2.2.1时钟频率

单片机必须在时钟的驱动下才能工作。

在单片机部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机部的各个单元,决定单片机的工作速度。

外部振荡源电路一般选用石英晶体振荡器,此电路在加电大约延迟10mS后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。

电路中两个电容C1,C2,作用有两个:

一是帮助振荡器起振;

二是对振荡器的频率进行微调。

C1,C2的典型值为30PF。

单片机在工作时,由部振荡器产生或由外直接输入的送至部控制逻辑单元的时钟信号的周期称为时钟周期。

起大小是时钟信号频率的倒数,常用fosc表示。

如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µ

s。

2.2.2晶振电路

AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为部时钟方式和外部时钟方式。

本设计中采用部时钟方式。

单片机部有一个反相放大器XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(部时钟方式),产生时钟送至单片机部各元件。

时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。

一般来说单片机部有一个带反馈的线性反相放大器,外界晶振(或接瓷振荡器)和电容就可组成振荡器,如图2-4所示。

加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中X1为晶振,震荡产生的时钟频率主要由Y1确定。

电容C1,C2的作用有两个:

一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。

图2-4晶振电路

2.2.3键盘扫描

在单片机应用中键盘用得最多的形式是独立键盘与矩阵键盘,如图2-5,图2-6所示。

图2-5独立键盘

图2-6矩阵键盘

它们各有自己的特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高的简单电路中;

矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。

本次课程设计,我采用矩阵式键盘电路,这样可以大大的节省单片机I/O的开销。

键盘电路见图2-7:

图2-7键盘电路

在按键过程中常产生“毛刺”

现象,如图2-8所示,要消除“毛刺”现象,这里采用最常用的方法,即延时重复扫描法,延时法的原理为:

因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后,再延时一段时间(10ms~20ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。

图2-8“毛刺”现象

2.2.4发音电路

电子琴发音电路见图2-9。

图2-9电子琴发音电路

2.2.5供电与复位电路

电子琴的供电电路和复位电路见图2-10。

图2-10电子琴供电与复位电路

第3节系统的软件设计

3.1主程序

3.1.1主程序的流程图

主程序的程序流程图见图3-1.

图3-1程序流程图

3.1.2主程序

KEYBUFEQU30H

STH0EQU31H

STL0EQU32H

TEMPEQU33H

SPKEQUP1.6;

蜂鸣器所在端口

ORG0000H

LJMPSTART

ORG0BH

LJMPINT_T0;

转定时器T0中断服务程序

START:

MOVTMOD,#01H;

选择定时器T0工作于方式1

SETBET0;

允许T0溢出中断

SETBEA

WAIT:

MOVP2,#0FFH

CLRP2.4;

从第四行开始扫描

MOVA,P2

ANLA,#0FH;

屏蔽高四位,高四位为行,低四位为列

XRLA,#0FH

JZNOKEY1;

判断是否有键按下,没有就跳转

LCALLDELY10MS

MOVA,P2;

消除抖动和干扰

ANLA,#0FH

JZNOKEY1

确定有键按下以后的处理

CJNEA,#0EH,NK1;

是否为第四行第一列的键被按下

MOVKEYBUF,#0;

保存列号

LJMPDK1

NK1:

CJNEA,#0DH,NK2

MOVKEYBUF,#1

NK2:

CJNEA,#0BH,NK3

MOVKEYBUF,#2

NK3:

CJNEA,#07H,NK4

MOVKEYBUF,#3

NK4:

NOP

DK1:

;

第四行的处理

MOVA,KEYBUF

MOVDPTR,#TABLE

MOVCA,A+DPTR

MOVP0,A

MOVB,#2;

Table1以字保存,所以散转

MULAB

MOVTEMP,A

MOVDPTR,#TABLE1

MOVSTH0,A;

送入高字节

MOVTH0,A

INCTEMP

MOVA,TEMP

MOVSTL0,A;

送入低字节

MOVTL0,A

SETBTR0

DK1A:

MOVA,P2;

判断按键是否松开

JNZDK1A

CLRTR0

NOKEY1:

CLRP2.5

JZNOKEY2

CJNEA,#0EH,NK5

MOVKEYBUF,#4

LJMPDK2

NK5:

CJNEA,#0DH,NK6

MOVKEYBUF,#5

NK6:

CJNEA,#0BH,NK7

MOVKEYBUF,#6

NK7:

CJNEA,#07H,NK8

MOVKEYBUF,#7

NK8:

DK2:

MOVB,#2

MOVSTH0,A

MOVSTL0,A

DK2A:

MOVA,P2

JNZDK2A

NOKEY2:

CLRP2.6

JZNOKEY3

CJNEA,#0EH,NK9

MOVKEYBUF,#8

LJMPDK3

NK9:

CJNEA,#0DH,NK10

MOVKEYBUF,#9

NK10:

CJNEA,#0BH,NK11

MOVKEYBUF,#10

NK11:

CJNEA,#07H,NK12

MOVKEYBUF,#11

NK12:

DK3:

DK3A:

MOVA,P2

JNZDK3A

NOKEY3:

CLRP2.7

JZNOKEY4

CJNEA,#0EH,NK13

MOVKEYBUF,#12

LJMPDK4

NK13:

CJNEA,#0DH,NK14

MOVKEYBUF,#13

NK14:

CJNEA,#0BH,NK15

MOVKEYBUF,#14

NK15:

CJNEA,#07H,NK16

MOVKEYBUF,#15

NK16:

DK4:

MOVA,

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

当前位置:首页 > 工程科技 > 建筑土木

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

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