单片机课程设计报告 - 图文

2019-08-31 12:47

1.绪论

1.1课题概述

基于单片机的音乐播放器可应用于mp3,MP4,扩音器等很多方面,并可作为很多系统的辅助功能,作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括\、\、\等音阶在内的各种频率声音。将各个音阶连接在一起,便可组成一支曲子或是演奏一段旋律。基于这个思想,我设计了一款特殊的\音乐播放器\,本播放器可实现播放、暂停、复位等功能。为了体现乐曲播放过程中的动态效果,增加了1只LED,作随机闪烁以指示旋律的节奏。由于时间及条件限制,本设计实现了一种简单的音乐播放器,其核心器件采用AT89C51单片机,本播放器具有电路简单,功能强大,易于拓展等特点。在此基础上,可以添加按键,LED显示屏等模块,实现切换歌曲,歌名显示,动感音乐屏等功能。

2.系统硬件原理及设计

2.1硬件电路设计 2.1.1设计目的

设计一个音乐播放器,有三个按键及控制按钮:播放/暂停、下一曲、上一曲;通过控制按钮控制单片机,播放所要求的音乐,并通过放大电路和喇叭输出声音。同时通过LED灯显示器,用来显示所选曲目,该显示器在音乐播放中关闭,一曲演奏结束时,或选曲时才显示曲目信息,从而利于操作。 2.1.2总体电路设计

图1 总体电路图

1

2.1.3单片机电路设计

89C52单片机拥有4KB的片内ROM和128B片内RAM。ROM和RAM的片外寻址范围都是64KB,单片机拥有32个并行口和一个串行口,在89C52单片机中存在5个中断源,其中有两个外部中断源、两个内部中断源和一个串行中断源。如图2所示。

图2 89C52单片机

通过TXAL1 与TXAL2输入时钟信号,通过p1.0~p1.7输出控制现实控制信号的显示,有p3.2、p3.3与p3.5分别作为上一曲、下一曲和开始暂停的控制输入。 2.1.4显示电路设计

显示电路是一个8位共阴极LED数码管。 单片机的P1.0-P1.7分别与数码管的A、B、C、D、E、F、G、DP相连接。如图3所示。 2.1.5晶振时间电路设计

晶振电路由两个30pF的电容和一个6Mhz的晶体振荡器组成。如图4所示。节点1与单片机的XTAL2相连接,节点2与单片机的XTAL1相连接,从而为单片机提供时间信号,为音乐的播放节拍控制提供基本时间单位:当晶体振荡频率为6.MHz,定时器工作在方式1下时,若各音阶相对应的定时器计数初值为X,则可根据下式计算X:

1/(f?2)?(216?X)?12/(6?106)

2

图3 8位共阴极LED灯 图4 晶振电路

2.1.6控制电路设计

控制电路,键一与p3.2相连、键二与p3.3相连、键3与p3.5相连。当电键按下时接口接低电平,从而实现对音乐播放器的控制。键一联通实现上一曲更换,键二联通实现下一曲更换,键三联通实现开始暂停操作。如图5所示。

图5 复位电路

2.1.7输出电路设计

发声电路由数字扬声器连接p2.0接口实现音乐的输出,由控制电路发出操作指令后,单片机调用相应程序,并将音乐信号由p2.0口输出,通过驱动扬声器发出美妙的音乐。如图6所示。

图6 输出电路

3

3. 系统软件设计

3.1总体流程图

主程序实现对单片机进行初始化后,进入曲目识别子程序,进行歌曲曲目判断。确定歌曲曲目后,数码管再进行显示。然后,子程序对是否播放进行循环判断,得到播放中断的指令后再进行播放。

执行播放后,关闭数码管显示并调用查表子程序进行播放音乐。在播放音乐的过程中,查表子程序循环判断音乐是否结束。当音乐结束时,程序跳转回曲目识别子程序。如图7所示。

开始初始化查询歌曲曲目上一曲、下一曲数码管显示等待播放播放/暂停关闭显示播放音乐否判断是否结束是结束 图7 总体流程图

3.2单片机音阶代码实现

音调的高低用音阶表示,不同的音阶对应不同的频率。因此,不同频率的方波就可以

4

产生音阶,音阶与频率的关系见表1。由于频率的倒数是周期,因此可由单片机中的定时控制方波周期,当定时器计数溢出时产生中断。将与扬声器连接的P1.7取反后就可得到方波的周期,从而达到了控制频率,即音阶的目的。

音阶与频率的关系及 如下表: 音阶 1 2 3 4 5 6 7 0 频率(Hz) 定时器初音值 阶 131 147 165 175 196 220 247 0 0F85EH 0F933H 0F9F0H 0FA49H 0FAE6H 0FB74H, 0FBF4H 0100H 1 2 3 4 5 6 7 0 频率(Hz) 定时器初音值 阶 262 294 330 349 392 440 494 0 0FC2FH 0FC99H 0FCF8H 0FD22H 0FD73H 0FDBAH 0FDFAH 0100H 1 2 3 4 5 6 7 0 频率(Hz) 定时器初值 523 587 659 698 784 880 988 0 0FE17H 0FE4CH 0FE7CH 0FE91H 0FEB9H 0FEDDH 0FEFDH 0100H 低八度音 注:0表示简谱中的空拍

中音 高八度音 表1 方式1下定时器的初值

当晶体振荡频率为6.144MHz,定时器工作在方式1下时,若各音阶相对应的定时器计数初值为X,则可根据下式计算X:

1/(f?2)?(216?X)?12/(6?106)

音调的长短用节拍数表示(例如1/4拍、2/4拍、??),不同节拍数的不同音符的组合形成乐谱。程序中,音的节拍可由延时子程序实现。延时子程序设定为四分之一拍,节拍值只能是它的整数倍。

3.3单片机产生不同脉冲信号的原理

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

5


单片机课程设计报告 - 图文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数学建模获奖论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: