数字音乐盒设计.docx

上传人:b****4 文档编号:5434154 上传时间:2022-12-16 格式:DOCX 页数:29 大小:116.98KB
下载 相关 举报
数字音乐盒设计.docx_第1页
第1页 / 共29页
数字音乐盒设计.docx_第2页
第2页 / 共29页
数字音乐盒设计.docx_第3页
第3页 / 共29页
数字音乐盒设计.docx_第4页
第4页 / 共29页
数字音乐盒设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

数字音乐盒设计.docx

《数字音乐盒设计.docx》由会员分享,可在线阅读,更多相关《数字音乐盒设计.docx(29页珍藏版)》请在冰豆网上搜索。

数字音乐盒设计.docx

数字音乐盒设计

 

数字音乐盒设计

摘要

电子音乐已广泛的应用于社会生活的各个领域,其类型从音乐卡片到CD、MP3等多种多样。

利用单片机控制的电子音乐发生器软硬件上具有独特的优点,系统的开发周期短,成本低,电路制作容易。

更换歌曲时,硬件电路无需作任何修改,只需修改软件即可实现。

本文设计了单片机控制的音乐发生器系统,主要有硬件电路设计和软件设计两部分。

硬件方面选择内部存储资源丰富的AT89C51单片机,时钟采用12MHz晶体振荡电路,软件方面使用汇编语言,同时还可根据个人的习好通过软件改变节拍的延时时间,增加电子音乐的趣味性。

关键字:

AT89C51芯片,LED数码管,LED显示器,蜂鸣器。

 

一、相关知识介绍

(一)单片机音乐盒介绍

1.发音原理

发音原理:

播放一段音乐需要的是两个元素,一个是音调,另一个是音符。

首先要了解对应的音调,音调主要由声音的频率决定,同时也与声音强度有关。

对一定强度的纯音,音调随频率的升降而升降;对一定频率的纯音、低频纯音的音调随声强增加而下降,高频纯音的音调却随强度增加而上升。

另外,音符的频率有所不同。

音符的发音主要靠不同的音频脉冲。

利用单片机内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出音乐。

只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

2.音符频率的产生

音符及定时器初始值:

例如:

中音1(do)的音频=523HZ,周期T=1/523s=1912

定时器/计数器0的定时时间为:

T/2=1912/2

=956

定时器956

的计数值=定时时间/机器周期=956

/1

=956(时钟频率=12MHZ)装入T0计数器初值为65536-956=64580

将64580装入T0寄存器中,启动T0工作后,每计数956次时将产生溢出中断,进入中断服务时,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523HZ)的音符音频。

将51单片机内部定时器工作在计数器模式1下,改变计数初值TH0,TL0以产生不同的频率。

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

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

音符

