APP下载

智能音乐自动弹奏、录制、播放音乐盒的设计

2017-09-03张耀楠董昌孝

电子设计工程 2017年15期
关键词:数组播放器低电平

何 颖,张耀楠,董昌孝

(西安思源学院 陕西 西安710038)

智能音乐自动弹奏、录制、播放音乐盒的设计

何 颖,张耀楠,董昌孝

(西安思源学院 陕西 西安710038)

很多音乐芯片模块价格比较昂贵并且其功能被写死,用法不灵活。对于只需要产生小段音乐时,可通过单片机发送PWM波,控制蜂鸣器发声。该系统采用单片机完成软硬件设计与制作。系统硬件主要由AltiumDesigner09绘制,软件主要完成擦除模块、弹奏模块、播放内置音乐模块以及播放存储音乐模块4个模块的功能。实际应用表明,设计方案性价比高、低功耗、移植性强。

单片机;弹奏录制;播放音乐;擦除;蜂鸣器

单片机因其价格低廉,功能强大,体积小,深受电子设计爱好者的青睐[1]。 STC系列是现代电子设计最常用一款,其中51系列更是被称为经典,因为51系列有功能丰富的指令集[2-3],在智能玩具,电子贺卡等场景中广泛使用,这些产品可在蜂鸣声驱动器单芯片中使用,也就是连接到配置的音乐,可在编程界面来控制不同的声音产生音乐。

目前市场上有很多音乐芯片模块,能够直接产生多样性的音乐,但这种这个模块,价格比较昂贵并且其功能被写死,用法不灵活。对于只需要产生小段音乐的场合,可通过单片机发送PWM波,控制蜂鸣器发声[4]。

1 单片机音乐播放

1.1 音调和节拍

音调表示的是一个高频率的音符,反映了频率的大小。如果f1和f2两个音符相差一倍的频率,则称f2比f1高一个倍频程。节拍则表示的是一个音符唱的时间单片机可以通过延迟的方法来控制一个音符唱多长的时间,从而实现对节拍的控制[5-6]。

1.2 单片机实现音乐播放

只用单片机来实现音乐播放,需将要播放的音乐转化为数组放到软件程序中,然后逐个播放音符即可。

1)单片机初始化,设置单片机计数器的工作方式及中断方式和中断优先级;

2)将乐谱中的音符转换为相应的音调和节拍参数,定义这些参数为两个数组;

3)通过程序依次取出数组中的一个相关参数,赋值给单片机定时器作为定时初值,每当定时时间到,切换高电平和低电平,驱动蜂鸣器逐个播放音符;

4)直到取出最后一个参数,根据需要循环不停的播放整个乐曲。

2 硬件总体设计方案

此次设计用STC89C52芯片为主控芯片,通过软件来控制各按键功能,外部加3极管驱动放音设备[7-8]。本次设计硬件上共有5个模块,分别是单片机控制模块、按键播放模块、按键弹奏模块、扬声器发声模块、电源模块。电路硬件原理图如图1所示[9-11]。

图1 电路硬件原理图

单片机按键模块是通过相应的按键操作实现单片机的不同功能模块。弹奏模块是有8个音符相对应的8个按键,通过按键操作实现弹奏的功能。播放内置音乐是播放通过软件编写烧录进去的音乐,当按键ke21按下时,P1.1为低电平,执行相应的程序,达到播放音乐的效果;播放录制音乐是播放用户通过弹奏储存到数组的音乐,当按键key3按下时,P1.2为低电平,执行相应的程序,达到播放用户弹奏过的音乐效果。擦除模块是当按键key1按下时,P1.0为低电平,执行相应的擦除功能。发声模块是通过两个三极管串联组成一只的新的三极管,这支等效三极管的放大倍数是原先两个三极管放大倍数之积。扬声器是可以将电能转换为声音信号的电子元件,选用8 Ω 0.5 W的外磁式喇叭,外部磁喇叭功率大,散热性好等。选用四脚小按键开关,通过按键实现设计的各个模块的功能。

3 软件程序设计

本次设计在实现功能上一共有4个模块,分别是擦除模块、弹奏模块、播放内置音乐模块及播放存储音乐模块。在主程序设计中,先初始化单片机,设定单片机为用户需要的模式,然后调用子函数使程序顺序执行[12-13]。主程序流程图如图2所示。

图2 主程序流程图

3.1 用户弹奏模块

用户弹奏模块,用P3口控制,P3.0到P3.7分别对应 Do,Ri,Mi,Fa,So,La,Xi,Do,利用 IF 语句对变量a.b赋值,并保存音符到相应数组save[num_note]。

当P3口中某一位为低电平,说明这位相对应的按键被按下,在定时器中断中将a,b赋值给TH0,TL0,speaker取反来控制扬声器发出相应的声音,同时如果按键一直被按下,则调用存储函数cunchu()记录按键按下的时长,也就是节拍,按键松开后保存节拍到相应数组save_beat[num_beat]。变量清零,关闭中断,关闭喇叭,等待下次按键,num_beat,num_note自加,save[]和save_beat[]数组的最大值为219,表示可存储219个节拍和音符。当P3口无键按下时,a,b清零,保存空音符到数组save{num_note},关闭中断,关闭扬声器,节拍清零,防止程序错乱。

