分享

单片机课程设计报告(利用蜂鸣器播放音乐)

 昵称27261802 2016-01-27

    -西安科技大学-

    成绩

    课程设计; 嵌入式系统应用 题目名称;利用蜂鸣器实现音乐播放功能

     名;

     号;

     级;

    完成时间;

1/12页

    -西安科技大学-

    1设计的任务

    设计内容;动手焊接一个51单片机

    设计目标;利用单片机上的蜂鸣器实现音乐播放功能

    2 设计的过程

    2.1 基本结构

    1.STC89C52RC

    在本次的试验中采用了STC89C52RC单片机(STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机(指令代码完全兼容传8051单片机(12时钟/机器周期(工作电压;5.5V3.3V5V单片机,/3.8V2.0V3V单片机,(工作频率范围;040MHz(相当于普通8051080MHz(实际工作频率可达48MHz(用户应用程序空间为8K字节。

    STC89C52RC引脚图,

    STC89C52RC单片机的工作模式;

    1 典型功耗<0.1μA,可由外部中断唤醒(中断返回后(继续执行原程序 2 空闲模式;典型功耗2mA

    3 正常工作模式;典型功耗4Ma7mA

    4 唤醒(适用于水表、气表等电池供电系统及便携设备

    2.蜂鸣器及其工作原理;

    蜂鸣器按其结构分主要分为压电式蜂鸣器和电磁式蜂鸣器两种类

    型。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。

    接通电源后(振荡器产生的音频信号电流通过电磁线圈(使电磁线圈产

    生磁场(振动膜片在电磁线圈和磁铁的相互作用下(周期性地振动发声。

2/12页

    -西安科技大学-

    本实验采用的是电磁式蜂鸣器。

    蜂鸣器按其是否带有信号源又分为有源和无源两种类型。有源蜂鸣器只需要在其供电端加上额定直流电压(其内部的震荡器就可以产生固定频率的信号(驱动蜂鸣器发出声音。无源蜂鸣器可以理解成与喇叭一样(需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。本实验采用的是有源蜂鸣器。

    蜂鸣器与单片机连接电路图,

    2.2 软件设计过程

    1. 蜂鸣器发声原理

    本实验由于采用有源蜂鸣器(只需将引脚端口P3^4清零(蜂鸣

    器即可发声,P3^4置位(蜂鸣器停止发声。采用置10的方法只

    能使蜂鸣器发声或停止发声(想要使蜂鸣器发出声音(必须对蜂鸣

    器发出声音的音频和节拍进行控制。

    !音乐基础

    音调;

    不同音高的乐音是用CDEFGAB来表示(这7个字母就是音乐的音名(它们一般依次唱成DOREMIFASOLASI,即唱

3/12页

    -西安科技大学-

    成简谱的1234567(相当于汉字“多来米发梭拉西”的读音(这是唱曲时乐音的发音(所以叫“音调”(即Tone。把CDEFGAB这一组音的距离分成12个等份(每一个等份叫一个“半音”。两个音之间的距离有两个“半音”(就叫“全音”。在钢琴等键盘乐器上(CDDEFGGAAB两音之间隔着一个黑键(他们之间的距离就是全音,EFBC两音之间没有黑键相隔(它们之间的距离就是半音。通常唱成1234567的音叫自然音(那些在它们的左上角加上~号或者b号的叫变化音。~叫升记号(表示把音在原来的基础上升高半音(b叫降记音(表示在原来的基础上降低半音。例如高DO的频率!1046Hz,刚好是中音DO的频率!523Hz,的一倍(中音DO的频率!523Hz,刚好是低音DO频率!266 Hz,的一倍,同样的(高RE的频率!1175Hz,刚好是中音RE的频率!587Hz,的一倍(中音RE的频率!587Hz,刚好是低音RE频率!294 Hz,的一倍。 节拍;

    节拍是让音乐具有旋律!固定的律动,(而且可以调节各个音的快满度。“节拍,Beat(简单说就是打拍子(就像我们听音乐不自主的随之拍手或跺脚。若1拍实0.5s(则1/4 拍为0.125s。至于1拍多少s(并没有严格规定(就像人的心跳一样(大部分人的心跳是每分钟72下(有些人快一点(有些人慢一点(只要听的悦耳就好。音持续时间的长短即时值(一般用拍数表示。休止符表示暂停发音。

    

    1 控制发声频率

    要产生音频脉冲(只要算出某一音频的周期!1/频率,(然后将此周期除以2(即为半周期的时间。利用定时器计时这半个周期时间(每当计时到后就将输出脉冲的I/O反相(然后重复计时此半周期时间再对I/O反相(就可在I/O脚上得到此频率的脉冲。利用STC89C52RC的内部定时器使其工作在计数器模式MODE1下(改变计数值TH0TL0从而产生不同频率。此外结束符和休止符可以分别用代码00HFFH来表示(若查表结果为0x00(则表示曲子终了,若查表结果为0xff(则产生相应的停顿效果。

    以标准音高A为例(A的频率是440Hz(周期T=1/440=2272us。在占空比为50%的情况下(导通时间=断开时间=半周期t=2272us/2=1136us(利用P3^4端口的位操作(经过不断地反相变换即可得到标准音高A的音频脉冲。端口导通时间与断开时的时间利用定时器实现。具体的方法是将单片机定时器的中断触发时间设为半周期t(这样每隔半周期端口反相(输出连续的对应音高的频率。

    设晶振的频率为f0(中断触发时间!半周期,为t(定时器工作在模1时计数器的初值为THL(高8位为THL(低8位为TL。时钟周期即1/f0(定时器每一次累加用去一个机器周期(一个机器周期包含12时钟周期(即定时器每次加一所用时间是12/f0。定时器在模式1下计时采用16位数(最大计数为2^16-165535,(再次加一!65536,溢出触发中断。根据以上分析可得如下关系;

    音频对应定时器初值的高8TH=THL/(2^8)=(65536-t*f/12)/256;

    音频对应定时器初值的低8TL=THL%(2^8)=(65536-t*f/12)%256;

4/12页

    -西安科技大学-

     附;八度12音阶定时器初值表!只含自然音,

    低音频率Hz 晶振晶振中音频率Hz 晶振晶振高音频率Hz 晶振晶振

    12MHz 11.059212MHz 11.059212MHz 11.0592

    MHz MHz MHz Do 262 0xF885 0xF91B Do 523 0xFC43 0xFC8E Do 1046 0xFE21 0xFE47 Re 294 0xF95A 0xF9DF Re 587 0xFCAD 0xFCED Re 1175 0xFE56 0xFE76 Mi 330 0xFA13 0xFA8A Mi 659 0xFD0A 0xFD43 Mi 1318 0xFE85 0xFEA1 Fa 349 0xFA68 0xFAD8 Fa 698 0xFD34 0xFD6A Fa 1397 0xFE9A 0xFEC7 So 392 0xFB04 0xFB68 So 784 0xFD82 0xFDB3 So 1568 0xFEC1 0xFED9 La 440 0xFB90 0xFBE9 La 880 0xFDC8 0xFDF3 La 1760 0xFEE4 0xFEF9 Si 494 0xFC0C 0xFC5B Si 988 0xFE06 0xFE2D Si 1976 0xFF03 0xFF16

    2,控制发声节拍

    每个音符的节拍可通过延时一定的时间来实现(在具体实现时需要

    有一个基本的带参延时程序(用于主函数根据不同的音符调用不同的时

    延。若以十六分之一音符的时长为基本延时时间(则十六分音符只需调

    用一次延时程序(八分音符则需调用两次延时程序(以此类推。

    3 简谱及其编码

    *简谱知识

    音阶 C D E F G A B 唱名 do re mi fa so la si 数字 1 2 3 4 5 6 7

    1音符 ?

    音符用数字17表示。这7个数字就等于大调的自然音阶。如果

    C大调(加上音名(就会是这样;

    2八度 ?

    如果是高一个八度(就会在数字上方加上一点。如果是低一个八度(

    就会数字下方加上一点。在中间的那一个八度就什么也不用加。如果要

    再高一个八度(就在上方垂直加上两点(如;),要再低一个八度(就在

    下方垂直加上两点(如;)(如此类推。见下表所示;

    大调 ... ...

5/12页

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多