基于proteus的51系列单片机音乐盒设计概述.docx

上传人:b****5 文档编号:12124074 上传时间:2023-04-17 格式:DOCX 页数:25 大小:200.55KB
下载 相关 举报
基于proteus的51系列单片机音乐盒设计概述.docx_第1页
第1页 / 共25页
基于proteus的51系列单片机音乐盒设计概述.docx_第2页
第2页 / 共25页
基于proteus的51系列单片机音乐盒设计概述.docx_第3页
第3页 / 共25页
基于proteus的51系列单片机音乐盒设计概述.docx_第4页
第4页 / 共25页
基于proteus的51系列单片机音乐盒设计概述.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于proteus的51系列单片机音乐盒设计概述.docx

《基于proteus的51系列单片机音乐盒设计概述.docx》由会员分享,可在线阅读,更多相关《基于proteus的51系列单片机音乐盒设计概述.docx(25页珍藏版)》请在冰豆网上搜索。

基于proteus的51系列单片机音乐盒设计概述.docx

基于proteus的51系列单片机音乐盒设计概述

 

课程论文

 

题目:

基于proteus的51系列单片机

音乐盒设计

 

学生姓名:

韩向前

学生学号:

1008030211

系别:

电气信息工程学院

专业:

电子信息工程

年级:

10级

任课教师:

张水锋

电气信息工程学院制

2012年12月

基于Protues的51系列单片机音乐盒设计

学生:

韩向前

指导教师:

张水锋

电气信息工程学院电子信息工程

(2)班

目录

1、课程设计任务与要求2

1.1、课程设计的任务2

1.2、课程设计的要求2

1.3、课程设计的研究基础2

2、音乐系统方案制定2

2.1、方案提出2

2.2、方案比较3

2.3、方案论证3

2.4方案选择4

3、音乐系统方案设计4

3.1、各单元模块功能介绍及电路设计4

3.2、电路参数的计算及元器件的选择6

3.3、特殊器件的介绍10

3.4、系统整体电路图11

4、音乐系统仿真和调试11

4.1、仿真软件介绍11

4.2、系统仿真实现13

4.3、系统测试13

5、总结14

6、参考文献14

7、附录15

 

1课程设计任务与要求

1.1课程设计的任务

1>、综合运用所学的理论知识去独立完成设计课题;

2>、通过查阅手册和相关文献资料,培养独立分析、解决问题的能力;

3>、进一步熟悉单片机和常用接口电路,加深对专业知识和理论知识学习的认识和理解;

4>、学会电路的连接与仿真调试;

5>、撰写课程设计的总结报告;

1.2课程设计的要求

以AT89C51单片机为核心的音乐播放器

1>、选用AT89C51单片机和适当的存储器及接口芯片完成相应的功能。

2>、画出详细的硬件连接图。

3>、给出程序设计思路、画出软件流程图。

4>、给出所有程序清单并加上必要注释。

5>、撰写设计报告、调试报告及设计心得。

1.3课程设计的研究基础

为了实现单片机控制音乐播放,通过计算机控制系统,以Proteus和Keil仿真软件为核心来构建完成音乐盒设计仿真。

利用单片机产生乐曲音符,再把乐曲音符翻译成计算机音乐语言,由单片机进行信息处理,再通过蜂鸣器放出音乐。

音乐的产生主要是通过I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。

主要工作过程通过按下功能键实现上一首和下一首及暂停播放,同时有液晶屏显示当前播放歌曲的序号,扬声器播放音乐。

2音乐系统方案制定

2.1方案提出

方案一:

单片机接+5V电源供电,晶振电路产生单片机所需的时钟信号,通过功能键产生外部中断,控制音乐盒的上一首和下一首曲目,再由I/0接口输出控制扬声器发声,LCD显示。

另外,复位电路在于营造一个程序运行的初始状态,在程序出错时,重新启动单片机工作。

系统组成框图如图1所示

图1方案一系统框图

方案二:

设计一个音乐播放器同样使用AT89C51,蜂鸣器一端与一个按钮串联后再和P17焊接,另一端直接接地;P31和RST端口并联后和主电源串接,如图2所示:

 

图2方案二系统框图

2.2方案比较

方案一是通过按键控制系统的音乐播放。

