基于51单片机的音乐盒的设计毕业设计.docx

上传人:b****5 文档编号:27680245 上传时间:2023-07-03 格式:DOCX 页数:43 大小:663.55KB
下载 相关 举报
基于51单片机的音乐盒的设计毕业设计.docx_第1页
第1页 / 共43页
基于51单片机的音乐盒的设计毕业设计.docx_第2页
第2页 / 共43页
基于51单片机的音乐盒的设计毕业设计.docx_第3页
第3页 / 共43页
基于51单片机的音乐盒的设计毕业设计.docx_第4页
第4页 / 共43页
基于51单片机的音乐盒的设计毕业设计.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

基于51单片机的音乐盒的设计毕业设计.docx

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

基于51单片机的音乐盒的设计毕业设计.docx

基于51单片机的音乐盒的设计毕业设计

基于51单片机的音乐盒的设计毕业设计

目次

 

1引言

在进入21世纪后,单片机产品的发展正朝着高性能和多品种方向,并且发展趋势是进一步朝着CMOS化、小体积、低功耗、大容量、高性能、低价格以及外围的电路内装化等几个方面去发展。

单片机的应用的重要意义还是在于它是从根本上改变了传统的控制系统设计思想和设计方法。

过去必须要由模拟电路或者数字电路才可以实现的大部分的功能,现在已能完全可以用单片机通过软件的方法来实现了。

这种由软件去代替硬件的控制技术也称之为微控制技术,这是传统控制技术的一次革命。

单片机可以说渗透到了我们生活的各个方面,几乎难以找到哪个领域里没有单片机的踪迹。

导弹中的导航装置,飞机里安装的各种仪表的控制,计算机里的网络通讯与数据传输方面,工业自动化过程中实时控制和数据处理方面,生活中被广泛使用的各种智能IC卡,民用的高档轿车的安全保障系统,摄像机、录像机、全自动洗衣机所涉及的控制方面,以及远程控制的玩具、电子宠物等等,这些全都是离不开单片机的。

而伴随着科学技术的不断进步和社会的持续发展,人类所接触的更种信息也在不断增加并且信息变得越来越复杂。

面对着浩如烟海的繁杂信息,人们目前已经能利用计算机等工具快速、精准地对其进行快速处理,但要想将其处理完毕的信息及时、清晰地传递给其他人,还必须要寻找更加卓越的显示技术去实现它。

而单片机技术与液晶显示技术的结合,恰恰使得信息的传输交流向着智能化可视化方向进行快速发展。

1.1音乐盒的意义

音乐盒的起源,可以追溯到中世纪欧洲文艺复兴时期。

当时为了使教会的钟塔报时,而将大小的钟表装上了机械装置,被称之为“可发出声音的组钟”。

音乐盒已有着300多年的发展历史,是人类文明发展的历史见证。

传统的音乐盒大多是机械音乐盒,其工作的原理是通过齿轮来带动一个带有铁钉的铁桶转动,铁桶上的铁钉撞击用铁片制成的琴键,从而发出声音。

但是,机械式的音乐盒体积较大,比较笨重,并且发音单调。

水和灰尘等外在因素,容易使得内部金属发音条变形,从而会造成发音跑调。

此外,机械音乐盒放音时为了能让音色稳定,必须要放平不能动摇,而且价格昂贵,不能够实现大批量生产。

1.2研究内容

利用STC89C52单片机,结合LCD显示模块、继电器驱动模块、音频解码电路,完成音乐盒的播放;具体设计实现的功能如下

(1)通过按键控制多首音乐播放,并可通过按键选择一个开始,一个暂停,一个翻上首,一个翻下首;

(2)通过显示电路显示播放歌曲名或编号;

2系统总体设计

2.1系统总体框架图

音乐盒的系统结构是以STC89C52单片机位控制核心,加上5个按键、继电器、扬声器、LCD显示模块组成。

单片机负责接收按键的输入,根据输入控制音乐播放曲目和LCD显示屏显示歌曲名以及扬声器发音。

系统组成框图如图2.1所示。

 

图2-1系统总体框架图

2.2音乐盒的设计原理

利用KEIL软件编音乐盒写程序,将编写好的程序下载进51单片机内,利用单片机控制LCD显示歌曲名,之后将所需要播放的歌曲放入U盘,利用由继电器控制音频解码电路来实现音乐的播放,再通过按键实现上一首和下一首及暂停播放。

