单片机播放音乐的基本知识

单片机播放音乐的基本知识

用单片机播放音乐,或者弹奏电子琴,实际上是按照特定的频率,输出一连串的方波。为了输出合适的方波,首先应该知道音符与频率的关系。
1.音名
从常见的电子琴的键盘谈起。
在下表中,可以看到一列黑白相间的琴键(示意)。主要分成低音、中音和高音三个区域,每个区域都有12个琴键。其中的白键,简谱音符标为1、2、3、4、5、6、7,大家一般都读成哆、来、咪、发、嗦、拉、西。
2.频率
注意看一下几个6(拉)的频率,它们是整数,容易看出规律――是成2倍的关系。其它的音符,也有同样的规律。这些频率,如220、440等,它们在琴键上的位置是世界统一的,无论是钢琴、手风琴,还是电子琴,都是一样的。
包括黑键和白键在内的全部音符的频率数值,是成“等比数列”的关系,它们之间有个公比,可以按照“2倍”的规律推算出来。
已知最低音的6(拉)的频率是220,设公比为q,那么:7的频率就是220*q*q 。
乘了两个q,是因为6、7之间隔了个黑键。以此类推,两个6之间,共有12个琴键,所以:
低音区的6(拉)的频率就是:220*q*q*q*q*q*q*q*q*q*q*q*q = 440。
马上就可以看出,12个q相乘,等于: 440 / 220 = 2。
那么就可以求出公比:q = 2的12次方根 = 1.059463094。
用这个公比,和已知的220进行计算,可以得出全部琴键所对应的频率,如下表中所示。
3.定时初值
频率的倒数是周期,用单片机输出方波,应该在半个周期的时刻,将输出取反。
设单片机的晶振为12MHz,那么定时器将在1us进行一次加一,加到65536就会出现中断。据此,就可计算出定时器定时半个周期所需的初值,如下表中所示。


图表链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/bfbfc7a93f49fd8eca130cd3.html

4.音调数据表
单片机发出不同频率的方波,人听起来,就是不同的音调。
上表中的频率数值,有些过多,去掉不常用的黑键频率,只是把白键对应的数据存放在单片机中,即可满足绝大部分的应用需求。
定义音调数据表的程序如下:
    DW 63625, 63833, 64019, 64104, 64260, 64400, 64524 ;低音区:1 2 3 4 5 6 7
    DW 64580, 64685, 64778, 64820, 64898, 64968, 65030 ;中音区:1 2 3 4 5 6 7
    DW 65058, 65110, 65157, 65178, 65217, 65252, 65283 ;高音区:1 2 3 4 5 6 7
    DW 65297                                                   ;超高音:1

把这个数据表,放在程序中,需要播音的时候,就从表中取出一个数据送到定时器,当定时器溢出中断的时候,再对输出引脚取反,那么,在扬声器中,即可听到上表中频率的声音。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 一、引言—本课程设计的目的………..………………..2 二、八路LED跑马灯实验…………….……………….2 2.1设计内容…………………………………………………2 2.2电路图……………………………………………………2 2.3上机程序..…………………………………….………….3 2.4调试结果及结论:……………….……………………….4 三、二位数码管循环显示00~99的实验…..………….4 3.1设计内容...……………………………………………….4 3.2电路图...………………………………………………….4 3.3上机程序..…………………………………………..……5 3.4调试结果及结论…………………………………………6 四、单片机演奏音乐实验………………………………6 4.1设计内容..……………………………………….……….6 4.2电路图……………………………………………………6 4.3上机程序…………………………………………………7 4.4调试结果及结论...……………………………………….9 五、心得体会...………………………………………….9 六、参考文献…………..………………………………10 摘要:由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数 据的采集和控制。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解 单片机的实际应用。 一、单片机课程设计的目的 以本学期对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所 学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个 板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好 要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件 电路。在根据该电路设计出软件的功能模块、从而完成程序流程图,在根据流程图完成 程序的设计,并通过反复的调试、运行、更正,直至完成既定功能为止,最后将软件、 硬件结合进行调试、运行,对其功能进行最终测试,并反复思考其测试中遇到相应问题 的原因,并将其一一处理,从而完成本次设计的实验要求,以及本次课程设计的最终目 的。 二、八路LED跑马灯实验 2.1设计内容: 八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成 必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理 图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负 极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了。 2.2电路图: . 2.3上机程序: org 0000h ajmp start org 0030h start: mov a,#7fh clr c mov r2,#08h loop: rrc a mov p0,a call delay djnz r2,loop mov r2,#07h loop1: rlc a mov p0,a call delay djnz r2,loop1 jmp start delay: d1: mov r4,#20 d2: mov r5,#248 djnz r5,$ djnz r4,d2 ret end 2.4调试结果及结论: 八路发光二极管轮流点亮汇编语言的一大优势就是能够精确控制程序的执行时间,这 在编写一些对时序要求严格的外围器件驱动时由为重要! 三、二位数码管循环显示00~99的实验 3.1设计内容: 8段数码管显示.两位数码管显示00-- 99依次循环(动态扫描方式).p1做LED显示数据输出口.p3.2;p3.3分别控制数码管个位数 和十位数显示.用单片机进行数码显示应具有显示器件;应用最广泛的是8段数码管。8段 数码管从内部接线上分共阳和共阴两种。在电路设计时应根据情况决定采用共阳或共阴 ,其基本原则是:若单片机IO口直接驱动数码管个段,最好采用共阳数 码管,因为51单片机IO口输出高电平时输出的电流很小,数码管不会太亮;若数码管是 通过驱动芯片与单片机相连的,就要看驱动芯片对数码管极性的要求。 3.2电路图: 3.3上机程序: a_bit equ 20h b_bit equ 21h temp equ 22h start: mov temp,#0 ss:acall display inc temp mov a,temp cjne a,#100,next mov temp,#0 next:ljmp ss display: mov a,temp mov b,#10 div ab mov b_bit,a mov a_bit,b mov dptr,#numtab mov r0,#4 dpl1: mov r1
摘要 本设计采用了蜂鸣器发声来实现歌曲的播放,能保持基本音调不变,流畅播放出歌 曲。现选用AT89S51单片机。主要设计模块包括数码管显示部分,功能键盘部分,蜂鸣器 发声部分,彩灯部分。显示部分管采用共阳极数码管,通过单片机控制实现歌曲序号的 显示;功能键盘采用按键开关,通过单片机的控制来实现歌曲播放顺序的调换和暂停播 放功能;蜂鸣器实现歌曲播放;彩灯是由普通发光二极管代替,能实现单色长亮和闪烁 效果。 此次设计要利用单片机及KeilC51编程软件编程和PROTEUS单片机仿真软件和电子电工 等方面知识,用KeilC51编程软件编程,用PROTEUS单片机仿真软件仿真。最后制作实物, 将程序下载到单片机中,利用I/O口产生一定频率的方波,驱动蜂鸣器,发出不同的音调 ,从而演奏乐曲。 关键词:AT89S51单片机;方波; 音调 ABSTRACT This design USES the buzzer to realize the voice of play songs, can maintain the same basic tones, fluent plays songs. Now choose AT89S51. The main design module to include digital tube display section, the function of the keyboard, a buzzer of voice, the lantern parts. Shows part of the tube is altogether anode digital tube, through the single-chip microcomputer control realization of songs serial number display; The keyboard function button switches, through the single-chip microcomputer control to realize the order of the songs played exchange and suspend play function; Songs played buzzer realize; Lights is by ordinary leds instead of, can realize the monochrome long bright and flickering effect. This design using single chip computer to KeilC51 programming and software programming and PROTEUS single-chip microcomputer simulation software and electronic electrician aspects knowledge, with KeilC51 programming software programming, with PROTEUS single-chip microcomputer simulation software simulation. Finally making real, will program downloaded to single chip microcomputer, the use of I/O mouth produce a certain frequency of square wave, drive a buzzer, a different tone, thus playing music. Key words: AT89S51 microcontroller; square; tone 目录 摘要 I ABSTRACT II 前言 IV 1 绪论 1 1.1国内外研究现状 1 1.2 单片机发展趋势 1 2音乐盒总体设计 2 2.1设计功能要求 2 2.2 工作原理 2 2.3总体设计框图 2 3芯片的选择和介绍 4 3.1MCS-51系列单片机简介 4 3.2单片机的选择 4 4系统硬件设计 8 4.1电源电路的设计 8 4.2 单片机最小系统 8 4.3 数码管显示部分 9 4.4 键盘部分 11 4.5蜂鸣器部分 11 5系统软件设计 13 5.1软件系统介绍 13 5.2编程语言的选择 13 5.3应用软件的选择—keilc51 13 5.4系统程序设计 14 5.5系统的程序设计 16 6系统仿真及硬件制作 22 6.1仿真的必要性 22 6.2系统仿真过程 22 结论 23 参考文献

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值