利用I/0口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏出乐曲;采用LCD显示信息,开机时有欢迎提示字符,播放时显示歌曲序号或名称;可通过功能键选择乐曲暂停,播放;当键盘有键按下时,判断键值,启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲,同时启动计数器T0,产生一定频率的脉冲,驱动蜂鸣器,放出乐曲。

同时启动定时器T1,在LCD显示歌曲号。

通过单片机P1口控制,实现功能键盘的功能;功能键盘采用按键开关,通过单片机P2口控制,实现歌曲播放顺序的调换和暂停播放功能;扬声器由单片机的P3控制,实现歌曲播放。

方案二是利用AT89C51芯片通过播放按键直接控制音乐,使得蜂鸣器发出声音,方案一所需的电子元件少,这就大大减少了生产成本,此外,对于一个轻便易携的音乐盒,其附加能耗越低越好。

2.3方案论证

虽然方案一的设计比较全面,但其难度较大,且编程方面要求较高;方案二要求简单,容易实现,编程方面也较简单,因设计的是翻盖式音乐盒,其功能是在翻开翻盖的同时开关闭合,播放音乐,翻盖盖上,开关断开,音乐盒停止运行,因此方案二更符合实际需要达到了设计音乐盒的目的。

2.4方案选择

通过2.3的方案论证,决定选择方案二,方案二的实施性更强。

3音乐系统方案设计

3.1各单元模块功能介绍及电路设计

3.1.1时钟振荡电路

AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端[1]。

这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。

外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。

如果使用石英晶体,我们推荐电容为20PF—40PF,而如果使用陶瓷振荡器建议选择30PF—50PF。

用户也可以采用外部时钟。

采用外部时钟的电路如图示。

这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求[1]。

振荡器电路图3所示:

图3单片机内部、外部振荡电路

3.1.2音乐发生部分

蜂鸣器是一种把警示电信号转化成人耳能够感知的声音信号的转换装置。

通过开关的闭合与断开,来控制音乐的播放和暂停,实现了翻盖式音乐盒的功能,如图4所示:

图4单片机内部、外部振荡电路

3.1.3电路设计

(1)硬件电路设计

总体硬件电路实现功能如下,如图5所示

电路中用控制按键控制蜂鸣器。

电路为12MHZ晶振频率工作,起振电路中C1、C2均为20PF。

图5总体硬件电路设计图

(2)软件设计

在本程序中使用C语言编程,音乐的产生主要是通过单片机的I/O口输出高低不同的脉冲信号来控制蜂鸣器发音。

要想产生音频脉冲信号,需要算出某一音频的周期,然后将此周期除以2,即为半周期的时间。

利用单片机定时器计时这个半周期时间,每当计时到后就输出脉冲的I/O口反向,然后重复计时此半周期时间再对I/O口反向,这样就能在此I/O口上得到此频率的脉冲。

本例利用T0定时器方式1的中断产生音调,利用T1定时器方式1的中断产生节拍。

所以,将纯音乐《天空之城》的乐谱以代码的形式编写,用于主函数的调用。

(3)软件程序设计

主程序流程图如图5所示:

C语言编程的优越性很明显,其具有丰富的运算符,数据类型,语言简练,生成目标代码质量高等优点[2]。

许多大的软件都用C语言编写,这主要是由于C语言的可移植性好和硬件控制能力高,表达和运算能力强[2]。

再考虑到自己对C语言具有良好的掌握,因此决定用C语言编程。

图6主程序流程图

3.2电路参数的计算及元器件的选择

3.2.1音调、节拍以及编码的确定方法

一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。

因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。

(1)音调的确定

不同音高的乐音是用C、D、E、F、G、A、B来表示,这7个字母就是音乐的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成简谱的1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫“音调”,即Tone。

把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。

两个音之间的距离有两个“半音”,就叫“全音”。

在钢琴等键盘乐器上,C–D、D–E、F–G、G–A、A–B两音之间隔着一个黑键,他们之间的距离就是全音;E–F、B–C两音之间没有黑键相隔,它们之间的距离就是半音。

通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上﹟号或者b号的叫变化音。

﹟叫升记号,表示把音在原来的基础上升高半音,b叫降记音,表示在原来的基础上降低半音。

