文档介绍:目录
第1节引言………………………………………………………………………3
单片机发音概述…………………………………………………………3
音调………………………………………………………………… 3
节拍……………………………………………………………………5
………………………………………………6
………………………………………………6
第2节系统的主要硬件电路的设计………………………………………………7
单片机控制系统原理……………………………………………………7
芯片的选用………………………………………………………10
AT89S52演奏音乐系统组成框图…………………………………11
AT89S52演奏系统PROTEI仿真图………………………………11
AT89S52演奏系统PCB图…………………………………………11
单片机主机系统电路……………………………………………………12
时钟频率…………………………………………………………12
晶振电路…………………………………………………………12
音调显示电路……………………………………………………13
发音电路…………………………………………………………13
供电及复位电路…………………………………………………13
系统的软件设计………………………………………………………14
主程序………………………………………………………………14
主程序流程图……………………………………………………14
主程序……………………………………………………………15
结束语……………………………………………………………………20
参考文献.....................................................20
附表………………………………………………………………………21
第1节引言
单片机发音概述
由于单片机的强大功能,除了在测试控制领域中有着广泛的应用外,还有一些而有趣的应用。比如,使用单片机可以驱动蜂鸣器或者扬声器发出声音,还可以控制其发出不同的声调,从而连接起来构成一个曲子。
目前,市场上有很多种音乐模块或者音乐芯片,可以直接产生各种曲子。但是,这种模块价格比较昂贵,电路结构比较复杂。如果系统中仅需要产生简单的音符或者简短的曲子,可以使用单片机配合简单的扬声器而产生需要的音乐效果。
一般说来,单片机不像其他专业乐器那样能奏出多种音色的声音,即不包含相应幅度的谐波频率。单片机演奏的音乐基本都是单音频率。因此单片机演奏音乐比较简单,只需要清楚“音调”和“节拍”。
音调表示一个音符唱多高的频率
节拍表示一个音符唱多长的时间
音调是音乐学中的名词,与平时所说的音高十分相似。在音乐中常把中音C上方的A音定为标准音高,其频率为 f = 440Hz,其余音均与其进行比较。和为两个音符,如果两个音符的频率相差一倍时,即时,则称比
高一个倍频程。
在音乐中音符1(do)与音符ⅰ之间正好相差一个倍频程,在音乐学中称它相差一个八度音。在一个八度音里,有12个半音。以1--ⅰ八音区为例。12个半音是:1--#1,
#1--2,2--#2,#2—3,3—4,4--#4,#4—5,5--#5,#5—6,6--#6,#6—7,7--ⅰ。由于人耳的听觉效果,这12个音节的分度基本上是以对数关系来划分的。只要知道了这12个音符的音高,也就是其基本的音乐的频率,就可以根据音符之间的倍频程关系得到其他音符基本的音调频率。
知道了一个音符的频率后,便可以让单片机发出相应的频率的振荡信号,从而产生相应的音符声音。常采用的方法是通过单片机的定时器进行定时中断,在中断服务子程序中
将单片机上外界扬声器的I/O口来回置高电平或置低电平,从而让扬声器发出声音。为了让单片机发出不同频率音符的声音,只需将定时器预置不同的定时值来实现。
以标准音高A为例:
标准音高A的频率 f=440Hz,其对应的周期为:
(1-1)
因此需要在单片机I/O口输出周期为 T=2272us的方波脉冲,如图1-1所示
图1-1单片机控制音调示意图
由上图可知: 单片机输出高电平和低电平信号均为:
(1-2)
也就是说,单片机上定时器的中断触发时间为1136us。如果单片机采用定时器工作方式1,它以振荡器的十二分频信号为计数脉冲。设外接晶振的振荡器频率为f0,则定时器的预置初值由下式来确定:
(1-3)
式中,Count = =65536, 为定时器待确定的计数初值。因此定时器的高低计数器的初值为