数字音乐盒地设计与实现

合集下载

智能数字音乐盒的设计与实现

智能数字音乐盒的设计与实现

智能数字音乐盒的设计与实现林倩;李宽;朵玉顺【摘要】随着科技的飞速发展,人们的生活节奏越来越快,多数人长期处于压力过大的状态.音乐对于调节人的心理压力来说是一种很有效的方式,因此,各式各样的音乐盒开始普及.由于容量大、操作方便、价格便宜等优点,数字音乐盒逐渐成为人们的首选.这里以电子技术为基础,设计了一款数字音乐盒.它以单片机为核心,主要由外围控制电路、外接电路、发声电路、电源电路等组成整个系统.音乐的播放可用按键或者红外遥控器实现,同时还可以播放外接设备中的音乐.该系统电路结构简单、功能强大、具有很强的实用性;软件设计简便易懂,适用范围广,具有广泛的可移植性,对于不同音乐只需改变相应的程序即可.此外,系统还扩展了部分功能,设计了外接播放设备的接口,人们可以随意切换自己喜欢的音乐.【期刊名称】《电声技术》【年(卷),期】2019(043)006【总页数】5页(P46-50)【关键词】单片机;音乐盒;智能;电路【作者】林倩;李宽;朵玉顺【作者单位】青海民族大学物理与电子信息工程学院,青海西宁810007;青海民族大学物理与电子信息工程学院,青海西宁810007;青海民族大学物理与电子信息工程学院,青海西宁810007【正文语种】中文【中图分类】TP368.11 引言音乐盒的起源可以追溯到中世纪欧洲文艺复兴时期,有着几百年的发展历史,是人类文明发展史上的一个见证。

传统音乐盒也就是机械式音乐盒,被称为“可发出声音的组钟”,由金属的撞击而产生声音,因此发音比较单调[1]。

同时,由于制作要求较高,造成制造成本过高,不能进行批量生产。

随着科技的迅速发展,基于电子技术的数字音乐盒已经以各种形式取代了传统音乐盒。

这里以单片机技术为核心设计了一款智能数字音乐盒[2]。

这种以微控制器为核心的数字音乐盒具有功能强大、体积小、价格低廉、使用方便等优点,可以在很多领域得到广泛的应用。

2 系统总体设计2.1 系统构架的设计思路这里以STC89C52单片机为控制核心构成数字音乐盒的基本系统结构,加上外围的控制电路、外接电路、发声电路、电源电路,共同组成整个系统[3]。

《数字音乐盒》设计报告

《数字音乐盒》设计报告

《数字音乐盒》设计报告
设计目标:
本数字音乐盒旨在提供一种方便、易用的音乐播放体验,让用户可以随时随地享受自己喜欢的音乐。

具体设计要求如下:
1. 支持多种音频格式,如MP3、FLAC等。

2. 采用简洁、直观的用户界面,方便用户操作。

3. 支持多种播放模式,如顺序播放、随机播放等,并且能够记忆用户播放模式。

4. 提供多种音效调节和均衡器设置,使用户可以自由调整音乐效果。

5. 支持歌词显示功能,使用户可以更好地理解音乐。

6. 支持歌曲收藏功能,使用户可以方便地收藏自己的喜爱歌曲。

设计思路与方案:
本数字音乐盒采用嵌入式系统设计,主要硬件部件包括音频芯片、显示屏幕和按键模块,其中音频芯片为核心部件,支持多种音频格式的解码和播放。

用户界面设计上,采用五向导航及确认键来进行操作,主界面分为“音乐播放”和“歌曲收藏”两大模块。

在“音乐播放”模块中,
用户可以选择不同的播放模式,包括顺序播放、随机播放和循环播放。

在播放过程中,用户可以通过前进、后退、暂停等操作来控制音乐播放进程。

同时,也提供了多种音效调节和均衡器设置,用户可以自行选择调整音乐效果。

在播放过程中,歌词会自动显示在屏幕上,方便用户理解歌曲。

在“歌曲收藏”模块中,用户可以收藏自己喜爱的歌曲,方便日后收听。

总结:
本数字音乐盒设计主要针对音乐爱好者,通过简洁、易用的界面设计和多种音效、播放模式等功能的设计,为用户提供了更为便捷、自由的音乐播放体验。

同时,歌曲收藏功能也使用户可以随时查找和收听自己喜爱的歌曲,满足用户对音乐的品质需求。

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计

基于单片机的数字式音乐盒设计数字式音乐盒是一种音乐播放器,它通过数字技术存储和播放音乐。

基于单片机的数字式音乐盒可以使用单片机控制音乐的播放,实现音符和旋律的发声和控制。

本文将介绍如何设计一款基于单片机的数字式音乐盒。

一、音乐盒基本原理音乐盒是通过一个带有齿轮的转子,以弹簧的力量驱动,使得钢片受到磁力响应并发声,从而发出旋律。

数字式音乐盒是通过数字技术将音乐编码为数字信号,并存储在芯片中,通过解码器将数字信号还原为音符和旋律发声。

二、单片机控制电路设计1.芯片选择要设计一个数字式音乐盒,需要先选择一款合适的单片机,常用的有AT89C51、STC89C52等。

这里选择一款性能好且价格适中的STC89C52单片机。

2.存储器选型数字式音乐盒的数字信号需要存储在内存中,为了方便起见,使用一个4Mbit的Flash记忆芯片作为存储器。

3.音频输出电路数字信号需要通过解码器进行还原后才能通过音频输出电路输出。

可以使用一对耳机或者喇叭,同时需要用到音量电位器控制音量。

三、软件程序设计1.数字信号编解码算法的设计,可以使用目前较为流行的MIDI编码格式。

2.音乐信号输入模块设计,可以使用USB接口或SD卡接口。

3.数据接收模块设计,可以使用串行通信或者并行通信。

4.数字信号存储模块设计,使用Flash记忆芯片。

5.控制模块设计,实现单片机控制音乐盒的所有操作。

四、实现效果基于单片机的数字式音乐盒实现较为简单,但是需要注意以下几点:1.考虑使用定时器计算控制音乐的播放时间,保证旋律按照要求执行。

2.使用ADC(模拟-数字转换器)读取音量电位器值,对音量进行控制。

3.在使用USB接口时,需要有电路板,使得USB通信接口稳定,可靠。

基于单片机的数字式音乐盒是一种方便实用的音乐盒,通过数字技术的运用,实现了音乐的存储和播放,可广泛应用于各个领域中。

数字音乐盒设计方案

数字音乐盒设计方案

数字音乐盒设计方案1.1 智能音乐盒背景及意义音乐盒的起源,可追溯至中世纪欧洲文艺复兴时期。

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

1598年,意大利籍耶稣会士利玛窦第一次来到,随行礼物中就有八音琴一台。

这是有史书记载的最早进入中国的八音琴。

经过各种的发明创造,1780年前后,拉匀芳的瑞士人从人偶自动钟的原理获得启示,发明了一种令人赞叹的机制——机械鸟鸣钟。

1796年,日瓦钟匠的发明,给机械音乐盒带来了革命性的改变,使音乐盒的体积缩小达到极限,而在接下来的世纪得以成功的发展。

1870年,德国的发明家首创了盘式音乐盒。

17世纪初,音乐盒的工业成为瑞士超过制表和缝制蕾丝业的第一大产业,这使得位于瑞士侏罗山边的小镇闻名于世。

1.2 国外单片机应用音乐盒概况1992年,中国第一台具有自主知识产权的八音琴在中国韵升的诞生,标志着中国,全方位地参与全球音乐盒这块巨大蛋糕的市场竞争,经过十多年的努力,韵升对八音琴的制造技术进行了更多的技术更新,取得了多个国家和地区50余项发明专利。

这使得音乐盒无论在音质,音量,谱曲,和外观设计等方面都有了更大的改进。

目前,韵升八音琴已占据全球八音琴市场份额的1/4,仅次于日本Sankyo,位居全球第二位。

音乐盒300多年的产品发展,同时也是人类文明300多年发展的历史鉴证。

每个不同时期的音乐盒造型,都能折射出当时不同的社会心态和文明发展现状,它也成了时代的一面镜子。

现今,音乐盒的制造,延袭传统,结合现代,正日益成为人们或为了典藏一段岁月,或为了收藏一份情感,或出于对音乐的追求,或对于旧时代的怀念,或为了居室的美化,等等,而得到众多品位人士的追求。

韵升八音琴店在新天地里设立了自己在的第一家店面,这也是惟一一家国品牌的八音琴专卖店。

在66平方米的店面中设了将近120多种八音琴,只要走进去就能感受到八音琴那清澈、透亮的音质所带来的美妙享受。

在这里,八音琴的价格并不是很贵,很适合作为礼品送给自己的朋友,其中,30音的八音琴价格在500元左右,50音的八音琴价格几乎上千。

数字音乐盒的设计与实现

数字音乐盒的设计与实现
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#
附录(关键部分程序清单)
#in elude <reg51.h>
#defi ne ucharu nsig nedchar
#defi neuint un sig nedi nt
#define LEDLen 6
xdataunsignedcharOUTBIT _at_0x8002;//位控制口
xdataunsignedcharOUTSEG _at_0x8004;//段控制口
社,20154பைடு நூலகம்
[2]张仁彦,高正中,黄鹤松.单片机原理及应用.北京:机械工业出版社,
2016.3.
[3]付先成,,高恒强,蔡红娟.单片机原理与C语言程序设计.武汉:华中科技大
学出版社,2015.8.
[4]张校珩.单片机C语言编程100例■北京:中国电力出版社,2014.1.
⑸唐颖■单片机综合设计实例与实验■北京:电子工业出版社,2015.1.

数字音乐盒 课程设计报告

