单片机课程设计数字音乐盒的设计.docx

上传人:b****8 文档编号:9861183 上传时间:2023-05-21 格式:DOCX 页数:23 大小:171.90KB
下载 相关 举报
单片机课程设计数字音乐盒的设计.docx_第1页
第1页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第2页
第2页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第3页
第3页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第4页
第4页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第5页
第5页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第6页
第6页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第7页
第7页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第8页
第8页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第9页
第9页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第10页
第10页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第11页
第11页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第12页
第12页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第13页
第13页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第14页
第14页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第15页
第15页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第16页
第16页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第17页
第17页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第18页
第18页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第19页
第19页 / 共23页
单片机课程设计数字音乐盒的设计.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计数字音乐盒的设计.docx

《单片机课程设计数字音乐盒的设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计数字音乐盒的设计.docx(23页珍藏版)》请在冰点文库上搜索。

单片机课程设计数字音乐盒的设计.docx

单片机课程设计数字音乐盒的设计

数字音乐盒的设计

摘要

本设计采用了扬声器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌曲。

现选用AT89C51单片机。

用PROTEUS单片机仿真软件仿真。

利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲。

通过单片机P1口控制,实现功能键盘控制;功能键盘采用按键开关,通过单片机P2口控制,实现歌曲播放顺序的调换和暂停播放功能;扬声器由单片机的P3口控制,实现歌曲播放;主要工作过程是通过按下功能键实现上一首和下一首及暂停播放,同时有液晶屏显示当前播放歌曲的序号,扬声器播放出音乐。

小小的音乐盒可以给人们带来美好的回忆,提高人们的精神文化享受。

传统的音乐盒多是机械型的,体积笨重,发音单调,不能实现批量生产。

本文设计的音乐盒是以单片机为核心元件的电子式音乐盒,体积小,重量轻,能演奏和旋音乐,功能多,使用方便,可以批量生产,具有一定的商业价值。

关键词:

AT89C51单片机,方波,音调 

 

1绪论

1.1设计简述

本文设计的音乐盒,是基于单片机设计制作的电子式音乐盒。

与传统的机械式音乐盒相比更小巧,音质更优美且能演奏和弦音乐。

电子式音乐盒动力来源是电池,制作工艺简单,可进行批量生产,所以价格便宜。

基于单片机制作的电子式音乐盒,控制功能强大,可根据需要选歌,使用方便。

所放歌曲的节奏可以根据需要进行设置,根据存储容量的大小,可以尽可能多的存储歌曲。

另外,可以设计彩灯外观效果,增设放歌时间、序号显示灯功能,使音乐盒的功能更加丰富。

1.2设计目的

为了更好地熟悉和掌握单片机的基本功能和编程,我们以AT89C51为基础设计电子音乐盒。

AT89C51单片机电子音乐盒集成多个硬件资源模块,每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不同阶层的单片机爱好者所用。

同时,电子音乐盒的设计具有很重要的现实意义。

我们根据学习和实践的需要,进行了电子音乐盒功能设计。

我们在制作电子音乐盒的过程中会学习到很多的东西,能够最大限度的了解我们自制的这一个单片机电子音乐盒,这样以后调试程序的时候便得心应手,效率要提高很多。

1.3主要问题

制定音乐盒控制系统需要完成功能,并根据此来制定设计方案;根据设计方案来进行硬件电路图的设计和软件模块的开发;通过仿真调用后再来反复修改程序,最终达到预期功能。

1.4技术指标

1系统要有一定稳定性,不易受外界干扰的影响。

2系统采用外部或内部+5V供电。

3实现音乐盒播放音乐的控制。

4LCD来显示歌曲序号的功能。

5.通过按键选择增加上一首、下一首、暂停/播放功能。

2设计方案简述

2.1设计功能要求

1.利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调,从而演奏乐曲(最少三首乐曲,每首不少于30秒)

2.采用LCD显示信息.

3.开机时有英文欢迎提示字符,播放时显示歌曲序号(或名称)

4.可通过功能键选择乐曲,暂停,播放。

5.选作内容:

显示乐曲播放时间或剩余时间

2.2总体设计原理

通过单片机的定时器产生一定长度的方波,方波脉冲驱动扬声器发声。

要产生音频脉冲,只需算出某一音频的周期(1/音频),然后取半周期的时间定时。

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

如中音D0,频率为523HZ,其周期T=1/523=1912微秒,因此只要令计数器定时1912/2=956,在每计数956次时将I/O口反相,就可得到中音D0(523HZ)【1】。

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

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

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

通过按下功能键实现上一首和下一首及暂停播放,同时有LCD显示当前播放歌曲的序号,扬声器播放出音乐【2】。

2.3总体设计框图

图1总体设计框图

3硬件电路设计

