蜂鸣器演唱音乐

发布者:RadiantBlossom最新更新时间:2017-01-03 来源: eefocus关键字:蜂鸣器  演唱音乐 手机看文章 扫描二维码
随时随地手机看文章

修改自51单片机,launchpad的P10连接蜂鸣器,蜂鸣器演奏《八月桂花》

  1 #include "msp430g2553.h"

  2 

  3 unsigned char n=0;  //n为节拍常数变量    

  4 unsigned char  music_tab[] ={  

  5 0x18, 0x30, 0x1C , 0x10, //格式为: 频率常数, 节拍常数, 频率常数, 节拍常数,    

  6 0x20, 0x40, 0x1C , 0x10,   

  7 0x18, 0x10, 0x20 , 0x10,   

  8 0x1C, 0x10, 0x18 , 0x40,   

  9 0x1C, 0x20, 0x20 , 0x20,   

 10 0x1C, 0x20, 0x18 , 0x20,   

 11 0x20, 0x80, 0xFF , 0x20,

 12 0x30, 0x1C, 0x10 , 0x18,   

 13 0x20, 0x15, 0x20 , 0x1C,   

 14 0x20, 0x20, 0x20 , 0x26,   

 15 0x40, 0x20, 0x20 , 0x2B,   

 16 0x20, 0x26, 0x20 , 0x20,   

 17 0x20, 0x30, 0x80 , 0xFF,   

 18 0x20, 0x20, 0x1C , 0x10,   

 19 0x18, 0x10, 0x20 , 0x20,   

 20 0x26, 0x20, 0x2B , 0x20,   

 21 0x30, 0x20, 0x2B , 0x40,   

 22 0x20, 0x20, 0x1C , 0x10,   

 23 0x18, 0x10, 0x20 , 0x20,   

 24 0x26, 0x20, 0x2B , 0x20,   

 25 0x30, 0x20, 0x2B , 0x40,   

 26 0x20, 0x30, 0x1C , 0x10,   

 27 0x18, 0x20, 0x15 , 0x20,   

 28 0x1C, 0x20, 0x20 , 0x20,   

 29 0x26, 0x40, 0x20 , 0x20,   

 30 0x2B, 0x20, 0x26 , 0x20,   

 31 0x20, 0x20, 0x30 , 0x80,   

 32 0x20, 0x30, 0x1C , 0x10,   

 33 0x20, 0x10, 0x1C , 0x10,   

 34 0x20, 0x20, 0x26 , 0x20,   

 35 0x2B, 0x20, 0x30 , 0x20,   

 36 0x2B, 0x40, 0x20 , 0x15,   

 37 0x1F, 0x05, 0x20 , 0x10,   

 38 0x1C, 0x10, 0x20 , 0x20,   

 39 0x26, 0x20, 0x2B , 0x20,   

 40 0x30, 0x20, 0x2B , 0x40,   

 41 0x20, 0x30, 0x1C , 0x10,   

 42 0x18, 0x20, 0x15 , 0x20,   

 43 0x1C, 0x20, 0x20 , 0x20,   

 44 0x26, 0x40, 0x20 , 0x20,   

 45 0x2B, 0x20, 0x26 , 0x20,   

 46 0x20, 0x20, 0x30 , 0x30,   

 47 0x20, 0x30, 0x1C , 0x10,

 48 0x18, 0x40, 0x1C , 0x20,   

 49 0x20, 0x20, 0x26 , 0x40,   

 50 0x13, 0x60, 0x18 , 0x20,   

 51 0x15, 0x40, 0x13 , 0x40,   

 52 0x18, 0x80, 0x00   

 53 };   

 54    

 55 

 56 void delay (unsigned char m)   //控制频率延时    

 57 {   

 58  unsigned i=3*m;   

 59  while(--i);   

 60 }   

 61    

 62 void delaymms(unsigned int a)  //毫秒延时子程序    

 63 {   

 64   unsigned int t;

 65      while(--a)

 66         for(t=0;t<200;t++);

 67 }   

 68    

 69 void main(void)

 70 {

 71    unsigned char p,m;   //m为频率常数变量    

 72    unsigned char i=0;     

 73 

 74    WDTCTL = WDTPW + WDTHOLD;     // 停止看门狗

 75 

 76    P1DIR = 0Xff;        

 77    P2DIR = 0Xff;        

 78         

 79    CCTL0 |= CCIE;                             // CCR0 interrupt enabled

 80    CCR0 = 10000;                         //10ms

 81    TACTL = TASSEL_2 ;                  // SMCLK, contmode

 82    _EINT();

 83 

 84  

 85    while(1)   

 86       {   

 87          p=music_tab[i];   

 88           if(p==0x00)      

 89           { 

 90             i=0;

 91             delaymms(1000);

 92             continue;;

 93           }     //如果碰到结束符,延时1秒,回到开始再来一遍    

 94           else if(p==0xff)  

 95           { 

 96             i=i+1;

 97             delaymms(100);

 98             TACTL &=~MC_1;

 99             continue;

100           }  //若碰到休止符,延时100ms,继续取下一音符    

101           else         

102           {

103              m=music_tab[i++];

104              n=music_tab[i++];

105           }  //取频率常数 和 节拍常数    

106                  

107            TACTL |= MC_1+TACLR;                                           //开定时器   

108            while(n!=0) P1OUT ^= BIT0,delay(m);                         //等待节拍完成

109            TACTL &=~MC_1;                                           //关定时器     

110     }  

111    

112 }

113 

114 

115 // Timer A0 interrupt service routine

116 #pragma vector=TIMER0_A0_VECTOR

117 __interrupt void Timer_A (void)