频率(Hz)/初值(

音符

频率(Hz)/初值(

低1DO

262/63627

中1DO

523/64580

高1DO

1042/65056

低2RE

294/63835

中2RE

589/64687

高2RE

1245/65134

低3M

330/64021

中3M

661/64780

高3M

1318/65157

低4FA

350/64107

中4FA

700/64822

高4FA

1397/65178

低5SO

393/64264

中5SO

786/64900

高5SO

1568/65217

低6LA

441/64402

中6LA

882/64969

高6LA

1760/65252

低7SI

495/64526

中7SI

990/65031

音符、音符编码及定时器初始值:

为了产生音符,必低须求出音符低音5—高音5的计数初值。

例如C调的1DO的THTL=65536-50000/262=63627,

中音DO的THTL=65536-500000/523=64580,

高音DO的THTL=65536-500000/1042=65056。

为了方便写谱,对其进行简单的编码,在编程时,根据音符编码(表2)查找对应的计数初值。

比如说音乐是C调的,那么出现低音的5SO,直接将代码写为1;出现低音6LA,直接写一个2的代码;出现低音7SI,直接写一个3代码。

表2音符编码表

音符

音符编码

音符

音符编码

不发音

0

低5SO

1

低6LA

2

低7SI

3

中1DO

4

中2RE

5

中3M

6

中4FA

7

中5SO

8

中6LA

9

中7SI

A

高1DO

B

高2RE

C

高3M

D

高4FA

E

高5SO

F

高6LA

G

3.节拍频率的发生

节拍的产生与编码:

音乐中的节拍用延时时间产生。

例如,1拍=0.4s,1/4拍=0.1s,以此类推。

假设1/4拍执行一次延时程序,则1/2拍就执行两次延时程序,所以只要求出1/4拍的延时时间,其余节拍就是它的倍数。

为了方便,将节拍数也进行了编码,并且计算了乐谱节拍编程时的延时时间,如表3和表4所示。

表3节拍数编码表

按1/4拍为一个延时时间的节拍编码与节拍对应的表

按1/8拍为一个延时时间的节拍编码与节拍对应的表

节拍编码

节拍

节拍编码

节拍

节拍编码

节拍

节拍编码

节拍

1

1/4

6

6/4

1

1/8

6

6/8

2

2/4

8

8/4

2

2/8

8

8/8

3

3/4

A

10/4

3

3/8

A

10/8

4

4/4

C

12/4

4

4/8

C

12/8

5

5/4

F

15/4

5

5/8

表4乐谱节拍编程时的时间延时表

乐谱节拍

1/4拍的延时时间

乐谱节拍

1/8拍的延时时间

4/4

125ms

4/4

62ms

3/4

187ms

3/4

94ms

2/4

250ms

2/4

125ms

音符编码和节拍编码完成后,在编程时,每个音符占一个字节,高四位是音符编码,低四位是节拍编码。

(二)显示屏控制技术状况

1.串行输入与并行输入

LED显示屏的数据传输方式主要有串行和并行两种。

日前普遍采用串行控制技术,显示屏每个单元内部的不同驱动电路和各级联单元之间,每个时钟仅传送一位数据。

采用这种方式的驱动IC种类较多,不同显示单元之间的联线较少,可减少显示单元的数据传输驱动元件,从而提高整个系统的可靠性和性价比,具体工程实现也较为容易。

2.动态扫描与静态锁存技术

LED显示屏控制系统实现显示信息的刷新技术有动态扫描和静态锁存两种方式。

一般室内显示屏多采用动态扫描技术,即一行发光二极管共用一行驱动寄存器,根据共用一行驱动寄存器的发光二极管像素数目,分为1/4、1/16扫描等。

室外显示屏基本上采用静态锁存技术,即每一个发光二极管都对应有一个驱动寄存器,无需时分工作,从而保证了每一个发光二极管的亮度占空比为100%。

动态扫描法可以大大减少控制器的I/O口,因此应用较广。

3.自动检测及远程控制技术

LED显示屏的构成复杂,特别是室外显示屏,环境亮度、环境温度条件等都直接影响显示屏的正常运行。

在LED显示屏的控制系统中,因根据需要对温度、亮度、电源等进行自动检测控制,也可根据需要,远程实现对显示屏的亮度、色度调节、图像水平和垂直位置的调节以及工作方式的转换等。

二、总体方案论证与设计

本设计是基于单片机的数字音乐盒设计,由单片机AT89C51芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子数字音乐盒。

要求利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调并采用LCD显示信息,从而演奏乐曲,开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称),可通过功能键选择乐曲,暂停,播放。

本设计采用4*4键盘,16*2LCD,七段显示数码管LED。

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

(一)单片机的选取

首先选择单片机中最为普遍的MCS51系列。

其中AT89C2051是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,片内含2kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C2051单片机可应用于许多高性价比的应用场合。

主要性能:

●和MCS-51产品兼容

●2KB可重编程FLASH存储器(1000次)

●2.7-6V电压范围

●全静态工作:

0Hz-24KHz

●2级程序存储器保密锁定

●128*8位内部RAM

●15条可编程I/O线

●两个16位定时器/计数器

●6个中断源

●可编程串行通道

●高精度电压比较器(P1.0,P1.1,P3.6)

●直接驱动LED的输出端口

由于完成核心功能——音频输出只需一个I/O口,并且额外功能LED移位显示可根据所选单片机的剩余I/O口进行设计,因此AT89C2051足以满足基本要求。

其20个引脚体积小巧,内部2k字节的程序存储器容量适中,低压低频工作条件,并且价格低廉容易购得。

(二)LED显示方式

动态显示。

对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。

动态显示方式,可以避免静态显示的问题。

但设计上如果处理不当易造成亮度低,闪烁问题。

因此合理的设计既应保证驱动电路易实现,又要保证图像稳定、无闪烁。

动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素。

通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时显示亮度较好,无闪烁感。

(三)LED驱动模式

采用动态扫描方式,通过三极管驱动并联在一起的LED发光管的一端(共阴或共2端),LED发光管的另一脚接通用I/O口,控制其亮灭。

该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。

(四)系统总体结构框图

系统结构框图如图1所示:

图1系统结构框图

三、系统硬件的设计

本设计中用到了AT89C51单片机,4*4键盘,蜂鸣器,2LCD等硬件电路常用元器件。

(一)AT89C51芯片功能和硬件连接

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.AT89C51的主要特性

·与MCS-51兼容

·4K字节可编程闪烁存储器

·寿命:

1000写/擦循环

·数据保留时间:

10年

·全静态工作:

0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

2.管脚说明

管脚说明如图2所示:

 

图2管脚

VCC:

供电电压。

GND:

接地。

P0口:

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

当P1口的管脚第一次写1时,被定义为高阻输入。

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个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

管口管脚备选功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2/INT0(外部中断0)

P3.3/INT1(外部中断1)

P3.4T0(记时器0外部输入)

P3.5T1(记时器1外部输入)

P3.6/WR(外部数据存储器写选通)

P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:

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

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:

/EA保持低电平时,在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

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

XTAL1:

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

XTAL2:

来自反向振荡器的输出。

3.振荡器特性

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

4.芯片擦除

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

(二)LED显示器

LED(LightEmittingDiode)是发光二极管英文名称的缩写。

LED显示器是由发光二极管构成的,所以在显示器前面冠以“LED”。

LED显示器在单片机系统中的应用非常普遍。

1.LED显示器的结构

常用的LED显示器为8段。

每一个段对应1个发光二极管,这种显示器有共阳极和共阴极两种:

共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。

当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。

同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。

为了使LED显示器显示不同的符号或数字,就要把不同段的发光二极管点亮,这样就要为LED提供代码,因为这些代码可使LED相应的段发光,从而显示不同字型,因此该代码称为段码。

7段发光二极管,再加上1个小数点位,共计8位。

因此提供给LED显示器的段码正好是1B。

各段与字节中各位对应关系如下表5所示:

表58段LED结构及外形

代码位

D7

D6

D5

D4

D3

D2

D1

D0

显示位

dp

g

f

E

d

c

b

a

2.LED显示器工作原理

由N个LED显示块可以拼接成N位的LED显示器。

如图是LED显示器的结构原理图3所示:

 

图3LED显示器结构原理图

N个LED显示器有N个位选线和8*N位根段码线。

段码线控制显示字符的字型,而位选线为各个LED显示块中各段的公共端,它控制该LED显示位的亮或暗。

LED显示器有静态显示和动态显示两种。

(三)键盘

键盘在单片机应用系统中能实现向单片机输入数据,传送命令等功能,是人工干预单片机的主要手段。

1.键盘输入的特点

键盘实质上是一级按键开关的集合。

通常,键盘开关利用了机械触点的合、断作用。

2.按键的确认

键的闭合与否,反映在行线输出电压上就呈现高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,通过对行线电平高低状态的检测,便可确认按键按下与否。

为了确保CPU对一次按键动作只确认一次按键有效,必须消除抖动的影响。

按键输入电路由4*4矩阵键盘组成,P1口作为输入控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列。

3.如何消除按键的抖动

采用软件来消除按键抖动的基本思想是:

在一次检测到有键按下时,该键所对应的行线为低电平,执行一段延时10MS的子程序后,确认该行线电平是否仍为低电平,如果仍为低电平,则确认为该行确实有键按下。

当按键松开时,行线的低电平变为高电平,执行一段延时10MS的子程序后,检测该行线为高电平,说明按键确实已经松开。

(四)系统复位电路的设计

智能系统一般应有手动或上电复位电路。

复位电路的实现通常有两种方式:

RC复位电路和专用µP监控电路。

前者实现简单,成本低,但复位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复位。

对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。

本次课程设计采用了上电按钮电平复位电路,如图4所示:

 

 

图4复位电路

(五)时钟电路模块

时钟电路在单片机系统中起着非常重要的作用,是保证系统正常工作的基础。

在一个单片机应用系统中,时钟是保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢。

为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的独石电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。

时钟电路模块连接图如图5所示:

 

图5时钟电路模块连接图

(六)输出显示电路

用P2.0~P2.2作为LCD的RS、R/W、E的控制信号;用P0.0~P0.7作为LCD的D0~D7的控制信号。

由于P0口作为输出,应加上拉电阻。

(七)音频输出部分

整个输出部分由一个100uF电容、两个S9013NPN三极管和一个蜂鸣器/喇叭组成,音频输出原理图如图所示:

100uF电容是用来滤波的,两个NPN三极管起到放大信号的作用,最后由蜂鸣器/喇叭表现出信号。

用P3.7口控制蜂鸣器。

输出显示电路如图6所示:

图6音频输出原理图

 

(八)整体硬件电路

整体硬件电路图如图7所示:

图7整体硬件电路原理图

1.原理说明

当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

同时启动定时器T1,显示乐曲播放的时间,并驱动LCD,显示歌曲号及播放时间。

(1) 硬件电路中用P1.0~P1.7控制按键,其中P1.0~P1.3扫描行,P1.4~P1.7扫描列;

(2)用P2.0~P2.2作为LCD的RS、R/W、E的控制信号;

(3)用P0.0~P0.7作为LCD的D0~D7的控制信号;

(4)用P3.7口控制蜂鸣器;

(5)电路为12MHz晶振频率工作,起振电路中C1,C2均为30pf。

2.键盘按键

键盘按键分布如下:

0

1

A

B

C

D

按键功能说明:

1—3

三首歌曲

A

下一首歌曲

B

上一首歌曲

C

暂停

D

开机画面

四、系统软件设计

(一)主模块的设计

主模块是系统软件的主框架。

结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。

它的合理与否关系到程序最终的功能的多少和性能的好坏。

本系统的主模块的程序框图如下图8所示:

 

图8主模块程序框图

(二)外部中断源系统设计

在本设计中中断源是采用外部中断0方式,其入口地址是0003H。

其中断响应级别最高。

1.定时器/计数器

工作方式寄存器TMOD用于选择定时器/计数器的工作方式和工作模式。

其格式如下表6:

表6定时器/计数器工作方式寄存器TMOD格式

TMOD

D7

D6

D5

D4

D3

D2

D1

D0

GATE

M1

M0

GATE

M1

M0

T1方式字段

T0方式字段

下面表7是对TMOD各位进行说明:

表7对TMOD各位功能

M1

M0

工作方式

0

0

方式0,为13位定时器/计数器

0

1

方式1,为16位定时器/计数器

1

0

方式2,8位的常数自动重新装载的定时器/计数器

1

1

方式3,仅适用于T0

2.门控位—GATE

工作方式选择位—M1、M0。

其中,在本设计中采用方式1的16位定时器/计数器。

—计数器模式和定时器模式选择位。

=0,为定时器模式。

=1,为计数模式。

定时器/计数器控制寄存器TCON,其格式如下表8所示:

表8定时器/计数器控制寄存器TCON格式

TCON

D7

D6

D5

D4

D3

D2

D1

D0

TF1

TR1

TF0

TR0

IE1

IT1

IE0

ITO

其各位的功能如下:

TF1、TF0—计数溢出标志位当计数器溢出时,该位置1。

TR1、TR0—计数运行控制位。

(三)基本显示模块设计

基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

程序流程如图9所示。

 

图9程序流程图

(四)系统初始化程序

RSBITP2.0

RWBITP2.1

EBITP2.2

L50MSEQU60H

L1MSEQU61H

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

当前位置:首页 > 高等教育 > 其它

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

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