APP下载

基于AT89C51单片机简易音乐播放器设计与研究

2016-11-12俞宏霖李明明白炳斌

无线互联科技 2016年19期
关键词:蜂鸣器音调播放器

俞宏霖,李明明*,白炳斌,张 祥

(嘉兴职业技术学院,浙江 嘉兴 314000)

基于AT89C51单片机简易音乐播放器设计与研究

俞宏霖,李明明*,白炳斌,张 祥

(嘉兴职业技术学院,浙江 嘉兴 314000)

为了适应智慧家居应用的需求,文章设计了一款基于AT89C51单片机的音乐播放器。首先在理论上分析了音乐播放器的设计原理,即通过单片机的定时/中断系统实现音频播放;其次,利用定时器产生不同音频,借助蜂鸣器转发放大信号,以实现不同音调的播放;最后,在软件设计的基础上加入中断系统调节以实现音调的时长变化。

AT89C51型单片机;音乐播放器;时间控制电路

1 概述

随着单片机应用技术在智慧家居中得广泛应用,基于AT89C51单片机为基础的单片机产品,也逐渐受到广大用户欢迎[1-3]。音乐播放器效果广泛应用于高校生活当中,如传统的上课铃声、早起铃声、午间广播等均转变为悦耳的音乐。将单片机应用技术应用于音乐播放器的设计,以实现音乐播放效果[4],是单片机衍生音乐播放器的重点研究之一。

能让单片机产生音乐的原因在于:单片机系统中存在定时/中断系统,可以辅助单片机在一定的延时内实现不同频率的变化。其中,不同的频率因信号放大产生不同的方波,方波数据传送到外接的蜂鸣器后,产生声音。连续的方波,则产生音乐[5-6]。文献[7-8]指出了其设计音乐播放器的编程原理、定时器的设定,通过Keil,Protel99 SE软件完成PCB板的设计。

基于已有研究结果,设计一种以AT89C51型单片机为基础元件设计出自动式音乐播放器并通过仿真实验验证可用性,其设计原理为基于定时器所产生的频率不同的方波,信号放大后、驱动蜂鸣器以产生不同音调,利用程序设计控制音调时长,基于Keil软件完成程序设计,基于Proteus软件完成硬件电路设计。在软件设计的基础上加入中断系统调节以实现音调的时长变化,以此设计出一套完整的音乐。系统的逻辑结构图如图1所示,包括了单片机、复位电路、时钟电路、晶振电路、按键电路、发声电路和电源电路。

图1 系统结构总图

2 硬件电路设计

2.1 总体设计框图

为了进一步了解基于AT89C51系列单片机的音乐播放器的系统接口和硬件电路,笔者设计了硬件总体电路原理图,如图2所示。

图2 设计原理图

将AT89C51单片机作为主控制核心,配置具有3个按键的按键电路、时钟和复位电路、音频放大电路。其中,AT89C51芯片主要完成接收按键的输入,根据输入控制音乐播放曲目和扬声器发音。播放器通过歌曲控制按钮来将内部已经存储好的音频信号读取并且传输,经过晶振和时钟电路来输出长短不一的音频通过扬声器输出,然后设置一个复位按钮能够随时中断并回到初始状态,从而方便多次调试。

2.2 音频放大电路

单片机实际上无法实现如专业乐器的多音色效果音乐,原因是因为其没有多振幅的谐振频率,因而,对于单片机而言,音乐来自于单个音频率。在单片机应用系统中音频放大电路中需要注意音调和节拍的变化,就可以区分音乐[9-10]。由于音频放大这一部分是整个音乐播放器硬件电路的关键所在,通过ATC89C51的I/O口产生一定频率的脉冲,基于LM386功放电路驱动扬声器发出不同的音调继而演奏乐曲。音频发声及放大电路原理图如图3所示。

3 播放器软件设计

3.1 音调设计

音调主要由声音的频率决定,在单片机定时中断系统的信号放大过程中,通过中断服务程序完成单片机I/O口的来回置高/低电平,以实现蜂鸣器的发声。因此,每个音符所需时长需要计算,循环延时可作为控制一个音符发声的时长,多次循环从而完成一首完整的音乐。

开展小学数学学科教学工作坊工作,目的是更好地调动各类资源,特别是突破校本教研的局限性,开展更广泛、更有针对性的教研活动。在这样的教研活动中能够依托工作坊研修平台的课程资源,创新完善线上线下混合式培训模式,促使和推动参加工作坊研修的教师形成一个共同体。在此过程中,能够群策群力,注重每位教师的教育教学能力的提升,把所学应用于实践,实现学用结合,从而解决教师在教育教学中的突出问题。

改变音调的频率分为高音、中音和低音,因此,选择蜂鸣器或扬声器是设计的关键。通常情况下,低频纯音的音调在2 000 Hz以下的随响度的增加而下降,高频纯音的音调在3 000 Hz以上随响度的增加而上升。

综上所述,如果单片机内部中断响应时间为1 200μs,其定时器为工作方式1,则振荡器脉冲是十二分频信号,且其外接晶振的频率为f,则定时器的预置初始值如公式(1)所示。

其中N表示当前工作状态下的定时器计数值。

3.2 程序流程图

发声方法确定之后,程序流程结果如图4所示。初始化程序堆栈后,初始化音乐输出口和按钮,并根据当前播放歌曲的某个音符反应,设置按键,处理上下曲目,直到断电为止。