例如高音DO的频率(1046Hz)刚好是中音DO的频率(523Hz)的一倍,中音DO的频率(523Hz)刚好是低音DO频率(266Hz)的一倍;同样的,高音RE的频率(1175Hz)刚好是中音RE的频率(587Hz)的一倍,中音RE的频率(587Hz)刚好是低音RE频率(294Hz)的一倍。

要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。

利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

利用AT89C51的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法。

此外结束符和休止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。

例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次技术956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系公式如下:

N=Fi

2

Fr

N:

计算值;Fi:

内部计时一次为1us,故其频率为1MHz;Fr要产生的频率。

其计数值的求法如下:

T=65536-N=65536-Fi

2

Fr

例如:

设K=65536,F=1000000=Fi=1MHz,球低音DO(261Hz)。

中音DO(523Hz)。

高音的DO(1046Hz)的计算值

T=65536-N=65536-Fi

2

Fr=65536-1000000

2

Fr=65536-500000/Fr

低音DO的T=65536-500000/262=63627

低音DO的T=65536-500000/523=64580

低音DO的T=65536-500000/1047=65059

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

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

低音

频率

T

参数

中音

频率

T

参数

高音

频率

T

参数

Do

262

1908

229

Do

523

956

115

Do

1046

57

57

Do﹟

277

1805

217

Do﹟

554

903

108

Do﹟

1109

54

54

Re

294

1701

204

Re

587

852

102

Re

1175

51

51

Re﹟

311

1608

193

Re﹟

622

804

97

Re﹟

1245

48

48

Mi

330

1515

182

Mi

659

759

91

Mi

1318

45

45

Fa

349

1433

172

Fa

698

716

86

Fa

1397

43

43

Fa﹟

370

1351

162

Fa﹟

740

676

81

Fa﹟

1480

41

41

So

392

1276

153

So

784

638

77

So

1568

38

38

So﹟

415

1205

145

So﹟

831

602

72

So﹟

1661

36

36

La

440

1136

136

La

880

568

68

La

1760

34

34

La﹟

464

1078

129

La﹟

932

536

64

La﹟

1865

32

32

Si

494

1012

121

Si

988

506

61

Si

1976

30

30

(2)节拍的确定

若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。

“节拍”,即Beat,简单说就是打拍子,就像我们听音乐不自主的随之拍手或跺脚。

若1拍实0.5s,则1/4拍为0.125s。

至于1拍多少s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟72下,有些人快一点,有些人慢一点,只要听的悦耳就好。

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

休止符表示暂停发音。

一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。

了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。

对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时/计数器来产生这样的方波频率信号。

因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。

如表2节拍与节拍码对照:

表2节拍与节拍码对照

节拍码

节拍数

节拍码

节拍数

1

1/4拍

1

1/8拍

2

2/4拍

2

1/4拍

3

3/4拍

3

3/8拍

4

1拍

4

2/1拍

5

1又1/4拍

5

5/8拍

6

1又1/2拍

6

3/4拍

8

2拍

8

1拍

A

2又1/2拍

A

1又1/4拍

C

3拍

C

1又1/2拍

F

3又3/4拍

每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。

如果1拍为0.4秒,1/4拍实0.1秒,只要设定延迟时间就可求得节拍的时间。

假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。

所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定。

表31/4和1/8节拍的时间设定

曲调值

DELAY

曲调值

DELAY

调4/4

125毫秒

调4/4

62毫秒

调3/4

187毫秒

调3/4

94毫秒

调2/4

250毫秒

调2/4

125毫秒

(3)编码

doremifasolasi分别编码为1~7,重音do编为8,重音re编为9,停顿编为0。

播放长度以十六分音符为单位(在本程序中为165ms),一拍即四分音符等于4个十六分音符,编为4,其它的播放时间以此类推。

音调作为编码的高4位,而播放时间作为低4位,如此音调和节拍就构成了一个编码。

以0xff作为曲谱的结束标志。

举例1:

音调do,发音长度为两拍,即二分音符,将其编码为0x18。

举例2:

音调re,发音长度为半拍,即八分音符,将其编码为0x22

歌曲播放的设计。

先将歌曲的简谱进行编码,储存在一个数据类型为unsignedchar的数组中。

程序从数组中取出一个数,然后分离出高4位得到音调,接着找出相应的值赋给定时器0,使之定时操作蜂鸣器,得出相应的音调;接着分离出该数的低4位,得到延时时间,接着调用软件延时[1]。

如表4简谱对应的简谱码、T值、节拍数:

