基于单片机的音乐盒设计课程设计说明书(编辑修改稿)内容摘要:

种高效微控制器, AT89C51 是它的一种精简版本。 AT89C51 单片机为很多 嵌入式控制 系统提供了一种灵活性高且价廉的方案。 外形及引脚排列如图 所示。 图 AT89C51 原理图 LED 显示电路 本次课程设计的显示电路采用 LED 数码管显示, LED有单个 LED 和八段 LED之分,也有共阴和共阳两种。 本次设计采用共阳极。 由于 LED 是属于电流控制器件,使用时必须加限流电阻。 通过单片机查表得出数码管显示编码,传送给数码管显示,以此来实现按键与显示程序的一致性。 时钟振荡电路 AT89C51 中有一个用于构成内 部振荡器的高增益反相放大器,引脚 XTAL1和 XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。 外接石英晶体及电容 C C2接在放大器的反馈回路中构成并联振荡电路。 对外接电容 C1, C2 虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。 如果使用石英晶体,我们推荐电容使用30PF 10PF,而如果使用陶瓷振荡器建议选择 40PF 10PF。 用户也可以采用外部时钟。 这种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入X TA L218X TA L119A LE30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /INT 012P 3 .3 /INT 113P 3 .4 /T 014P 3 .7 /R D17P 3 .6/W R16P 3 .5 /T 115P 2 .7 /A 1528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1023P 2 .3 /A 1124P 2 .4 /A 1225P 2 .5 /A 1326P 2 .6 /A 1427U1A T8 9 C5 1 6 端, XTAL2 则悬空。 由于外部时钟信号是通过一个 2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 振荡器电路图如 图 所示。 按键电路 按键电路 设有两个按键,按键 S1 控制音乐盒的选曲,每按一下系统将播放下一首歌曲,全部歌曲播放完会重新回到第一首歌曲;按键 S2 控制音乐盒的暂停与播放 ,两个按键均设为高电平有效。 按键电路如图 所示。 复位电路 为了防止程序运行错误,系统加入了一个复位电路,必要时或者需要程序从头开始时,可以按下复位键,使程序从头开始运行。 复位电路如图。 硬件电路图及其功能 总体硬件电路实现功能如下,如图 所示 ( 1) 电路中用 、。 ( 2) ~ LED。 ( 3) 控制蜂鸣器。 ( 4) 电路为 12MHZ 晶振频率工作,起振电路中 C C2 均为 30PF。 X T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 .01P 1 .12P 1 .23P 1 .34P 1 .45P 1 .56P 1 .67P 1 .78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 /R D17P 3 .6 /W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 /A 821P 2 .1 /A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 1C13 0 p FC23 0 p FX1L S 1S O UN D E RC31uF 图 硬件电路图 时钟振荡电路 复位电路 LED 显示电路 按键电路 7 3 软件 设计 程序流程图 程序流程图如 图 所示。 音调、节拍以及编码的确定方法 一般说来,单片机演奏音乐基本都是单音频率,它不包含相应幅度的谐波频率,也就是说不能像电子琴那样能奏出多种音色的声音。 因此单片机奏乐只需弄清楚两个概念即可,也就是“音调”和节拍表示一个音符唱多长的时间。 不同音高的乐音是用 C、 D、 E、 F、 G、 A、 B来表示,这 7个字母就是音乐的音名,它们一般依次唱成 DO、 RE、 MI、 FA、 SO、 LA、 SI,即唱成简谱的 7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的 发音,所以叫“音调”,即 Tone。 把 C、 D、 E、 F、 G、 A、B这一组音的距离分成 12 个等份,每一个等份叫一个“半音”。 两个音之间的距离有两个“半音”,就叫“全音”。 在钢琴等键盘乐器上, C– D、 D– E、F– G、 G– A、 A– B两音之间隔着一个黑键,他们之间的距离就是全音; E– F、 B– C 两音之间没有黑键相隔,它们之间的距离就是半音。 通常唱成 7 的音叫自然音,那些在它们的左上角加上﹟号或者 b号的叫变化音。 ﹟叫升记号,表示把音在原来的基础上升高半音, b叫降记音,表示在原来的基础上降低半音。 例如高 音 DO 的频率( 1046Hz)刚好是中音 DO的频率( 523Hz)的一倍,中音 DO的频率( 523Hz)刚好是低音 DO 频率( 266 Hz)的一倍;同样的,高音RE 的频率( 1175Hz)刚好 是中音 RE 的频率( 587Hz)的一倍,中音 RE的频率( 587Hz)刚好是低音 RE 频率( 294 Hz)的一倍。 图 ( 1) 要产生音频脉冲,只要算出某一音频的周期( 1/频率),然 后将此周期除以 2,即为半周期的时间。 利用定时器计时这半个周期时间,每当计时到后就 8 将输出脉冲的 I/O反相,然后重复计时此半周期时间再对 I/O反相,就可在 I/O脚上得到此频率的脉冲。 ( 2) 利用 AT89C51 的内部定时器使其工作在计数器模式 MODE1 下,改变计数值 TH0 及 TL0 以产生不同频率的方法。 此外结束符和休止符可以分别用代码 00H 和 FFH来表示,若查表结果为 00H,则表示曲子终了;若查表结果为 FFH,则产生相应的停顿效果。 ( 3) 例如频率为 523Hz,其周期 T=1/523=1912us,因此只要令计数 器计时956us/1us=956,在每次技术 956次时将 I/O 反相,就可得到中音 DO( 523Hz)。 计数脉冲值与频率的关系公式如下: N=Fi 2 Fr N:计算值; Fi:内部计时一次为 1us,故其频率为 1MHz; ( 4) 其计数值的求法如下: T=65536N=65536Fi 2 Fr 例如:设 K=65536, F=1000000=Fi=1MHz,球低音 DO( 261Hz)。 中音 DO( 523Hz)。 高音的 DO( 1046Hz)的计算值 T=65536N=65536Fi 2 Fr=655361000000 2 Fr=65536500000/Fr 低音 DO的 T=65536500000/262=63627 低音 DO的 T=65536500000/523=64580 低音 DO的 T=65536500000/1047=65059 ( 5) C调各音符频率与计数值 T的对照表如表。 表 C 调各音符频率与计数值 T 的对照表 低音 频率 T 参数 中音 频率 T 参数 高音 频率 T 参数 Do 262 1908 229 Do 523 956 115 Do 1046 57 57 Do﹟ 277 1805 217 Do﹟ 554 903 108 Do﹟ 1109 54 54 Re 294 1701 204 Re 587 852 102 Re 1175 51 51 Re﹟ 311 1608 193 Re﹟ 622 804 97 Re﹟ 1245 48 48 Mi 330 1515 182 Mi 659 759 91 Mi 1318 45 45 Fa 349 1433 172 Fa 698 716 86 Fa 1397 43 43 Fa﹟ 370 1351 162 Fa﹟ 740 676 81 Fa﹟ 1480 41 41 So 392 1276 153 So 784 638 77 So 1568 38 38 So﹟ 415 1205 145 So﹟ 831 602 72 So﹟ 1661 36 36 La 440 1136 136 La 880 568 68 La 1760 34 34 La﹟ 464 1078 129 La﹟ 932 536 64 La﹟ 1865 32 32 Si 494 1012 121 Si 988 506 61 Si 1976 30 30 若要构成音乐,光有音调是不够的,还需要节拍,让音乐具有旋律(固定的律动),而且可以调节各个音的快满度。 “节拍 ” ,即 Beat,简单说就是打拍子, 9 就像我们听音乐不自主的随之拍手 或跺脚。 若 1拍实 ,则 1/4 拍为。 至于 1拍多少 s,并没有严格规定,就像人的心跳一样,大部分人的心跳是每分钟 72 下,有些人快一点,有些人慢一点,只要听的悦耳就好。 音持续时间的长短即时值,一般用拍数表示。 休止符表示暂停发音。 一首音乐是由许多不同的音符组成的,而每个音符对应着不同频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。 了解音乐的一些基础知识,我们可知产生不同频率的音频脉冲即能产生音乐。 对于单片机来说,产生不同频率的脉冲是非常方便的,利用单片机的定时 /计数器来产生 这样的方波频率信号。 因此,需要弄清楚音乐中的音符和对应的频率,以及单片机定时计数的关系。 表 节拍与节拍码对照 节拍码 节拍数 节拍码 节拍数 1 1/4 拍 1 1/8 拍 2 2/4 拍 2 1/4 拍 3 3/4 拍 3 3/8 拍 4 1 拍 4 2/1 拍 5 1 又 1/4 拍 5 5/8 拍 6 1 又 1/2 拍 6 3/4 拍 8 2 拍 8 1 拍 A 2 又 1/2 拍 A 1 又 1/4 拍 C 3 拍 C 1 又 1/2 拍 F 3 又 3/4 拍 每个音符使用 1个字节,字节的高 4位代表音符的高低,低 4位代表音符 的节拍,图。 如果 1 拍为 秒, 1/4 拍实 秒,只要设定延迟时间就可求得节拍的时间。 假设 1/4 拍为 1DELAY,则 1拍应为 4DELAY,以此类推。 所以只要求得 1/4 拍的 DELAY 时间,其余的节拍就是它的倍数,如图 1/4。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。