数字音乐盒 课程设计报告
锡焊丝
1.0mm
2m×16
松香
1盒×16
蜂鸣器
无源
1
附件B:总电路图
附件C:音乐程序
#include <reg52.h>
#include "Music.h"
#include "SoundPlay.h"
#include "lcd.h"
#define SYSTEM_OSC12000000//定义晶振频率12000000HZ
//**************************************************************************
unsigned char code *Sound;
unsigned char code *Music[3]={Music_Girl,Music_Same,Music_Two};
if (SM==3) CurrentFre <<= 2;//高音
Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);//计算计数器初值
Sound_Temp_TH0 = Temp_T/256;
Sound_Temp_TL0 = Temp_T%256;
TH0 = Sound_Temp_TH0;
TL0 = Sound_Temp_TL0 + 12; //加12是对中断延时的补偿
}
if(KeyScan())goto Again;/*moren=LengthTab[Length%10];//算出是几分音符
XG=Length/10%10;//算出音符类型(0普通1连音2顿音)

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现

基于单片机的音乐盒设计与实现【摘要】本文介绍了基于单片机的音乐盒设计与实现。

在分别阐述了研究背景、研究意义以及研究目的。

在详细介绍了硬件设计、软件设计、系统测试、性能优化以及成果展示。

在总结了设计过程中的经验,展示了实现效果,并展望了未来的发展方向。

通过本文的介绍,读者可以了解如何利用单片机技术设计和实现一款音乐盒,并对其性能进行优化和展示。

这对于音乐爱好者和电子爱好者来说具有一定的参考意义,也为未来相关研究提供了一定的借鉴价值。

【关键词】单片机、音乐盒、设计、实现、硬件、软件、系统测试、性能优化、成果展示、设计总结、实现效果、展望未来、研究背景、研究意义、研究目的1. 引言1.1 研究背景音乐盒是一种可以播放音乐的机械装置,古老而优雅。

传统的音乐盒使用机械装置来播放音乐,但随着现代科技的发展,基于单片机的音乐盒逐渐成为了一种新的设计趋势。

单片机能够提供更多的功能和灵活性,使音乐盒的设计更加多样化和精致化。

本研究旨在通过基于单片机的音乐盒设计与实现,探索如何利用现代科技提升传统音乐盒的功能和性能,为人们带来更好的音乐享受体验。

通过对硬件设计、软件设计、系统测试、性能优化等方面的研究和实践,将为音乐盒的发展提供新的思路和方法。

1.2 研究意义基于单片机的音乐盒设计与实现,可以大大简化音乐盒的结构,提高音色的表现力,丰富音乐盒的功能。

通过程序控制,可以实现多种音色的切换、音乐曲目的调节和存储、音乐盒的智能化操作等功能,使其更加符合现代人的需求。

基于单片机的音乐盒设计与实现还可以促进传统音乐盒产业的转型升级,推动文化产业的发展。

通过将传统文化与现代科技相结合,可以为音乐盒行业注入新的活力,拓展音乐盒的市场空间,吸引更多年轻人关注和参与。

基于单片机的音乐盒设计与实现具有重要的研究意义,不仅可以提升音乐盒的艺术表现力和实用性,还可以推动音乐盒产业的发展,为传统文化的传承与创新做出贡献。

1.3 研究目的具体来说,本研究的目的主要包括以下几个方面:1. 设计一种能够支持多种音乐格式的音乐盒系统,以满足不同用户对音乐的需求。

《数字音乐盒》设计报告

《数字音乐盒》设计报告
精英团队,稳步发展:我们拥有丰富的人力资源,主要类型有学术研究,软件开发,管理信息技术,图形技术,市场营销等。公司目前拥有骨干四名,同时扮演着员工角色,其中都是本科生。公司在产品开发和设计时查阅了不少专家的相关著作和论文,令我公司在科研,开发和市场营销以及售后服务等方面齐头并进。
持续创新,系列服务:经过很艰辛的努力,我们已经取得了一定的成果,并将在接下来的一段时间推出由本公司自主研发的音乐盒。同时,我们还会为用户提供相关的技术服务,方案制作和系统开发的服务。
图1-2音乐盒硬件电路原理图
3:音符频率和节拍的产生方法
3.1音符频率我们知道,之所以 Nhomakorabea不同的音调正是因为不同的音符对应不同的频率。表1-3给出了我们从低音1到高音7所对应的频率。即在编程时我们要根据音调的变化调整频率的变化。
3.2利用定时器/计数器0产生音符频率
利用单片机的内部定时器/计数器0,使其工作在模式1,定时中断,然后控制P3.7引脚的输出每次取反,就可以在P3.7的引脚输出相应的方波频率。改变计数初值就可以改变频率。即要产生音频输出方波,首先要算出某一个音频的周期(1/f),然后将此周期除以2,得到半个周期的时间。定时器的定时时间等于半个周期,定时时间到就将输出脉冲取反,重复上述过程,就可以在P3.7脚上得某一音频的脉冲。
例如:中音1(DO)的频率=523Hz,周期T=1/523s=1912毫秒;
定时器/计数器0的定时时间为:T/2=956毫秒;
定时956毫秒的计数值=定时时间/机器周期=956毫秒/1毫秒=956(时钟频率=12MHz)
装入TH0、TL0的计数初值THTL=65536-956=64580.
将64580装入TH0、TL0寄存器中,启动T1工作后,每计数956次时将产生溢出中断,进入中断服务程序是,每次对P3.0引脚的输出值进行取反,就可得到中音DO(523Hz)的音符频率。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程设计名称:微机系统综合课程设计课程设计题目:数字音乐盒的设计与实现1 总体设计方案1.1 题目介绍与要求本次课程设计的任务是运用伟福Lab8000试验箱和keil软件设计并实现一个数字音乐盒,要求采用I/O产生一定频率的方波,从而驱动蜂鸣器发出不同的音调,演奏乐曲;并且需要采用七段数码管显示当前播放的歌曲序号和播放时间;还得通过数字键盘直接选择乐曲,控制选择上一曲和下一曲音乐,具有暂停和播放控制功能。

1.2设计思路1.2.1音调的产生频率的高低决定了音调的高低。

音乐的十二平均率规定:每两个八度音(如简谱中的中音1和高音1)之间的频率相差一倍。

在两个八度音之间又分为十二个半音。

另外,音名A(简谱中的低音6)的频率为440Hz,音名B到C之间、E 到F之间为半音,其余为全音。

由此可以计算出简谱中从低音1到高音1之间每个音名对应的频率,所有不同频率的信号都是从同一个基准频率分频得到的。

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

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

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

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

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

计数脉冲值与频率的关系公式如下:N=Fi/2/FrN:计算值;Fi:部计时一次为1us,故其频率为1MHz;其计数值的求法如下:初值T=65536−NC调各音符频率与计数值T的对照表如表1.1所示。

表1.1 C调各音符频率与计数值T的对照表低音频率N 参数中音频率N 参数高音频率N 参数Do 262 1908 229 Do 523 956 115 Do 1046 57 57 Do# 277 1805 217 Do﹟554 903 108 Do﹟1109 54 54 Re3 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 301.2.2节拍的产生构成音乐需要节拍,让音乐具有旋律,而且可以调节各个音的快慢度。

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

至于1有多长时间,可以按照设计者来决定,只要好听就行。

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

休止符表示暂停发音。

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

节拍与节拍码对照表如表1.2所示。

表1.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拍的延迟时间为1,则1拍的延迟时间应为4,以此类推。

所以只要求得1/4拍的延迟时间,其余的节拍就是它的倍数。

表1.3所示。

表1.31/4和1/8节拍的时间设定曲调值DELAY 曲调值DELAY调4/4 125毫秒调4/4 62毫秒调3/4 187毫秒调3/4 94毫秒调2/4 250毫秒调2/4 125毫秒2硬件电路设计2.1系统原理数字音乐盒的核心主要分为三个方面,分别是七段数码管、键盘和蜂鸣器。

用定时器中断的方式来控制蜂鸣器和扫描4*4键盘,在程序中用显示函数让数码管显示,需要显示出歌曲序号和播放时间,并且能用键盘控制播放的音乐。

原理框图如图2.1所示。

图2.1系统原理框图2.2单片机8051单片机是在课堂上学习的单片机型号,也是这次课程设计的核心器件,它是8位的单片机,具有品种全、兼容性强、性能价格比高等特点。

8051单片机具有很多的I/O口,其中P2.4、P2.5、P2.6连接74LS138译码器,而译码器则可以控制片选信号和位选信号;P0的八个I/O口要与译码器74HC374相连,然后在与键盘连接,从而能确认数码管的段选信号,此次课程设计的位选码为0x8002。

段选码是0x8004;P1.1口则控制的是蜂鸣器。

单片机电路图如图2.2所示。

图2.2 单片机电路图2.3主要电路器件2.3.1 蜂鸣器蜂鸣器是整个电路中重要的输出部分之一,没有了蜂鸣器就不会响起悦耳的音乐,本次课程设计,运用了单片机I/O口中的P1.1口,当程序中的play变量等于1时,蜂鸣器响,反之,若play等于0,则停止响声。

端口输出的方波经放大滤波后,驱动蜂鸣器发声,蜂鸣器的电路图如图2.3所示。

图2.3蜂鸣器电路图2.3.2 键盘Lab8000实验箱的键盘是4*6的键盘,但是这次课程设计只用到了前四列,所以也就只扫描了四列按键,键盘的主要功能就是用户的输入,也是实现程序现象的重要部分,当用户想播放哪首歌曲就在键盘中输入哪个按键。

实验箱的键盘还连接了一个ULN2003芯片,这个芯片的特点是电流增益高、工作电压高、温度围宽、带负载能力强等特点,适应于要求高速大功率驱动的系统。

键盘的电路图如图2.4所示。

图2.4键盘电路图2.3.3 数码管此次课程设计运用了六的数码管,第一个显示了歌曲的序号,第二个是空位,第三和第四个显示了分钟的计时,第五和第六个显示了秒钟的计时。

数码管的主要作用就是显示出当前程序运行时的现象,数码管的位选位与ULN2003相连后再接到键盘上,段选位则是连到74HC374译码器上,实验箱的数码管为共阴极,显示方式为动态显示。

由电路图得知,位选信号为1时有效。

数码管示意图如图2.5所示。

图2.5数码管示意图沈阳航空航天大学课程设计报告3程序设计3.1 系统功能该软件具有多种功能,系统功能图如图3.1所示。

图3.1系统功能图3.2主要函数介绍3.2.1总体流程程序的第一步是变量的初始化,定义了flag、time、sec等变量,并且设置了各个音调对应的十六进制码,然后开中断,对定时器进行模式的选择和初值的计算,接着调用LED显示函数使数码管按照程序设计的方式运行,其中扫描键盘是用定时器中断的方法,设置每隔3ms中断一次,即扫描一次键盘。

流程图如图3.2所示。

图3.2总体流程图3.2.2数码管显示函数数码管的显示在这里用的是动态显示方法,并且通过电路图得知,为了让74HC138芯片和74HC573芯片有效,计算出段控制口和位控制口分别为0x8004和0x8002。

流程图如图3.3所示。

图3.3数码管显示函数流程图3.2.3键盘扫描扫描键盘主要用的是unsigned char GetKey()函数,而且还是用定时器中断的方法,设置每隔3毫秒中断一次,在一秒约会产生中断333次,就是说在一秒钟扫描键盘333次。

在扫描键盘的过程中,先是扫描哪一个的按键别按下,把第几列记录下来后,再扫描是哪一行的按键,记录是哪一行;最后根据公式“键值 = 列 x 4 + 行”,就能计算出是哪一个按键被按下。

如图3.4所示。

图3.4键盘扫描函数流程图3.2.4 计时函数为了对歌曲进行计时,所以设计了一个计时函数jishi()。

分钟和秒钟分别用两个数码管来显示,当歌曲响起时开始计时,若秒钟个位加到10时,则十位加一,并且个位清零;秒钟的十位加到5时,分钟个位加一,并且将秒钟清零,分钟的十位同理,最后通过缓冲区在数码管中显示。

计时函数如图3.5所示。

图3.5 计时函数流程图3.2.5 音乐函数音乐函数song()是使蜂鸣器响起音乐的核心,一共有六首歌曲,分别用0x01——0x06控制着六首歌曲,通过用switch语句控制判断选择的是哪首歌曲,选择歌曲的序号后,调用相对应的并且储存了用十六进制数表示歌曲的数组,若在键盘中选择了1,就会调用tiger[],则蜂鸣器就会按照tiger数组中存储的十六进制码产生的频率响起音乐,播放结束后就会继续播放序号为2的歌曲。

如图3.6所示。

图3.6 音乐函数流程图4 实验现象与问题4.1操作说明与实验现象“1”按键:歌曲1,《两只老虎》“2”按键:歌曲2,《小青蛙》“3”按键:歌曲3,《千年之恋》“4”按键:歌曲4,《七子之歌》“5”按键:歌曲5,《找朋友》“6”按键:歌曲6,《寂寞沙洲岭》“A”按键:播放上一首歌曲“B”按键:播放下一首歌曲“C”按键:暂停键数码管的第一位显示当前正在播放的歌曲序号,第三四位显示歌曲的分钟计时,第五六位显示歌曲的秒钟计时。

在键盘中选择“1”—“6”按键,就会播放相应的歌曲,六首歌曲循环播放,若当前播放的是第一首,选择“A”按键播放上一首歌曲就会播放第六首,若当前播放的是第六首,选择“B”按键播放下一首歌曲就会播放第一首,选择“C”按键时,歌曲和计时都会暂停,再按一次则继续播放音乐。

4.2 问题与解决方法问题1:六个数码管中所有的段位都会发生很严重的闪烁现象,导致看不清数码管显示的数字,但运行的结果是正确的。

解决:经过测试发现,试验箱连错了I/O口,连的是P3.7口,该口的功能是读写,改成连接P1.1口,闪烁消失。

问题2:运行时数码管计数不稳定,有微弱的闪烁现象。

解决:调整中断时间,将中断一次的时间3ms改成2ms,在1秒产生500次中断,数码管变的更稳定。

相关文档
最新文档