2.3单片机芯片概述

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

原理图如下

图2-2单片机引脚图

 

3硬件电路设计

3.1单片机最小系统原理图

图3-1单片机最小系统原理图

3.1.1复位电路

复位电路:

由两个电容串联电阻构成,由图3.1并结合"电容电压不能够突变"的性质,可以知道,当系统一上电时,RST脚将会出现高电平,并且,这个高电平持续的时间是由电路中的RC值来决定的.典型的51单片机中当RST脚的高电平持续两个机器周期以上时就将复位,所以,适当的组合RC的取值就可以保证可靠的复位.一般教科书中推荐C取10u,R取8.2K.当然也还是有其他取法的,但原则就是要让RC的组合可以在RST脚上产生至少2个机械周期的高电平.至于如何具体得定量计算,可以参考实际电路分析相关书籍.

a.复位操作

复位是单片机里的初始化操作。

其主要的功能是把PC初始化为0000H,使得单片机从0000H单元开始来执行程序。

除了在进入系统的正常初始化之外,当由于程序运行时出错或是操作错误使系统处于死锁状态时,为了摆脱困境,也需要按复位键重新启动。

b.复位信号

RST引脚是复位信号的输入端。

复位信号是高电平时有效,其有效时间是应持续24个振荡周期(即二个机器周期)以上。

若是使用频率为6MHz的晶振,则其复位信号持续时间要超过4us才能够完成复位操作。

3.1.2晶振电路

晶振电路:

典型的晶振取11.0592MHz(因为是可以准确的得到9600波特率和19200波特率,用在有串口通讯的场合)/12MHz(产生精确的uS级时歇,来方便定时操作)

单片机:

一片STC89C52/S51或其他51系列兼容单片机

3.1.3时钟电路

STC89C52内部有一个可用于构成振荡器的高增益反相放大器,而引脚RXD与TXD分别是这个放大器的输入端和输出端。

时钟可由内部方式产生或外部方式产生。

内部方式的时钟电路在RXD和TXD引脚上可外接定时元件,而内部振荡器就能产生自激振荡。

定时元件通常是采用石英晶体及电容组成的并联谐振回路。

晶体的振荡频率可以在1.2~12MHz之间选择,一般电容值在5~30pF之间选择,电容值的大小可以对频率起到微调的作用。

3.2LCD显示模块

LCD原理图如下图

图3-2LCD原理图

LCD(LiquidCrystalDisplay)是利用液晶分子的物理结构以及光学特性来进行显示的一种技术。

液晶分子的特性:

液晶分子是一种介于固体和液体之间的棒状结构的大分子物质;并且在自然形态下,具有光学各向异性的特点,在电(磁)场的作用下,呈各向同性特点:

下面以直视型的简单多路TN/STNLCDPanel(液晶显示面板)的基本结构来介绍LCD的基本显示原理,示意图如图

图3-3LCD的基本显示原理

3.2.1LCD显示屏的特点

a、显示质量高

由于液晶显示器中每一个点在收到信号之后就会一直保持那种色彩和亮度,且恒定发光,而不会像阴极射线管显示器(CRT)那样要去不断刷新亮点。

因此,液晶显示器不仅显示画质高而且绝对不会闪烁,可以把眼睛疲劳降到最低。

b、没有电磁辐射

传统的显示器的显示材料是荧光粉,是通过电子束撞击荧光粉来实现显示,当电子束在打到荧光粉上的一刹那间是会产生强大的电磁辐射的,尽管目前有许多的显示器产品在处理辐射问题上进行了很多比较有效的处理,尽可能的把辐射量降到最低水平,但是要彻底消除是十分困难的。

相对来讲,液晶显示器在防止辐射方面是具有先天优势的,因为它根本就不存在任何辐射。

在电磁波的防范方面,液晶显示器也是有自己独特的优势,它采用了十分严格的密封技术将来自驱动电路里的少量电磁波封闭在了显示器中,然而普通显示器为了散发热量的需求,必须要尽可能地让内部的电路与空气相接触,这样内部电路所产生的电磁波也就大量地向外“泄漏”了。

c、可视面积大

对于尺寸相同的显示器来讲,液晶显示器的可视面积是要更大一些。