图 3 音频发生及放大电路

图4 程序流程图

3.3 音乐的产生

基于不同的音调和节拍效果,根据不同组合频率,产生的音乐往往大相径庭。因而,基于单片机的定时/计数器T0/ T1以获取不同的方波频率,需要把不同音阶对应的频率关系确认无误,以得到最终音乐。具体方法如下:

基于单片机内部的定时器,设置工作计数器模式为T1方式,TH1及TL1的计数值以产生不同音阶。以P1.0引脚为例,如果需要音频脉冲,则需算出某一音频的1/2周期时间。当每次计时中断后单片机的P1.0引脚开始反相,重复计时再反相。最终获得P1.0引脚的频率脉冲。其中计算脉冲与频率关系的方法为:

式中,N是计数值;fi表示机器频率(其频率为1 MHz);fr是需要的频率。则对于假设情况:当频为523 Hz,得到半周期为T/2=2/523=956 μs。因此如果计数器计是956 μs,则每计数956次时P1.0引脚将I/O反相,可得中音DO(523 Hz)[10]。

根据式(1—2),则计数初值的处理结果如式(3)所示。

基于式(3)结果,则DO的低音初始值为T=65536-500000/262=63628,高音初始值为T=65536-500000/1046 =65058。如表1所示。

表1 主要音符对应频率表

程序中的全局变量YinFuH,PinlvL就是音符频率表,分别为数据的高8位和低8位,具体情况如下。

unsigned char code YinFuH []={0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,//低音1,2,3,4,5,6,7

0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,//中音1,2,3,4,5,6,7

0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//高音1,2,3,4,5,6,7

0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,//超高音1,2,3,4,5,6,7};

unsigned char code PinlvL []={0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,//低音1,2,3,4,5,6,7

0x21 ,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,//中音1,2,3,4,5,6,7

0x8 F,0xEE,0x44,0x6B,0xB4,0xF4,0x2D,//高音1,2,3,4,5,6,7

0x47 ,0x77,0xA2,0xB6,0xDA,0xFA,0x16 //超高音1,2,3,4,5,6,7};

FREQH和FREQL中分别为数据的高8位和第8位,分别用来初始化TH0,TL0。

4 结语

基于AT89C51单片机的定时/中断系统设计了具有不同音调的音乐播放器。设计原理为:根据单片机内部的定时器产生不同频率,继而蜂鸣器发出不同音调的音乐,通过软件设计延迟以控制发音时长。本音乐起硬件电路结构简单,可读性高,应用性强,软件程序开放性好,适用于多种不同音乐曲目的播放器制作。

[1]王静霞.单片机应用技术(C语言版)[M].北京:电子工业出版社,2009.

[2]张志良.80c51单片机实验实训100例:基于Keil C和Proteus[M].北京:航空航天大学出版社,2015.

[3]孙珊珊,李欣.基于STC89C51单片机的智能报警系统的设计与实现[J].绥化学院学报,2014(5):154-156.

[4]郭进,彭惠东,刘浩,等.一种基于STC89C52单片机的智能闹钟的设计[J].中国科技信息,2013(11):160-161.

[5]向婷婷.基于AT89C51和弦音乐播放器设计[J].电力电子与控制技术,2014(1):99-102.

[6]黄振杰,卢小斌.基于AT89S52单片机的多功能音乐播放器[J].图像分析多媒体,2009(2):17-18.

[7]张志伟.基于单片机的音乐播放器的设计与实现[J].电子科技,2014(5X):7-8.

[8]徐阳.基于AT89C51SND1C单片机的MP3音乐播放器设计[J].计算机科学与电子信息工程,2015(25):34-37.

[9]莫光良.基于ST89C51单片机的建议电子琴和音乐播放器的设计和实现[J].电子科技,2014(12):14-15.

[10]何谐,唐大全,张淑廷,等.一种基于51单片机的音乐播放器设计[J].计算机应用技术—嵌入式技术,2014(23):302-303.

Design and research of simple music player based on AT89C51 single chip machine

Yu Honglin,Li Mingming*,Bai Bingbin,Zhang Xiang

(Jiaxing Vocational Technical College,Jiaxing 314000,China)

In order to meet the needs of intelligent home applications,this paper designed an AT89C51 micro controller-based music player.This paper first makes a theoretical analysis of design principle,which is to achieve audio playback through the micro controller timer/interrupt system;then,using the timer to produce different audio and amplify signal by means of a buzzer to play different tones;finally,the interrupt system is added to adjust the system to achieve the change of the length of pitch.

AT89C51 single chip machine;music player;time control circuit

俞宏霖(1996—),男,浙江嘉兴,大专,学生;研究方向:嵌入式开发与单片机应用技术。

*通讯作者:李明明(1988—),女,湖北黄冈,硕士,助教;研究方向:嵌入式开发与分布式计算。

猜你喜欢

蜂鸣器音调播放器
电动自行车产品车速提示音检测现状和整改技术研究(2)
掌控板制作简易钢琴
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
基于STM32的MP3播放器设计
单片机驱动蜂鸣器的程序设计
Moon ACE播放器/放大器一体机
听力障碍幼儿音调异常矫治的实施建议
刘涛《音调未定的儒家——2004年以来关于孔子的论争·序》
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响
播放器背板注塑模具设计