3.1硬件电路

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

3.2时钟复位电路

时钟电路由单片机XTAL1、XTAL2引脚外接晶振(12MHz)及起振电容C1、C2(均为30pf)组成如图2

图2时钟复位电路

3.3按键输入电路

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

3.4输出显示电路

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

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

用P3.7口控制蜂鸣器。

输出显示电路如图3所示

图3输出显示电路

3.5整体硬件电路

整体硬件电路如图4所示

图4整体硬件电路

3.6原理说明

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

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

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

(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【5】。

3.7键盘按键

键盘按键分布如下:

表1键盘按键分布表

0

1

4

8

9

A

B

C

D

按键功能说明:

表2按键功能说明表

1—A

十首歌曲

C

下一首歌曲

D

上一首歌曲

E

暂停

F

开机画面

F

开机画面

4软件设计

4.1设计源程序代码(见附录)

4.2程序设计流程图

程序设计流程图如图5所示

 

图5程序设计流程图

5仿真

(1)点击运行按钮之后,电路上电,按下F键,LCD上得到开机画面,显示开机字符“WELCOMHERE”及当前作用键F,如图6所示

 

图6开机画面显示图

(2)按下1-A中的某一按键,LCD显示当前作用按键(当前播放音乐的标号)并显示该音乐播放的时间,同时,蜂鸣器播放当前乐曲。

LCD显示如图7所示(以按下5键为例):

图7LCD显示图

(3)按下C键,则LCD显示由当前乐曲跳转到下一首,蜂鸣器响起下一首乐曲。

如图8所示:

 

当前显示C键动作后

图8乐曲跳转下一曲显示图

(3)按下D键,则LCD显示由当前乐曲跳转到上一首,蜂鸣器响起上一首乐曲。

如图9所示:

 

当前显示D键动作后

图9乐曲跳转上一曲显示图

(4)按下E键,则蜂鸣器停止当前音乐的播放,而且LCD上播放的时间也停留在当前,再次按下E键后,音乐继续播放,播放时间继续计时【7】。

如图10所示:

 

当前显示E键动作后

图10E键动作效果图

6设计结果及分析

本文描述了电子音乐盒的硬件和软件制作方案,总体符合预期要求,能够成功实现按1-A按键能演奏不同的乐曲的基本功能,并添加了通过按键控制上一首,下一首,暂停/播放的功能。

在播放乐曲的过程中,还增加了显示歌曲演奏时间的功能。

另外,采用了液晶显示技术,简化了硬件电路,还能显示英文的开机画面等【8】。

当然,此设计还存在很多不足有待改进的地方

1.可以添加一个彩灯按照乐曲频率闪烁功能,增添趣味。

2.可以添加键盘输入乐曲功能,把电子琴和音乐盒结合起来。

总体来说本次课程设计基本完成,但还有部分可以完善。

总结

音乐盒设计是一项趣味性很强的设计,能激发我的浓厚兴趣。

同时要求我从程序编程,调试,软件仿真和绘制开始,到硬件的焊接和调试,再到修改程序,在这期间我了解到了单片机开发的大致流程。

通过这次毕业设计,也让我学习到了很多新的东西,这些都让我受益匪浅。

单片机的定时器功能,LCD显示,功能键盘的设计,这些内容都颇为丰富。

有以前学习过的旧知识,也有很多未曾注意到得新知识,这些都曾使我的设计出错,通过自己的努力,老师指导和同学的帮助,终于克服了一个一个的困难,把硬件仿真顺利做好,把软件调试顺利完成。

最后,衷心感谢这次对我的毕业设计提供无私帮助的所有老师和同学!

 

致谢

经过近二个星期的忙忙碌碌,这次的单片机课程设计已经快要接近尾声了。

在这次的单片机课程设计过程中,无论是在理论学习阶段,还是在设计的选题、资料查询和撰写的每一个环节,我都得到到了许多人的悉心的指导和帮助。

首先,借此机会我向我们的单片机授课教师及课程设计指导老师付瑞玲老师表示衷心的感谢,付老师的悉心指导和帮助,是我顺利完成本次课程设计的基础和前提。

同时,我要感谢授课的各位老师,正是由于他们的传道、授业、解惑,让我学到了专业知识,并从他们身上学到了如何求知治学、如何为人处事。

另外,感谢各位同学的帮助和勉励。

同窗之谊和手足之情,我将终生难忘!

我愿在未来的学习和研究过程中,以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有老师、同学和朋友。

参考文献

[1]胡汉才.单片机原理与接口技术[M].北京:

清华大学出版社,1995.6.

[2]楼然苗等.51系列单片机设计实例[M].北京:

北京航空航天出版社,2003.3.

[3]何立民.单片机高级教程[M].北京:

北京航空航天大学出版社,2001.3.

[4]赵晓安.MCS-51单片机原理及应用[M].天津:

天津大学出版社,2001.3.

[5]肖洪兵.跟我学用单片机[M].北京:

北京航空航天大学出版社,2002.8.

[6]夏继强.单片机实验与实践教程[M].北京:

北京航空航天大学出版2001.4.

[7]于凤明.单片机原理及接口技术[M].北京:

中国轻工业出版社.1998.5.

[8]陈伟人.单片微型计算机原理与应用[M].北京:

清华大学出版社,2006.5.

附录

程序代码:

RSBITP2.0;定义液晶显示端口标号

RWBITP2.1

EBITP2.2

ORG0000H

LJMPMAIN

ORG000BH

LJMPTT0

ORG001BH

LJMPT1INT

ORG1000H

MAIN:

;-----------------------;液晶初始化

MOVSP,#70H   

MOVP0,#01H ;清屏

CALLENABLE

MOVP0,#38H ;8位,2行显示

LCALLENABLE

MOVP0,#0FH ;屏显ON,光标ON,闪烁ON

LCALLENABLE

MOVP0,#06H ;计数地址加1,显示幕ON

LCALLENABLE

;------------------------内存初始化

LCALLINITIL     

;------------------------------

KEY1:

LCALLKEY

LCALLMODD        

LJMPKEY1

;---------------------键盘扫描

KEY:

NOP

NOP

LCALLKS

JNZK1     ;有按键转到K1

LCALLKAIJI

LCALLSOP

XN:

LJMPKEY

K1:

LCALLMODD

LCALLMODD

LCALLKS

JNZK2

LJMPKEY

K2:

MOVR2,#0FEH  ;读键盘

MOVR4,#00H

K3:

MOVA,R2

MOVP1,A

MOVA,P1

JBACC.4,L1 ;为1跳转,第一行无按键

MOVA,#00H

LJMPLK

L1:

JBACC.5,L2

MOVA,#04H

LJMPLK

L2:

JBACC.6,L3

MOVA,#08H

LJMPLK

L3:

JBACC.7,NEXT1

MOVA,#0CH

;----------------------------------

LK:

ADDA,R4

PUSHACC

K4:

LCALLDELAY1;若同时有其他键,则等待

LCALLKS

JNZK4

;----------------------------------

MOVR3,#07H    

CLRA

MOVR0,#30H

MOVR1,#31H

MM1:

MOVA,@R1

MOV@R0,A

INCR0

INCR1

DJNZR3,MM1

POPACC

MOV@R0,A

RET

;---------------------------------

NEXT1:

INCR4   ;------列扫描

MOVA,R2

JNBACC.3,N2

LJMPN1

N2:

LJMPKEY

N1:

RLA

MOVR2,A

LJMPK3

;----------------------------------

KS:

MOVA,#0F0H    ;判断P1口

MOVP1,A

NOP

NOP

MOVA,P1

CPLA

ANLA,#0F0H

RET

;-------------------------------

DELAY1:

SETBRS0

DL:

MOVR5,#0AH

DL2:

MOVR6,#63

DL3:

NOP

NOP

DJNZR6,DL3

DJNZR5,DL2

CLRRS0    

RET

;30H-37H初值为零

;---------------------------------

INITIL:

     

MOVR3,#08H

MOVR0,#30H

M1:

MOV@R0,#00H

INCR0

DJNZR3,M1        

RET

;----------------------------------

;显示    

;----------------------------------

MODD:

 

MOVP0,#8EH

LCALLENABLE        

MOVA,37H

MOVDPTR,#TABLE3        

MOVCA,@A+DPTR

LCALLWRITE2      

RET

;----------------------------------

;开机提示字

;----------------------------------

KAIJI:

MOVA,37H

CJNEA,#0FH,DFF

MOVP0,#80H   ;设光标地址

LCALLENABLE

MOVDPTR,#TABLE1;写数据

LCALLWRITE1        

DFF:

RET

;----------------------------------

;按键值播放歌曲

;----------------------------------

SOP:

MOVA,37H

CJNEA,#01H,A11

LCALLMODD

MOV52H,#HIGHTABLE10

MOV53H,#LOWTABLE10

LCALLINITILE2

LCALLMAIN0

A11:

CJNEA,#02H,A22

LCALLMODD

MOV52H,#HIGHTABLE20

MOV53H,#LOWTABLE20

LCALLINITILE2     

LCALLMAIN0

……

AAA:

RET          

;*******************************

INITILE2:

MOVL50MS,#20

MOVL1MS,#00H

MOVL250MS,#00H

MOVSEC,#00H

MOVMIN,#00H

MOVHOU,#00H

MOVA,HOU

MOVB,#10

DIVAB

ADDA,#30H ;将BCD吗转化为ASIIC码

MOVP0,#0C8H ;显示小时十位

CALLENABLE

CALLWRITE2

MOVA,B

ADDA,#30H

MOVP0,#0C9H  ;显示小时个位

CALLENABLE

CALLWRITE2

MOVA,#3AH

MOVP0,#0DH   ;显示冒号

CALLENABLE

CALLWRITE2

MOVA,MIN

MOVB,#10

DIVAB

ADDA,#30H

MOVP0,#0CBH  ;显示分十位

CALLENABLE

CALLWRITE2

MOVA,B

ADDA,#30H

MOVP0,#0CCH  ;显示分个位

CALLENABLE

CALLWRITE2

MOVA,#3AH

MOVP0,#0CDH  ;显示冒号

CALLENABLE

CALLWRITE2

MOVA,SEC

MOVB,#10

DIVAB

ADDA,#30H

MOVP0,#0CEH  ;显示秒十位

CALLENABLE

CALLWRITE2

MOVA,B

ADDA,#30H

MOVP0,#0CFH  ;显示秒个位

CALLENABLE

CALLWRITE2

MOVP0,#0C0H  ;设光标地址

CALLENABLE

MOVDPTR,#TABLE2;写数据

CALLWRITE1        

RET

;**************************写指令

ENABLE:

CLRRS

CLRRW

CLRE

LCALLDELAY

SETBE

RET

;***************************写数据

WRITE1:

MOVR1,#00H

A1:

MOVA,R1

MOVCA,@A+DPTR

CALLWRITE2

INCR1

CJNEA,#0FEH,A1 ;未到字符串末尾继续

RET

WRITE2:

MOVP0,A

SETBRS

CLRRW

CLRE

CALLDELAY

SETBE

RET

;-------------------------

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB80H,90H,88H,83H,0C6H,0A1H,86H,8EH

TAB1:

DB89H,86H,0C7H,0C7H,0C0H

TAB2:

DB0C6H,88H,0C0H

TABLE1:

DBWELCOMHERE,0FEH

TABLE2:

DBDFFWB,0FEH

TABLE4:

DBCAU,0FEH

TABLE3:

DB30H,31H,32H,33H   

DB34H,35H,36H,37H

DB38H,39H,41H,42H

DB43H,44H,45H,46H    

;-----------------------------

;播放歌曲程序

;-------------------------------

MAIN0:

MOVTMOD,#11H

MOVIE,#8AH

;MOVTH1,#3CH

;MOVTL1,#0B0H  

LCALLKS

JNZTTM12          

MOV40H,#00H

;------------------------------

NEXT20:

MOVA,40H

MOVDPH,52H

MOVDPL,53H

MOVCA,@A+DPTR

MOVR2,A

JZSTOP

ANLA,#0FH

MOVR1,A

MOVA,R2

SWAPA

ANLA,#0FH

JNZSING

CLRTR0

JMPW1

;--------------------------------

SING:

DECA

MOV22H,A

RLA

MOVDPTR,#TABLE00

MOVCA,@A+DPTR

MOVTH0,A

MOV21H,A

MOVA,22H

RLA

INCA

MOVCA,@A+DPTR

MOVTL0,A

MOV20H,A

SETBTR0

SETB TR1

W1:

LCALLDELAY30

INC40H

LCALLKS    ;有键跳出

JNZSTOP

LJMPNEXT20

;-----------------------

STOP:

CLRTR0

CLRTR1

LJMPMAIN0

;-------------------------

TTM12:

LCALLK2

MOVA,37H

CJNEA,#0EH,TTM13

CLRTR1

LCALLDELAY1

TTM120:

LCALLKS

LCALLDELAY1

JZTTM120

LCALLK2

MOVA,37H

CJNEA,#0EH,TTM120

SETBTR1

LJMPNEXT20

TTM13:

CJNEA,#0CH,TTM14

MOVA,52H

INCA

MOV52H,A

MOVA,53H

INCA

MOV53H,A

MOVA,36H

INCA

MOV37H,A

LJMPTTM2

TTM14:

CJNEA,#0DH,TTM2

MOVA,52H

DECA

MOV52H,A

MOVA,53H

DECA

MOV53H,A

MOVA,36H

DECA

MOV37H,A

TTM2:

RET

……

RET

;-----------------------------------

TABLE00:

DW64580,64684,64777,64820

DW64898,64968,65030,64260

DW64400,64524,65058,63835,64021

;---------------------------------

;第二首《月亮代表我的心》

;-----------------------------------

TABLE20:

 

DB02H,82H

DB16H,32H,54H,02H,52H

DB0A6H,32H,54H,02H,52H

DB64H,74H,0B6H,64H

DB52H,5CH,3

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

当前位置:首页 > 初中教育 > 语文

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

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