液晶显示器的可视面积和它的对角线尺寸是相同的。

而阴极射线管显示器显像管前面板四周是有一英寸左右的边框不能用于显示的。

d、应用范围广

最初的液晶显示器因为无法用来显示细腻的字符,所以通常应用在电子表、计算器上。

但随着液晶显示技术的不断发展和进步,字符显示开始变得越来越细腻起来,同时也开始支持基本的彩色显示,并逐步被用于液晶电视、摄像机的液晶显示器上、掌上游戏机上。

3.3继电器模块

继电器是一种由电子控制的器件,它具有控制系统(又称之输入回路)和被控制系统(又称之输出回路),通常被应用于自动控制电路中,它实际上就是用较小的电流去控制较大电流的一种“自动开关”。

所以在电路中起着自动调节、安全保护、转换电路等作用。

3.3.1电磁继电器的工作原理和特性

电磁式继电器大都是由铁芯、线圈、衔铁、触点簧片等组成的。

只需要在线圈两端加上一定的电压,线圈中就会有一定的电流经过,从而产生了电磁效应,而衔铁就将会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,之后带动衔铁的动触点与静触点(常开触点)吸合。

当线圈断电之后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力下返回原来的位置,使动触点与原来的静触点(常闭触点)相吸合。

这样通过吸合、释放,从而达到了在电路之中的导通、切断的目的。

而对于继电器中的“常开、常闭”两触点,可以这样来区分:

继电器线圈未通电时候处于断开状态的静触点,称为“常开触点”;反之处于接通状态的静触点称为“常闭触点”。

3.3.2固态继电器的工作原理和特性

固态继电器是一种由两个接线端为输入端,另两个接线端作为输出端的四端器件,中间是采用隔离器件实现输入输出的电隔离。

固态继电器按负载电源类型可分为交流型和直流型。

按开关型式可将其分为常开型和常闭型。

按隔离型式可将其分为混合型、变压器隔离型和光电隔离型,而以光电隔离型为最多。

3.3.3继电器主要产品技术参数

1、额定工作电压

其是指继电器正常工作时候线圈所需要的电压。

根据继电器的型号的不同,可以是交流电压,也能够是直流电压。

2、直流电阻

其是指继电器中线圈的直流电阻,能够通过万能表测量。

3、吸合电流

其是指继电器能够产生吸合动作的最小电流。

当在正常使用时,给定的电流必须要略大于吸合电流,这样继电器才能够稳定地工作。

而对于线圈所加的工作电压,一般是不要超过额定工作电压的1.5倍,否则会产生较大的电流而把线圈烧毁。

4、释放电流

其是指继电器产生释放动作的最大电流。

当继电器吸合状态的电流减小到一定程度时,继电器就会恢复到未通电的释放状态。

这时的电流远远小于吸合电流。

5、触点切换电压和电流

其是指继电器所允许加载的电压和电流。

它决定了继电器能够控制电压和电流的大小,使用时不能超过此值,否则就会很容易损坏继电器的触点。

3.4按键模块

按键模块原理图如下:

3-4按键原理图

按键初步设计是由五个按键来完成所有的操作,它们的功能分别是:

上一曲、下一曲、暂停、复位和控制复位。

3.5其它

扬声器是一种将电信号转变为声信号的换能器件,扬声器的性能优劣对音质造成的影响很大。

扬声器在音响设备中是一个最为薄弱的器件,而相对于音响效果而言,它又是一个最为重要的部件。

扬声器的种类繁多,而且价格相差也很大。

音频电能通过电磁,压电或者静电效应,使其纸盆或膜片振动并和周围的空气产生共振(共鸣)从而发出声音。

低档的塑料音箱因其箱体单薄而无法克服谐振,无音质可言(但也有部分设计好的塑料音箱要远远好于劣质的木质音箱);木制音箱降低了箱体谐振时所造成的音染,音质要普遍好于塑料音箱,通常多媒体音箱都是双单元二分频设计的,一个较小的扬声器用来负责中高音的输出,而另一个较大的扬声器则负责中低音的输出。

 

4软件设计

4.1软件总体流程图

软件程序主要实现LCD显示模块、控制扬声器模块、按键模块等。

LCD显示模块:

用来显示播放的歌曲名;扬声器模块:

用来播放歌曲;按键模块:

就是用来控制歌曲播放和暂停,以及切换上一曲下一曲。

主模块流程图如图4.1所示:

 

图4-1软件总体流程图

 

总体流程图主程序:

voidmain()

{

unsignedcharnum;

chargequ1[11]="QiJiShiJie";//写入歌曲名

chargequ2[7]="QiuHua";

chargequ3[11]="ShenShenAi";

chargequ4[11]="TianLanLan";

chargequ5[17]="WoCongCaoYuanLai";

chargequ6[15]="ZhongGuoWeiDao";

chargequ7[11]="ZiYouZiZai";

chargequ8[6]="gequ8";单片机中写入的歌曲名

4.2播放/暂停子程序

播放/暂停在程序利用内部中断T0口。

将T0口设为计数中断并工作在方式2下。

标识符初值赋值为R1=00H,计数初值设为TH0=0FFH,TL0=0FFH。

当按键第一次产生中断信号时,播放/暂停子程序改变标志符R1,将其赋值为01H。

此时播放器由暂停状态进入播放状态。

当按键第二次产生中断信号时,播放/暂停子程序判断R1是否为02H后,将R1再次赋值为00H。

此时,播放器由播放状态进入暂停状态。

 

 

图4-2播放流程

 

代码实现如下:

POPDPL;恢复现场

POPDPH

POPACC

SETBEA

RETI;中断返回

START_PAUSE:

CPLF0;开始/暂停中断处理程序,将标置位取反

JBF0,RETURN;为1返回

SETBTR0;为0则播放

RETURN:

RETI;中断返回

DELAY:

MOV27H,26H;音乐演奏控制

D2:

MOV28H,#125

D3:

MOV29H,#248

DJNZ29H,$

DJNZ28H,D3

DJNZ27H,D2

DJNZR2,DELAY

RET

4.3LCD显示模块软件设计

4.3.1LCD的初始化函数

voidLCD_Init(void)

{

LCD_Write_Com(0x38);/*显示模式设置*/

DelayMs(5);

LCD_Write_Com(0x38);

DelayMs(5);

LCD_Write_Com(0x38);

DelayMs(5);

LCD_Write_Com(0x38);

LCD_Write_Com(0x08);/*显示关闭*/

LCD_Write_Com(0x01);/*显示清屏*/

LCD_Write_Com(0x06);/*显示光标移动设置*/

DelayMs(5);

LCD_Write_Com(0x0C);/*显示开及光标设置*/

4.3.2LCD与继电器的函数

LCD_Write_String(5,0,"YinYueHe");

while

(1)

{

if(key0==0)

{DelayMs(20);//延时

if(key0==0)//条件选择

{while(!

key0);

JiDianQi=0;//LCD的显示和继电器控制扬声器的同步

}

}

if(key1==0)

{DelayMs(20);

if(key1==0)

{while(!

key1);

JiDianQi=1;

}

 

5系统实现

本设计实现的是音乐盒的播放以及用LCD显示屏显示播放曲目,系统的硬件实现如下图所示:

图5-1歌曲切换

图5-2歌曲切换

5.1硬件调试

5.1.1按键控制的实现

本设计中通过按键实现控制上一曲、下一曲、音乐暂停和音乐开始,如下图:

图5-3显示电路的实现

5.1.2LCD显示

本设计中利用LCD显示实现歌曲曲目的显示,如下图:

图5-4LCD显示

5.1.3其他

软件部分主要是利用KEIL软件编写的音乐盒单片机程序的运行成功。

如图

图5-5软件实现

 

 

总结

单片机音乐盒的设计在经历了近两个月后终于基本完成了,在当时选择这个题目时觉得一点思路都没有,之后在和老师讨论以及向其他同学请教之后确定了以STC89C52单片机为基础的数字音乐盒。

音乐盒的主要组成部分有LCD显示、单片机最小系统、继电器电路、扬声器组成;经过不断的修改与完善音乐盒可以实现使用LCD显示播放的歌曲名、用按键控制音乐的播放/暂停和切换上一曲/下一曲,通过这次的毕业设计我了解了如何使用keil软件来编写所需要的程序,怎么去合理的设计一个电路,更收获了单独做一个设计所需要的经验;这些都是在本次设计中我所学到的,让我受益匪浅。

然而,伴随着收获的往往还有遗憾,在这次的设计中我所做的音乐盒还有一些瑕疵和还未实现的功能;音乐盒是将放在U盘内的歌曲通过音频解码后使用由继电器控制的扬声器播放的,但是,如果U盘内的歌曲更换时,LCD的显示必须要再次通过Keil软件来添加新的歌曲曲名,否则就无法显示着一点是十分麻烦的。

而且在原来的计划中,音乐盒播放时是想使用跑马灯来渲染的,但是由于程序编写存在问题使得跑马灯设计失败。

 

 

参考文献

[1]罗亚非.凌阳16位单片机应用基础[M],北京:

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

[2]雷思孝.凌阳单片机原理及实用技术[M],西安电子科技大学,2004.

[3]黄智伟.凌阳单片机课程设计指导[M],北京:

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

[4]李广弟,朱月秀,王秀山.单片机基础[M],北京:

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

[5]赵曙光,郭万有,杨颂华.可编程逻辑器件原理开发与应用[M],西安:

西安电子科技大学,2000.

[6]李建忠.单片机原理及应用[M],西安电子科技大学出版社,2008.2.

[7]康华光.模拟电子技术基础(第四版)[M],武汉:

华中理工大学出版社,1999.

[8]谭浩强.C语言程序设计(第二版)[M],北京:

清华大学出版社,1991.

[9]陈小忠,黄宁.单片机接口技术实用子程序[M],北京:

北京人民邮电出版社,2005.

[10]黄智伟.全国大学生电子设计竞赛系统设计[M],北京:

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

[11]贾立新,王涌.电子系统设计与实践[M],北京:

清华大学出版社,2007.

 

 

附录A元器件清单

表1元器件清单

STC89C52

1个

LCD显示屏

1个

扬声器

1个

继电器

1个

按键

5个

电源线

1根

 

附录B源程序

#include//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

#include

#defineRS_CLRRS=0

#defineRS_SETRS=1

#defineRW_CLRRW=0

#defineRW_SETRW=1

#defineEN_CLREN=0

#defineEN_SETEN=1

#define_Nop()_nop_()//定义空指令

#defineDataPortP0

sbitRS=P2^4;//定义端口

sbitRW=P2^5;

sbitEN=P2^6;

sbitSDA=P2^1;//模拟I2C数据传送位

sbitSCL=P2^0;//模拟I2C时钟控制位

sbitkey0=P1^0;

sbitkey1=P1^1;

sbitkey2=P1^2;

sbitkey3=P1^3;

sbitJiDianQi=P1^4;

bitack;//应答标志位

voidDelayUs2x(unsignedchart);//函数声明

voidDelayMs(unsignedchart);

/*------------------------------------------------

uS延时函数,含有输入参数unsignedchart,无返回值

unsignedchar是定义无符号字符变量,其值的范围是

0~255这里使用晶振12M,精确延时请使用汇编,大致延时

长度如下T=tx2+5uS

------------------------------------------------*/

voidDelayUs2x(unsignedchart)

{

while(--t);

}

/*------------------------------------------------

mS延时函数,含有输入参数unsignedchart,无返回值

unsignedchar是定义无符号字符变量,其值的范围是

0~255这里使用晶振12M,精确延时请使用汇编

------------------------------------------------*/

voidDelayMs(unsignedchart)

{

while(t--)

{

//大致延时1mS

DelayUs2x(245);

DelayUs2x(245);

}

}

/*------------------------------------------------

启动总线

------------------------------------------------*/

voidStart_I2c()

{

SDA=1;//发送起始条件的数据信号

_Nop();

SCL=1;

_Nop();//起始条件建立时间大于4.7us,延时

_Nop();

_Nop();

_Nop();

_Nop();

SDA=0;//发送起始信号

_Nop();//起始条件锁定时间大于4μ

_Nop();

_Nop();

_Nop();

_Nop();

SCL=0;//钳住I2C总线,准备发送或接收数据

_Nop();

_Nop();

}

/*------------------------------------------------

结束总线

------------------------------------------------*/

voidStop_I2c()

{

SDA=0;//发送结束条件的数据信号

_Nop();//发送结束条件的时钟信号

SCL=1;//结束条件建立时

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

当前位置:首页 > 医药卫生 > 预防医学

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

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