118 {

119     n--;

120 }



关键字:蜂鸣器  演唱音乐 引用地址:蜂鸣器演唱音乐

上一篇:变态版3线SPI总线实现(DS1302时钟芯片用)
下一篇:按键消抖测试

推荐阅读最新更新时间:2024-03-16 15:28

STM32单片机TIM3蜂鸣器播放音乐
下面这段代码有个小bug,软件仿真PORTB.5 beep 波形正常,如下图所示 但下到我的开发板上,beep没有声音,若看到此程序,有兴趣的朋友可以帮忙验证一下,欢迎一起探讨! #include stm32f10x_lib.h // STM32F10x Library Definitions #include STM32_Init.h // STM32 Initialization #include stm32f10x_type.h #define uchar unsigned char bool beep; uchar k; long reload_time=0,time=0;
[单片机]
马路成了菜市场,论一个“话唠”电动汽车有多安全
据外媒报道,如果你在马路上遇到过电动车,就会发现这些家伙在低速行驶时实在是无声无息,不过这一情况就要改变了。   美国国家公路交通安全局(NHTSA)出台新规表示,为了保护行人,2019年9月1日起市场上售卖的电动车在速度低于18.6英里/小时(约合30千米/小时)时就会自动发出噪音提醒行人。   其实这条新规早该问世了,要知道美国国会2010年就批准了行人安全促进法案,而NHTSA直到2014年1月才开始推进针对低噪声电动车的立法。   其实该法案原本在18个月后就能顺利执行的,但现在却被拖到了3年以后,让汽车制造商有充分时间打造防水的蜂鸣器。   不过,晚到总比没到好,也许有些厂商为了获得宣传优势,提早就会将蜂鸣器装在电动车上
[嵌入式]
51单片机 使用一个独立按键控制蜂鸣器
第一次按下按键按键key后,蜂鸣器响; 第二次按下按键按键key后,蜂鸣器停。 #include reg52.h sbit beep=P1^5; sbit key=P3^1; unsigned int mode; //定义一个模式 void delay(unsigned int i) { while(i--); } void voice() { if(mode) { beep=~beep; delay(100); //更改delay可以让蜂鸣器发出不同的声音 } else { beep=0; } } void main()
[单片机]
【STC单片机学习】第十一课:蜂鸣器
1.11.1.蜂鸣器的原理 1.11.1.1、蜂鸣器简介 (1)分类:无源蜂鸣器和有源蜂鸣器:这里的 源 不是电源,是震荡源 (2)外观和内部结构 无源和有源外观略有差别 (3)无源蜂鸣器发声原理 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它 单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。三极管的作用为驱动,通过三极管放大驱动电流,从而可以让蜂鸣器发出声音。 电路图如下,如果要驱动无源蜂鸣器需要在三极管的基极(B)上加载不同频率的信号。对IO口进行电平翻转信号,
[单片机]
【STC单片机学习】第十一课:<font color='red'>蜂鸣器</font>
基于STM8S003的无源蜂鸣器播放音乐
功能描述:用于AGV上发出不同的提示音和音乐,公司项目。 功能实现主要的内容: 硬件上: 关于蜂鸣器电路: 1、了解无源蜂鸣器和有源蜂鸣器的区别,此处源指的是震荡源。 2、常见的蜂鸣器有两种:压电式和电磁式。主要是指声音产生方式不同,压电式声音清脆符合要求。 3、关于电路的详细介绍看这个:http://www.firebbs.cn/thread-9823-1-1.html 硬件上的问题:主要是声音不够响。 有以下几个原因: 1、蜂鸣器本身的大小及性能不能满足要求。 2、电路问题: (1)在蜂鸣器两端并上2K电阻:具体的电路看这里:http://www.dzsc.com/dzbbs/20061218/200
[单片机]
Linux-2.6.32.2内核在mini2440上的移植(十七)---移植PWM控制蜂鸣器
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南 【1】硬件原理 Mini2440 板带有一个蜂鸣器,它是由PWM 控制的,下面是它的连
[单片机]
Linux-2.6.32.2内核在mini2440上的移植(十七)---移植PWM控制<font color='red'>蜂鸣器</font>
几种驱动蜂鸣器的编程示例
以下介绍几种在S3F9454/9444下驱动蜂鸣器的编程示例,供参考 A.第一种,普通IO高低 电平 驱动法 ;运行环境: S3F9454,Fosc= 3.2M Hz 无 分频 iframe id="iframeu2163852_0" src="http://pos.baidu.com/vctm?conwid=250&conhei=250&rdid=2163852&dc=3&di=u2163852&dri=0&dis=0&dai=3&ps=784x824&enu=encoding&dcb=___adblockplus&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&t
[单片机]
单片机学习记录——蜂鸣器
硬件连接 从图中可知,蜂鸣器只有一个接口与外部相连接。我们通过跳线把J8接口与单片机的P0.0接口相连接。 蜂鸣器发声原理 有源蜂鸣器,也称压电式压蜂鸣器,主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。 其中最重要的就是它的压电蜂鸣片,通常这是一种压电陶瓷,能进行电能与机械能的转换。 发声过程为:外部提供恒定直流电压,提供能量给多谐振荡器,多揩振荡器起振,并提供变化的电压和频率给压电陶瓷,压电陶瓷将电能转化为机械能,也就发出了声音。 无源蜂鸣器,也称电磁式蜂鸣器,主要由永磁体,线圈,振荡片构成。 发声过程为:外部按一定频率提供驱动一个振荡信号(一定占空比的方波,该信号作用于线圈,产生的磁声与永
[单片机]
单片机学习记录——<font color='red'>蜂鸣器</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved