单片机音乐中音调和节拍的确定方法

合集下载

音符频率

音符频率

附录:音乐模块部分单片机发音原理:单片机演奏音乐基本是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音,但一定要弄清楚两个概念即可,也就是“音调”和“节拍”。

·音调表示一个音符唱多高的频率。

·节拍表示一个音符唱多长的时间。

下面,就此两点,阐述说明:一、音调在音乐中所谓“音调”,其实就是我们常说的“音高”。

在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz,其余与其比较。

f1和f2为两个音符,当这两个音符的频率相差一倍时,也即f2=2×f1时,则称f2比f1高一个倍频程。

在音乐中1与.1,2与.2……,正好相差一个倍频程,在音乐学中称它相差一个八度音。

在一个八度音内,有12个半音。

以1—i八音区为例,12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i 。

这12个音阶的分度基本上是以对数关系来划分的。

如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。

2.确定一个频率所对应的定时器的定时初值的方法以标准音高A为例:标准音高A的频率f = 440 Hz,其对应的周期为:T = 1/ f = 1/440 =2272μs因此,需要在单片机I/O端口输出周期为T =2272μs的方波脉冲,如下图所示。

由上图可知,单片机上对应喇叭的I/O口来回取反的时间应为:t = T/2 = 2272/2 = 1136μs此处分两种方式叙述,请比较选用,其实结果相同:Ⅰ.这个时间t也就是单片机上定时器应有的中断触发时间。

一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。

设振荡器频率为f0,则定时器的予置初值由下式来确定:t = 12 ×(T ALL– T HL)/ f0式中,T ALL = 216 = 65536,T HL为定时器待确定的计数初值。

简易的单片机音乐控制

简易的单片机音乐控制

简易的单片机音乐控制作者:侯静针对以前转贴的那篇单片机音乐控制,其算法对初学者不是很容易弄懂此,我根据网上提供的资料。

用C语言写了一个《八月桂花香》的音乐控制。

音调是由不同的频率产生的,而每一个音调都是由一个音符和一个节拍组成,音符决定该音调的高低,节拍则决定了该音调是多少拍。

因此,一个音调是由两个字节组成的。

根据音符字节产生该大小次数的延时,声音输出口取反,就可以得到该音调的高低音。

根据设置单位节拍的延时大小,可以控制音乐演唱速度。

因此算法很简单:定义单片机的一个I/O端脚为声音输出口,在规定的节拍内,根据音符字节的大小产生延时,将声音输出口不断的置高置低(即取反),就可以得到该音调。

只要选取合适的单位节拍延时,就可以输出动听的音乐。

算法流程图如下://**********主程序*********#include<reg51.h>#include"SoundPlay.h"uchar data count=0;void init_com(){TMOD=0x01;TH0=0xff;TL0=0xff;EA=1;ET0=1;}void timer0(void) interrupt 1 using 3 {counter=counter+1;//节拍次数计数TH0=0xd8;//定义单位节拍的延时大小TL0=0xef;}void delay(uchar n){uchar i;while(n--)for(i=0;i<125;i++);//延时1毫秒}void sound_delay(uchar n){uchar i;while(n--){for(i=0;i<2;i++);}}void main(){uint i;uchar sound_signal;//定义音符大小uchar sound_pace;//定义节拍大小init_com()//array[i]=0x00 代表歌曲演唱完毕//array[i]=0xff 代表是休止符while(1){i=0;while(array[i]!=0x00){//如果是休止符,延时100ms,并终止本次循环,进入下一个循环 if(array[i]==0xff){TR0=0;i++;delay(100);continue;}//从表中取得音符大小sound_signal=array[i];i=i+1;//从表中取得节拍大小sound_pace=array[i];TR0=1;//当节拍数未达到时候,继续循环,产生该音调的声音while(counter!=sound_pace)0x20, 0x26, 0x20, 0x20, 0x20, 0x30, 0x80, 0xFF, 0x20, 0x20, 0x1C, 0x10, 0x18, 0x10, 0x20, 0x20, 0x26, 0x20, 0x2B, 0x20, 0x30, 0x20, 0x2B, 0x40, 0x20, 0x20, 0x1C, 0x10, 0x18, 0x10, 0x20, 0x20, 0x26, 0x20, 0x2B, 0x20, 0x30, 0x20, 0x2B, 0x40, 0x20, 0x30, 0x1C, 0x10, 0x18, 0x20, 0x15, 0x20, 0x1C, 0x20, 0x20, 0x20, 0x26, 0x40, 0x20, 0x20, 0x2B, 0x20, 0x26, 0x20, 0x20, 0x20, 0x30, 0x80, 0x20, 0x30, 0x1C, 0x10, 0x20, 0x10, 0x1C, 0x10, 0x20, 0x20, 0x26, 0x20, 0x2B, 0x20, 0x30, 0x20, 0x2B, 0x40, 0x20, 0x15, 0x1F, 0x05, 0x20, 0x10, 0x1C, 0x10, 0x20, 0x20, 0x26, 0x20, 0x2B, 0x20, 0x30, 0x20, 0x2B, 0x40, 0x20, 0x30, 0x1C, 0x10, 0x18, 0x20, 0x15, 0x20, 0x1C, 0x20, 0x20, 0x20,。

调号-音乐上指用以确定乐曲主音高度的符号。

调号-音乐上指用以确定乐曲主音高度的符号。

调号-音乐上指用以确定乐曲主音高度的符号。

很明显一个八度就有12个半音。

A、B、C、D、E、F、G。

经过声学家的研究,全世界都用这些字母来表示固定的音高。

比如,A这个音,标准的音高为每秒钟振动440周。

升C调:1=#C,也就是降D调:1=BD;277(频率)升D调:1=#D,也就是降E调:1=BE;311升F调:1=#F,也就是降G调:1=BG;369升G调:1=#G,也就是降A调:1=BA;415升A调:1=#A,也就是降B调:1=BB。

466,C 262 #C277D 294 #D(bE)311E 330F 349 #F369G 392 #G415A 440. #A466B 494所谓1=A,就是说,这首歌曲的“导”要唱得同A一样高,人们也把这首歌曲叫做A调歌曲,或叫“唱A调”。

1=C,就是说,这首歌曲的“导”要唱得同C一样高,或者说“这歌曲唱C调”。

同样是“导”,不同的调唱起来的高低是不一样的。

各调的对应的标准频率为:单片机演奏音乐时音调和节拍的确定方法经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这样。

在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。

一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。

因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。

音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

在音乐中所谓“音调”,其实就是我们常说的“音高”。

在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。

当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程, 在音乐中1(do)与.1,2(来)与.2……正好相差一个倍频程,在音乐学中称它相差一个八度音。

在一个八度音内,有12个半音。

以1—i八音区为例,12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。

实验五单片机音乐中音调和节拍的确定方法

实验五单片机音乐中音调和节拍的确定方法

调号-音乐上指用‎以确定乐曲‎主音高度的‎符号。

很明显一个‎八度就有1‎2个半音。

A、B、C、D、E、F、G。

经过声学家‎的研究,全世界都用‎这些字母来‎表示固定的‎音高。

比如,A这个音,标准的音高‎为每秒钟振‎动440周‎。

升C调:1=#C,也就是降D‎调:1=BD;277(频率)升D调:1=#D,也就是降E‎调:1=BE;311升F调:1=#F,也就是降G‎调:1=BG;369升G调:1=#G,也就是降A‎调:1=BA;415升A调:1=#A,也就是降B‎调:1=BB。

466,C 262 #C277D 294 #D(bE)311E 330F 349 #F369G 392 #G415A 440. #A466B 494所谓1=A,就是说,这首歌曲的‎“导”要唱得同A‎一样高,人们也把这‎首歌曲叫做‎A调歌曲,或叫“唱A调”。

1=C,就是说,这首歌曲的‎“导”要唱得同C‎一样高,或者说“这歌曲唱C‎调”。

同样是“导”,不同的调唱‎起来的高低‎是不一样的‎。

各调的对应‎的标准频率‎为:单片机演奏‎音乐时音调‎和节拍的确‎定方法经常看到一‎些刚学单片‎机的朋友对‎单片机演奏‎音乐比较有‎兴趣,本人也曾是‎这样。

在此,本人将就这‎方面的知识‎做一些简介‎,但愿能对单‎片机演奏音‎乐比较有兴‎趣而又不知‎其解的朋友‎能有所启迪‎。

一般说来,单片机演奏‎音乐基本都‎是单音频率‎,它不包含相‎应幅度的谐‎波频率,也就是说不‎能象电子琴‎那样能奏出‎多种音色的‎声音。

因此单片机‎奏乐只需弄‎清楚两个概‎念即可,也就是“音调”和“节拍”。

音调表示一‎个音符唱多‎高的频率,节拍表示一‎个音符唱多‎长的时间。

在音乐中所‎谓“音调”,其实就是我‎们常说的“音高”。

在音乐中常‎把中央C 上‎方的A音定‎为标准音高‎,其频率f=440Hz‎。

当两个声音‎信号的频率‎相差一倍时‎,也即f2=2f1时,则称f2比‎f1高一个‎倍频程, 在音乐中1‎(do)与.1,2(来)与.2……正好相差一‎个倍频程,在音乐学中‎称它相差一‎个八度音。

单片机演奏音乐音调和节拍确定方法

单片机演奏音乐音调和节拍确定方法

单片机演奏音乐时音调和节拍的确定方法单片机演奏音乐时音调和节拍的确定方法一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。

因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。

音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

在音乐中所谓“音调”,其实就是我们常说的“音高”。

在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。

当两个声音信号的频率相差一倍时,也即f2=2f1时,则称f2比f1高一个倍频程, 在音乐中1(do)与i ……正好相差一个倍频程,在音乐学中称它相差一个八度音。

在一个八度音内,有12个半音。

以1—i八音区为例,12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。

这12个音阶的分度基本上是以对数关系来划分的。

如果我们知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。

知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。

那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例:A的频率f = 440 Hz,其对应的周期为:T = 1/ f = 1/440 =2272μs由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:t = T/2 = 2272/2 = 1136μs这个时间t也就是单片机上定时器应有的中断触发时间。

一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。

设振荡器频率为f0,则定时器的予置初值由下式来确定:t = 12 *(TALL – THL)/ f0式中TALL = 2^16 = 65536,THL为定时器待确定的计数初值。

单片机的音乐播放器设计(C程序及注释)[详解音调、节拍的确定]

单片机的音乐播放器设计(C程序及注释)[详解音调、节拍的确定]

基于单片机的音乐盒设计【摘要】本设计是一个基于AT89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。

该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。

使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计3种。

播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。

本设计利用KEIL 编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。

目录1.设计方案 (2)2 系统总体方案介绍 (2)2.1系统组成框图 (2)2.2音乐盒的功能结构图 (2)3硬件设计 (3)3.1总体设计框图 (3)3.2各部分硬件设计及其原理............................. 错误!未定义书签。

3.2.2 LED显示电路设计与原理 (3)3.2.3 时钟振荡电路................................... 错误!未定义书签。

3.3硬件电路图及功能 (3)4软件设计 (4)4.1音调、节拍以及编码的确定方法 (4)4.1.1 音调的确定 (5)4.1.2 节拍的确定 (6)4.1.3 编码 (7)4.2软件程序设计 (7)4.2.1 程序流程图及相应代码块 (7)5调试................................................... 错误!未定义书签。

5.1检查硬件连接....................................... 错误!未定义书签。

5.2检查软件系统....................................... 错误!未定义书签。

5.3测试结果 (12)5.3.1.总体运行图 (12)5.3.2.花样灯3种花样图 (13)附录程序源代码及注释 (13)1.设计方案设计一个基于AT89C51系列单片机的音乐盒,利用按键切换演奏出不同的乐曲。

基于51单片机的音乐盒设计

基于51单片机的音乐盒设计

课程设计:嵌入式系统应用题目名称:基于51单片机的音乐盒设计1设计的任务(包含设计的内容和设计的目标)设计内容:本设计是一个基于AT89C52系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能多功能音乐盒。

该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器和点阵组成。

使用按键控制音乐盒,三个用来切换歌曲,一个用来暂停音乐和开启LED点阵,一个用来从暂停位置开始播放音乐。

本音乐盒共有三首歌曲,点阵式样有四种。

播放歌曲时,蜂鸣器发出某个音调。

本设计利用KEIL编程软件对音乐盒源程序进行编程并调试。

设计目标:初始:点阵显示作者信息;按键1:播放歌曲1;按键2:播放歌曲2;按键3:播放歌曲3;按键A:暂停播放,点阵显示当前歌曲的名字;按键B:从暂停位置继续播放。

2 设计的过程2.1 基本结构1、总体设计框图2、AT89C52介绍8K 在系统可编程Flash 使用Atmel 与工业80C51Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

Flash,25632 位I/O 口6向量2可降至CPU 停止工中断继续工作。

掉电保护方式下,RAM P0 口:P0口是一个8口。

作为输出口,每位能驱TTL P0端口写“1”P08P0P0P1 口:P1 8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。

对P1 端口写“1”此时可以作为输入的原因,将输出电流(IIL)P1.0和P1.1(P1.0/T2)计数器2 的触发输入(P1(定时器的捕捉/重载触发信号和方向控制)P1.5 MOSIP1.6 MISOP1.7 SCKP2 口:P2 8 位双向I/O 口,P2 输出缓冲器能驱动 4 个TTL 逻辑电平。

对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入16MOVX @DPTR)8位地址(如MOVX @RI在flash编程和校验时,P28 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。

单片机辨音识键奏乐方案

单片机辨音识键奏乐方案

单片机辨音识键奏乐方案
摘要:
1.单片机辨音识键奏乐方案的背景和需求
2.方案的设计思路和实现方法
3.方案的具体实现过程
4.方案的优点和可能的改进方向
正文:
随着科技的发展,人工智能技术在日常生活中的应用越来越广泛。

其中,单片机辨音识键奏乐方案就是一项结合了人工智能技术和音乐演奏的艺术。

一、单片机辨音识键奏乐方案的背景和需求
在音乐演奏中,演奏者需要通过按键来控制音高和节奏。

但是,对于一些初学者来说,正确的按键顺序和节奏感往往是一项挑战。

因此,我们需要一种能够自动识别按键并演奏出正确音高的方案。

二、方案的设计思路和实现方法
单片机辨音识键奏乐方案的设计思路是通过人工智能技术,识别按键的音高,然后根据识别的音高,控制乐器演奏出正确的音高。

具体的实现方法主要包括两个部分:一是通过单片机连接乐器和按键,实现按键和音高的对应;二是通过人工智能技术,识别按键的音高,并根据识别的音高,控制乐器演奏出正确的音高。

三、方案的具体实现过程
在具体实现过程中,首先需要通过编程,设置单片机对按键的识别和音高
的控制。

然后,通过人工智能技术,对按键的音高进行识别。

最后,根据识别的音高,控制乐器演奏出正确的音高。

四、方案的优点和可能的改进方向
单片机辨音识键奏乐方案的优点在于,它能够帮助初学者正确地演奏音乐,提高他们的学习效果。

同时,它也能够为音乐创作提供新的可能。

在未来的改进中,我们可以进一步提升方案的识别精度,使得演奏出的音乐更加精准。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

调号-音乐上指用以确定乐曲主音高度的符号。

很明显一个八度就有12个半音。

A、B、C、D、E、F、G。

经过声学家的研究,全世界都用这些字母来表示固定的音高。

比如,A这个音,标准的音高为每秒钟振动440周。

升C调:1=#C,也就是降D调:1=BD;277(频率)
升D调:1=#D,也就是降E调:1=BE;311
升F调:1=#F,也就是降G调:1=BG;369
升G调:1=#G,也就是降A调:1=BA;415
升A调:1=#A,也就是降B调:1=BB。

466,
C 262 #C277
D 294 #D(bE)311
E 330
F 349 #F369
G 392 #G415
A 440. #A466
B 494
所谓1=A,就是说,这首歌曲的“导”要唱得同A一样高,人们也把这首歌曲叫做A调歌曲,或叫“唱A调”。

1=C,就是说,这首歌曲的“导”要唱得同C一样高,或者说“这歌曲唱C调”。

同样是“导”,不同的调唱起来的高低是不一样的。

各调的对应的标准频率为:
单片机演奏音乐时音调和节拍的确定方法
经常看到一些刚学单片机的朋友对单片机演奏音乐比较有兴趣,本人也曾是这样。

在此,本人将就这方面的知识做一些简介,但愿能对单片机演奏音乐比较有兴趣而又不知其解的朋友能有所启迪。

一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能象电子琴那样能奏出多种音色的声音。

因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和“节拍”。

音调表示一个音符唱多高的频率,节拍表示一个音符唱多长的时间。

在音乐中所谓“音调”,其实就是我们常说的“音高”。

在音乐中常把中央C上方的A音定为标准音高,其频率f=440Hz。

当两个声音信号的频率相差一倍时,也
即f2=2f1时,则称f2比f1高一个倍频程, 在音乐中1(do)与
.
1,2(来)与
.
2……
正好相差一个倍频程,在音乐学中称它相差一个八度音。

在一个八度音内,有12个半音。

以1—i八音区为例,12个半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。

这12个音阶的分度基本上是以对数关系来划分的。

如果我们只要知道了这十二个音符的音高,也就是其基本音调的频率,我们就可根据倍频程的关系得到其他音符基本音调的频率。

知道了一个音符的频率后,怎样让单片机发出相应频率的声音呢?一般说来,常采用的方法就是通过单片机的定时器定时中断,将单片机上对应蜂鸣器的I/O口来回取反,或者说来回清零,置位,从而让蜂鸣器发出声音,为了让单片机发出不同频率的声音,我们只需将定时器予置不同的定时值就可实现。

那么怎样确定一个频率所对应的定时器的定时值呢?以标准音高A为例:
A的频率f = 440 Hz,其对应的周期为:
T = 1/ f = 1/440 =2272μs
由上图可知,单片机上对应蜂鸣器的I/O口来回取反的时间应为:
t = T/2 = 2272/2 = 1136μs
这个时间t 也就是单片机上定时器应有的中断触发时间。

一般情况下,单片机奏乐时,其定时器为工作方式1,它以振荡器的十二分频信号为计数脉冲。

设振荡器频率为f 0,则定时器的予置初值由下式来确定:
t = 12 *(T ALL – T HL )/ f 0
式中T ALL = 216 = 65536,T HL 为定时器待确定的计数初值。

因此定时器的高低计数器的初值为:
TH = T HL / 256 = ( T ALL – t* f 0/12) / 256 TL = T HL % 256 = ( T ALL – t* f 0/12) %256 将t=1136μs 代入上面两式(注意:计算时应将时间和频率的单位换算一致),即可求出标准音高A 在单片机晶振频率f 0=12Mhz ,定时器在工作方式1下的定时器高低计数器的予置初值为 :
TH 440Hz = (65536 – 1136 * 12/12) /256 = FBH TL 440Hz = (65536 – 1136 * 12/12)%256 = 90H
根据上面的求解方法,我们就可求出其他音调相应的计数器的予置初值。

音符的节拍我们可以举例来说明。

在一张乐谱中,我们经常会看到这样
的表达式,如1=C
44、1=G 4
3
…… 等等,这里1=C,1=G 表示乐谱的曲调,和我们前面所谈的音调有很大的关联,44、43就是用来表示节拍的。

以4
3
为例加以说明,
它表示乐谱中以四分音符为节拍,每一小结有三拍。

比如:
其中1 、2 为一拍,3、4、5为一拍,6为一拍共三拍。

1 、2的时长为四分音符的一半,即为八分音符长,3、4的时长为八分音符的一半,即为十六分音符长,5的时长为四分音符的一半,即为八分音符长,6的时长为四分音符长。

那么一拍到底该唱多长呢?一般说来,如果乐曲没有特殊说明,一拍的时长大约为400—500ms 。

我们以一拍的时长为400ms 为例,则当以四分音符为节拍时,四分音符的时长就为400ms ,八分音符的时长就为200ms ,十六分音符的时长就为100ms 。

可见,在单片机上控制一个音符唱多长可采用循环延时的方法来实现。

首先,
我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序,依次类推。

通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏音乐了。

具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数……,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。

另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。

下面给出部分音符(三个八度音)的频率以及以单片机晶振频率f0=12Mhz,定时器在工作方式1下的定时器高低计数器的予置初值:。

相关文档
最新文档