表4简谱对应的简谱码、T值、节拍数

简谱

发音

简谱码

T值

节拍码

节拍数

5

低音SO

1

64260

1

1/4拍

6

低音LA

2

64400

2

2/4拍

7

低音TI

3

64524

3

3/4拍

1

中音DO

4

64580

4

1拍

2

中音RE

5

64684

5

1又1/4拍

3

中音MI

6

64777

6

1又1/2拍

4

中音FA

7

64820

8

2拍

5

中音SO

8

64898

A

2又1/2拍

6

中音LA

9

64968

C

3拍

7

中音TI

A

65030

F

3又3/4拍

1

高音DO

B

65058

2

高音RE

C

65110

3

高音MI

D

65157

4

高音FA

E

65178

5

高音SO

F

65217

3.2.2元器件选择

本系统中单片机选择AT89C51,时钟振荡电路外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

一个个按钮控制音乐的播放和关闭。

3.3特殊器件的介绍

3.3.1AT89C51简介

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

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除100次。

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

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[3]。

外形及引脚排列如图7所示

图7AT89C51系列单片机

3.4系统整体电路图

如图8所示的系统整体电路图:

图8系统整体电路图

4音乐系统仿真和调试

4.1仿真软件介绍

本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,两种软件的简介如下:

4.1.1PROTEUS软件简介

Proteus软件由英国LabCenterElectronics公司开发的EDA工具软件。

具有原理编辑、印制电路板制作外,还具有交互式的仿真功能。

他不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界上最先进、最完整的多种型号微处理器系统的设计与仿真平台,真正实现了在计算机中完成电路原理图设计,电路分析与仿真、微处理器程序设计与仿真、系统测试与功能验证到形成印制电路板的完整电子设计、研发过程,Proteus软件由ISIS和ARES两个软件构成,其中ISIS一款智能电路原理图输入系统软件,可作为电子系统仿真平台;ARES是一款高级布线编辑软件,用于制作印制电路板(PCB)。

Proteus软件不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

4.1.2KEIL简介

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。

机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

[1]运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势[1]。

4.2系统仿真实现

打开Keil程序,执行菜单命令“Project”—“NewProject”创建“天空之城”项目,并选择单片机型号为AT89C51。

执行菜单命令“File”—“New”创建文件,输入源程序,保存为“天空之城.C”。

在“Project”栏的File项目管理窗口中右击文件组,选择“AddFilestoGroup`SourceGroup1`”将源程序“片内拆字.C”添加到项目中。

执行菜单命令“Project”—“OptionsforTarget`Target1`”,在弹出的对话框中选择“Output”选项卡,选中“CreateHEXFile”。

执行菜单命令“Project”—“BuildTarget”,编译成功,在“OutputWindow”窗口中显示没有错误,并创建了“天空之城.HEX”文件。

执行菜单命令“Debug”—“Start/StopDebugsession”。

打开ISIS7Professional窗口。

单击菜单命令”File”—“NewDesign”,创建一个DEFAULT模板,保存文件名为“天空之城.DSN”。

在器件选择按钮中单击“P”按钮,添加设计所需的元件,画好电路图。

双击AT89C51单片机,在弹出的对话框的“ProgramFile”项中选择在Keil中生成的十六进制HEX文件—“天空之城.HEX”.单击“Debug”—“Execute”,进入仿真状态,鼠标按住按钮开关便可听到音乐《天空之城》。

如图9为运行图:

图9程序运行图

4.3系统测试

在win7环境下测试,运行Proteus实现设计原型的仿真;通过模拟电子示波器输出单片机的输出波形,可观查到随着时间的变化,出现不同频率的电子脉冲,示波器采用A频道输入观察到输出波形如图9所示。

5总结

5.1设计小结

对比两种方案的设计,可以看出方案一,不论在软件设计,硬件设计上带来许多便捷,更能够体现符合实际生产的需要,节约成本,服务生活,引导节能环保的潮流,具有极强的现实意义和可行性,利用定时器可以产生各种固定频率的方波信号,也可以产生包括"Do"、"Re"、"Me"--等音阶在内的各种频率声音。

将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。

5.2收获体会

通过这次课程设计,我系统的把51单片机的设计与仿真重新学习了一遍,自此,我对这个软件也更加熟悉,学会了在制定设计方案时

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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