可振动感应切换的电子音乐

上传人:大米 文档编号:489967578 上传时间:2023-12-06 格式:DOCX 页数:20 大小:1.56MB
返回 下载 相关 举报
可振动感应切换的电子音乐_第1页
第1页 / 共20页
可振动感应切换的电子音乐_第2页
第2页 / 共20页
可振动感应切换的电子音乐_第3页
第3页 / 共20页
可振动感应切换的电子音乐_第4页
第4页 / 共20页
可振动感应切换的电子音乐_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《可振动感应切换的电子音乐》由会员分享,可在线阅读,更多相关《可振动感应切换的电子音乐(20页珍藏版)》请在金锄头文库上搜索。

1、可振动感应的电子音乐 一、 设计目的1、通过无源蜂鸣器与振动传感器外接模块实现电子音乐的切换功能。2、学习相关器件的知识,更深入的了解单片机的构成及作用,并能运用单片机处理生活中的问题。二、 硬件原理1、振动传感器整理为word格式三、 软件原理1、 按键消抖原理:当按键被按下的时候,电路导通接地,I/O口为低电平;当按键未被下时,电路断开,I/O口保持高电平的。但一般的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,假如不加以处理,会导致按键被识别为按下多

2、次。为了不产生这种现象而作的措施就是按键消抖。方法1:使用延时如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,5ms10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿抖动消失后才能转入该键的处理程序。整理为word格式2、 定时器中断原理:中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。当中央处理机正在处理某事件时外界发生紧急请求,CPU将暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的工程则为中断。定时器0和1

3、的中断请求标志位是TF0和TF1,当定时器寄存器出现溢出时,溢出标志位会被置位,如果定时器0/1的中断被打开,则定时器中断发生,当单片机去处理该中断时,定时器的溢出标志位会被硬件清除。3、 振动感应播放原理: 振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 每一个音符的发声频率是不同的,我们需要用计时器来精确计时,用以产生方波,这样才能发出不用的音符声音。C调各音符频率与计数值如图1所示,以下的简谱码是在晶振为12MHz的情况下计算的,换算为16进制的简谱码如程序中quzi数组所示。图1 C调各音符频率与计数值本程序中,数组music即是要播放的音乐,格式为音符,节拍,音符,节拍,如

4、此循环下去。音符为要发出的音调,而节拍则是声音的持续时间。如图,在数组music中,音符表示的格式为:十位代表是低八度,中八度还是高八度,1代表高八度,2代表中八度,3代表高八度,个位代表简谱的音符,例如,0x15代表低八度的S0,如图即整理为word格式是低5 S0,0x21代表中八度的DO,如图即是中1 D0。音符中,0x00代表结束符,表示整首歌曲演唱完毕,而0xff代表休止符,表示要休止100ms。遇到这两种情况,都应该重新执行循环中的第一步。其余情况则是正常播放。在定时器中断中进行振动/倒置传感器的检测,因为每播放完一个音节(产生一个方波),都重新启动了定时器。相当于在每个音节播放完

5、就检测1次振动/倒置传感器的状态。程序烧入单片机后,会自动进行演奏。相比基础篇,在去除了按键控制后,在其中添加了振动切歌的新功能。4、 芯片振动传感器相关引脚:图4 芯片振动传感器相关引脚四、 软件流程与相关代码1、软件流程a.创建工程文件整理为word格式b.编写代码c.编译运行d.创建Hex文件e.下载编程2、相关代码/*文件名称:v_music.c作者:机智的璐璐璐璐说明:进行音乐播放的例程,按下key1键后开始播放音乐修改记录:整理为word格式*/*基于STC15F2K60S2系列单片机C语言编程实现使用如下头文件,不用另外再包含REG51.H*/#include #define u

6、int unsigned int#define uchar unsigned charsbit Key1=P32; /Key1对应触发外部中断0sbit beep=P34; /蜂鸣器sbit vibrate=P24; /振动传感器uchar timeh,timel,jindu=0,gequ=0,zanting=0; /定义定时器的重装值bit flag;/播放标志位uchar code music1 = /音乐代码,歌曲为生日快乐,格式为: 音符, 节拍, 音符, 节拍, /音符的十位代表是低八度,中八度还是高八度,1代表高八度,2代表中八度,3代表高八度/个位代表简谱的音符,例如0x15代表

7、低八度的S0,0x21代表中八度的DO。/节拍则是代表音长,例如:0x10代表一拍,0x20代表两拍,0x05代表1/2拍 0x15,0x05,0x15,0x05,0x16,0x10,0x15,0x10,0x31,0x10,0x17,0x20,0x15,0x05,0x15,0x05,0x16,0x10,0x15,0x10,0x32,0x10,0x31,0x20,0x15,0x05,0x15,0x05,0x35,0x10,0x33,0x10,0x31,0x10,0x17,0x10,0x16,0x10,0x34,0x05,整理为word格式0x34,0x05,0x33,0x10,0x31,0x10

