基于MSP430控制蜂鸣器演奏乐曲的设计论文_第1页
基于MSP430控制蜂鸣器演奏乐曲的设计论文_第2页
基于MSP430控制蜂鸣器演奏乐曲的设计论文_第3页
基于MSP430控制蜂鸣器演奏乐曲的设计论文_第4页
基于MSP430控制蜂鸣器演奏乐曲的设计论文_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于msp430控制蜂鸣器演奏乐曲的设计 指导老师: 队员: 学校: 延安大学 院系: 物理与电子信息学院 摘要 : 本作品为了实现蜂鸣器演奏音乐,设计基于单片机msp430,以高低电平控制音调,电流通过蜂鸣器的电磁线圈,从而带动振动膜发声为方案,达到演奏美妙音乐的目的。技术报告以蜂鸣器演奏音乐的设计为主线,包括蜂鸣器演奏音乐的的框架设计,软硬件设计,以及对灯光随高低电平闪烁的研究等。基于可靠的硬件设计和稳定的软件算法,实现题目要求。关键词:单片机msp430 高低电平 蜂鸣器abstract:this work in order to achieve a buzzer play music,

2、 design based on the single chip microcomputer msp430, with high and low level control tones, the current through the buzzer electromagnetic coils, thus promote vibration membrane voice for plan to meet wonderful music playing the purpose. technical report to play music of the design of the buzzer m

3、ain line, including playing music of the framework of the buzzer design, software and hardware design, and with high and low level of lights flashing. based on reliable hardware design and stable software algorithm, and realize the topic request.keywords: msp430 microcontroller high and low level bu

4、zzer一、设计要求(1) 基于单片机msp430为主控芯片,利用蜂鸣器发声,以高低电平控制音调,来实现演奏乐曲的功能。(2) 准备八个发光二级管,定义msp430单片机的八个管脚分别为歌曲中的不同音符这样,每当蜂鸣器演奏一个音符时,相应的led就会发光,随着闪烁。二、硬件设计(1)整体方案通过改编430程序使其能够发出相应的音乐。演奏乐曲,对于一个音符应该包括两个部分,一是声调,二是持续时间,在这个程序中声调是由简单的延时电平翻转来实现,改变了延时时间就改变了声调,而时间是通过计数比较来实现,当计数值相等时就跳出循环演奏下一个音。(2)系统框架 主控芯片蜂鸣器发光二级管图(一)(3) 主控芯

5、片的选择 msp430系列单片机是一个16位的单片机,采用了精简指令集(risc)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。这些特点保证了可编制出高效率的源程序。而且其运算速度快,超低功耗,片内资源丰富,方便高效的开发环境也是我们优先选择的主要原因. 图(二)(4) 蜂鸣器 蜂鸣器分为两种:压电式蜂鸣器和电磁式蜂鸣器 实验室中,我们一般使用电磁式蜂鸣器电磁式蜂鸣器 : 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的

6、音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。如图所示:蜂鸣器的正极接到电源上面,蜂鸣器的负极接到三极管发射极上,三极管的基极接到限流电阻r1上,由单片机的p3.7控制,当p3.7输出高电平时,三极管t1截止,没有电流流过线圈,蜂鸣器不发声;当p3.7输出低电平时,三极管t1导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制p3.7脚的电平来使蜂鸣器发出声音和关闭。程序中改变单片机p3.7脚输出波形的频率,就可以控制蜂鸣器的音调,产生不同的音调,音色。另外,改变p3.7输出高低电平的占空比,则可以控制蜂鸣器的声音的大小,

7、这些我们都可以通过编程实验来验证。 图(三) 三、软件设计 程序功能:mcu控制蜂鸣器演奏歌曲祝你平安。 拨码开关设置:将buzzer位拨至on,其余位拨至off。测试说明:聆听蜂鸣器“唱出”的乐曲,既然是演奏乐曲对于一个音符应该包括两个部分,一是声调二是持续时间,在这个程序中声调是用简单的,延时-电平翻转来实现的,改变了延时的时间就改变了,声调,而时间是通过计数比较来实现的,当计数值相等时,就跳出循环演奏下一个音符。流程图: 图(四)四、结论及感想该设计完成了基本功能,可以实现任意歌曲的播放,只要换下歌曲里面的程序即可。不过让八个发光二级管随着歌曲的节奏闪烁完成的不够彻底。程序也是在我们的修

8、改下面目全非,好在基本功能倒是可以轻易显示。总而言之,虽然课程结束了,但是我们依然不会放弃它的扩展功能的实现,我们会再接再厉,争取将它完好实现。参考文献:1.msp430学习笔记5-利用蜂鸣器演奏音乐2.蜂鸣器:/manufacturers/%b7%e4%c3%f9%c6%f7.html附录:(1)程序: */#include #include boardconfig.h#include music.h#define buzzer bit7#define buzzer_port p6out#define buzzer_dir p6di

9、ruchar counter;void play_song(void);/*主函数*/void main(void) uchar i; wdtctl = wdtpw + wdthold; /关闭看门狗 /*-选择系统主时钟为8mhz-*/ bcsctl1 &= xt2off; / 打开xt2高频晶体振荡器 do ifg1 &= ofifg; /清除晶振失败标志 for (i = 0xff; i 0; i-); / 等待8mhz晶体起振 while (ifg1 & ofifg); / 晶振失效标志仍然存在? bcsctl2 |= selm_2 + sels; /主时钟和从时钟都选择高频晶振 bo

10、ardconfig(0xf8); /关闭数码管、流水灯、电平转换 /设置定时器a每10ms中断一次 cctl0 = ccie; ccr0 = 10000; tactl |= tassel_2 + id_3; /设置控制蜂鸣器的io方向为输出 buzzer_dir |= buzzer; /打开全局中断 _eint(); /循环演奏歌曲 while(1) play_song(); /*函数名称:timera_isr功 能:定时器a的中断服务函数参 数:无返回值 :无*/#pragma vector = timera0_vector_interrupt void timera_isr(void) c

11、ounter+;/*函数名称:delay_nms功 能:延时n个ms的函数参 数:n-延时长度返回值 :无*/void delay_nms(uchar n) uchar i,j; for( i = 0;i n; i+ ) for( j = 0;j 3;j+ ) _nop(); /*函数名称:play_song功 能:播放祝你平安的乐曲参 数:无返回值 :无*/void play_song(void) uchar temp1,temp2; uchar addr = 0; counter = 0; /中断计数器清0 while(1) temp1 = songaddr+; if ( temp1 = 0xff ) /休止符 tactl &=mc_1; /停止计数 delay_nms(100); else if ( temp1 =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论