3.2 播放内置音乐模块

P1.1端口为低电平,延时消抖之后,确定有键按下时,调用play1()函数,m为存储音符数组shengri_tone[]和存储节拍数组shengri_beat[]函数的指针,依次取数组的值赋值给s和c,通过计算得出a和b,在定时器中断函数中a和b分别赋值给TH0和TL0,以此驱动喇叭发声,播放内置音乐,当m大于33时(33为数组的大小),存储音乐的数组已经全部取完,音乐播放完毕[14-15]。流程图如图3所示。

图3 播放内置音乐模块

3.3 播放存储音乐模块

P1.2端口为低电平时,调用play2()函数,m为存储音符数组save[]和存储节拍数组save_beat[]函数指针,依次取数组的值赋值给s和c,通过计算得出a和b,在定时器中断函数中a和b分别赋值给TH0和TL0,驱动喇叭发声播放音乐,当m大于num_note时,存储音乐的数组已全部取完,音乐播放完毕。流程图如图4所示。

图4 播放存储音乐流程图

3.4 擦除模块

擦除模块是擦除存储的音符。擦除按键设定为P1.0管脚,当P1.0为低电平时,将存储音符数组save[]、存储节拍数组save_beat[]以及计数变量num_note、num_beat清零。

4 系统实物正面图

系统实物正面图如图5所示。

图5 实物正面图

5 结论

本设计是以单片机控制音乐播放,实现了智能光电语音,音乐自动弹奏、录制、播放音乐盒的设计与制作。本次设计采用STC89C52为主控芯片,分别通过控制按键弹奏、按键擦除、按键播放音乐及录制音乐四个模块,通过编程界面来控制不同的声音,从而产生音乐。该设计具有较强的移植性和适应性,就实用与产品系统化而言,具有很大的开发潜力。

[1]杨万钧.多系统平台协作电子音乐系统研究与实现[J].中国教育技术装备,2014,22:1-6,12.

[2]刘垣,李外云,赵嘉怡.基于STC单片机WAVE音乐播放器的设计与实现 [J].科技创新与应用,2015(34):50-51.

[3]马志强,王建刚,孙少林,等.基于STM32的PWM音乐播放器应用设计[J].单片机与嵌入式系统应用,2012,11:63-65.

[4]王瑾,袁战军.基于单片机的电阻炉温度报警电路设计[J].科技创新与应用,2014,34:79-80.

[5]李峡.如何让单片机演奏音乐[J].河南科技,2011(6):88-89.

[6]刘瑞涛.电子音乐播放器的设计与实现 [J].价值工程,2014(13):189-190.

[7]陆志烽.单片机应用实训课程项目化设计研究[J].科技视界,2015(23):212-213.

[8]何谐,唐大权,张淑廷,等.一种基于51单片机的音乐播放器的设计[J].现代电子技术,2014(16):11-13,17.

[9]赵建领,崔昭霞.精通51单片机开发研究与应用实例[M].北京:电子工业出版社,2012.

[10]马洪涛.基于语音识别技术的音乐播放器设计[J].电子制作,2014,10:70,69.

[11]黄玉豪.STC89C58RD+单片机在MP3播放器设计中的应用[J].电子产品世界,2013(6):68-71.

[12]赵佰生,倪巍东,金泽浩.基于单片机的音乐信号处理系统研究[J].科学中国人,2014(14):49.

[13]缪贤浩,刘凯.基于双核单片机的音乐播放系统的研究[J].无线互联科技,2014(9):78,80.

[14]张志伟.基于STM32单片机的多功能媒体播放器设计[J].陕西理工学院学报:自然科学版,2015(4):12-16.

[15]陈敏.无线音乐播放器控制系统设计[J].科技风,2013(19):71,73.

Design of automatic playing,recording and playing music box of intelligent music

HE Ying,ZHANG Yao-nan, DONG Chang-xiao
(Xi'an Siyuan University, Xi'an 710038,China)

Many music chip modules are expensive and their functions are written and the usage is not flexible.For the only need to produce a small piece of music,Wecan be sent through the microcontroller PWM wave and control buzzer sound.The system uses the MCU to complete the software and hardware design and production.The system hardware is mainly drawn by AltiumDesigner09,and the software mainly completes the erase module, playing module, playing the built-in music module and playing the function of the 4 modules.The practical application shows that the design scheme has high cost performance,low power consumption and strong portability.

microcontroller; playing recorded; playingmusic; erase; buzzer

TN912.2

:A

:1674-6236(2017)15-0042-03

2016-06-02稿件编号:201606018

2015年西安思源学院高等教育教学改革重点项目(15SYKP009);西安思源学院校级重大科研项目(XASY-B1601)

何 颖(1983—),女,陕西渭南人,硕士,讲师。研究方向:信号与信息处理。

猜你喜欢

数组播放器低电平
JAVA稀疏矩阵算法
铁道车辆高/低电平信号智能发生器设计
JAVA玩转数学之二维数组排序
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
基于STM32的MP3播放器设计
Moon ACE播放器/放大器一体机
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
Excel数组公式在林业多条件求和中的应用
15-MeV电子直线加速器的低电平系统
播放器背板注塑模具设计