8、,0x32,0x10,0x31,0x10,0x00,0x00;uchar code music2 = /歌曲为小毛驴0x21,0x05,0x21,0x05,0x21,0x05,0x23,0x05,0x25,0x05,0x25,0x05,0x25,0x05,0x25,0x05,0x26,0x05,0x26,0x05,0x26,0x05,0x31,0x05,0x25,0x20,0x24,0x05,0x24,0x05,0x24,0x05,0x26,0x05,0x23,0x05,0x23,0x05,0x23,0x05,0x23,0x05,0x22,0x05,0x22,0x05,0x22,0x05,0x

9、22,0x05,0x25,0x15,0x25,0x05,0x21,0x05,0x21,0x05,0x21,0x05,0x23,0x05,0x25,0x05,0x25,0x05,0x25,0x05,0x25,0x05,0x26,0x05,0x26,0x05,0x26,0x05,0x31,0x05,0x25,0x20,0x24,0x05,0x24,0x05,0x24,0x05,0x26,0x05,0x21,0x05,0x21,0x05,0x21,0x05,0x23,0x05,0x25,0x05,0x25,0x05,整理为word格式0x25,0x05,0x25,0x05,0x26,0x05,0x2

10、6,0x05,0x26,0x05,0x31,0x05,0x25,0x20,0x24,0x05,0x24,0x05,0x24,0x05,0x23,0x03,0x23,0x03,0x23,0x03,0x23,0x03,0x23,0x05,0x23,0x05,0x22,0x05,0x22,0x05,0x22,0x05,0x23,0x05,0x21,0x20,0x00,0x00;uchar code music3 = /歌曲为天空之城0x16,0x05,0x17,0x05,0x21,0x15,0x17,0x05,0x21,0x10,0x23,0x10,0x17,0x30,0x23,0x10,0x16,

11、0x15,0x15,0x05,0x16,0x10,0x21,0x10,0x15,0x30,0x13,0x10,0x14,0x15,0x13,0x05,0x14,0x05,0x21,0x05,0x21,0x10,0x13,0x30,0x21,0x10,0x17,0x10,0x14,0x05,0x14,0x10,0x17,0x10,0x17,0x20,0xff,0x16,0x05,0x17,0x05,0x21,0x15,0x17,0x05,0x21,0x10,0x23,0x10,整理为word格式0x17,0x30,0x13,0x05,0x13,0x05,0x16,0x15,0x15,0x05,0

12、x16,0x10,0x21,0x10,0x15,0x30,0x13,0x10,0x14,0x10,0x21,0x05,0x17,0x05,0x17,0x10,0x21,0x10,0x22,0x10,0x23,0x05,0x21,0x20,0xff,0x21,0x05,0x17,0x05,0x16,0x10,0x17,0x10,0x15,0x10,0x16,0x20,0xff,0x21,0x05,0x22,0x05,0x23,0x15,0x22,0x10,0x23,0x10,0x24,0x10,0x25,0x05,0x22,0x30,0x15,0x10,0x22,0x03,0x21,0x03,0

13、x17,0x03,0x21,0x03,0x21,0x10,0x21,0x05,0x22,0x10,0x23,0x05,0x23,0x40,0x16,0x05,0x17,0x05,0x21,0x10,0x17,0x05,0x21,0x05,0x22,0x10,0x21,0x15,0x15,0x05,0x15,0x20,0x24,0x10,0x23,0x10,0x22,0x10,0x21,0x10,0x23,0x30,0x16,0x05,0x17,0x05,整理为word格式0x21,0x15,0x17,0x05,0x21,0x10,0x23,0x10,0x17,0x30,0x13,0x10,0x

14、16,0x15,0x15,0x05,0x16,0x10,0x21,0x10,0x15,0x30,0x13,0x10,0x14,0x10,0x21,0x05,0x17,0x05,0x17,0x10,0x21,0x10,0x22,0x10,0x23,0x05,0x21,0x05,0x21,0x20,0x21,0x05,0x17,0x05,0x16,0x10,0x17,0x10,0x15,0x10,0x16,0x40,0x00,0x00;uchar code quzi = /此数组数据为各个音符在定时器中的重装值,第一列是高位,第二列是低位0xf8,0x8c, /低八度,低10xf9,0x5b, 0xfa,0x15, /低30xfa,0x67,0xfb,0x04, /低50xfb,0x90,0xfc,0x0c, /低70xfc,0x44, /中央C调0xfc,0xac, /中20xfd,0x09,0xfd,0x34, /中40xfd,0x82,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号