DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 357|回复: 0
打印 上一主题 下一主题

让单片机唱歌(2)

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:47:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
     
[table]


二.节拍[/td]
[/td]
[/td]
[/td]
[/td]
[/td][/tr]

[/td][/tr]

(一)  相关知识[/td][/tr]

每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,表2为节拍与节拍码的对照.如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间.假设1/4拍为1delay,则1拍应为4delay,以此类推.所以只要求得1/4拍的delay时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定.[/td][/tr]

[/td]
                     表2   节拍与节拍码对照[/td]
[/td]
[/td]
[/td][/tr]

节  拍  码[/td]
节  拍  数[/td]
节  拍  码[/td]
节  拍  数[/td][/tr]

1[/td]
1/4 拍[/td]
1[/td]
1/8 拍[/td][/tr]

2[/td]
2/4 拍[/td]
2[/td]
1/4 拍[/td][/tr]

3[/td]
3/4 拍[/td]
3[/td]
3/8 拍[/td][/tr]

4[/td]
1 拍[/td]
4[/td]
1/2 拍[/td][/tr]

5[/td]
1又1/4 拍[/td]
5[/td]
5/8 拍[/td][/tr]

6[/td]
1又1/2 拍[/td]
6[/td]
3/4 拍[/td][/tr]

8[/td]
2 拍[/td]
8[/td]
1 拍[/td][/tr]

a[/td]
2又1/2 拍[/td]
a[/td]
1又1/4 拍[/td][/tr]

c[/td]
3 拍[/td]
c[/td]
1又1/2 拍[/td][/tr]

f[/td]
3又3/4 拍[/td]
 [/td]
 [/td][/tr]

[/td]
                表3   各调1/4节拍的时间设定      各调1/8节拍的时间设定[/td]
[/td][/tr]

曲  调  值[/td]
delay[/td]
曲  调  值[/td]
delay[/td][/tr]

调 4/4[/td]
125 毫秒[/td]
调 4/4[/td]
62 毫秒[/td][/tr]

调 3/4[/td]
187 毫秒[/td]
调 3/4[/td]
94 毫秒[/td][/tr]

调 2/4[/td]
250 毫秒[/td]
调 2/4[/td]
125毫秒[/td][/tr]



三. 编码[/td][/tr]

建立音乐的步骤:[/td][/tr]

        1.   先把乐谱的音符找出,然后由表63建立t值表的顺序.   [/td][/tr]

        2.  把t值勤表建立在table1,构成发音符的计数值放在"table".[/td][/tr]

        3.  简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的"table"处. [/td][/tr]

[/td]
                表4   简谱对应的简谱码.t值. 节拍数[/td]
[/td]
[/td][/tr]

简  谱[/td]
发  音[/td]
简  谱  码[/td]
t  值[/td]
节  拍  码[/td]
节  拍  数[/td][/tr]

5[/td]
低音 so[/td]
1[/td]
64260[/td]
1[/td]
1/4 拍[/td][/tr]

6[/td]
低音 la[/td]
2[/td]
64400[/td]
2[/td]
2/4 拍[/td][/tr]

7[/td]
低音 ti[/td]
3[/td]
64524[/td]
3[/td]
3/4 拍[/td][/tr]

1[/td]
中音 do[/td]
4[/td]
64580[/td]
4[/td]
1 拍[/td][/tr]

2[/td]
中音 re[/td]
5[/td]
64684[/td]
5[/td]
1又1/4 拍[/td][/tr]

3[/td]
中音 mi[/td]
6[/td]
64777[/td]
6[/td]
1又1/2 拍[/td][/tr]

4[/td]
中音 fa[/td]
7[/td]
64820[/td]
8[/td]
2 拍[/td][/tr]

5[/td]
中音 so[/td]
8[/td]
64898[/td]
a[/td]
2又1/2 拍[/td][/tr]

6[/td]
中音 la[/td]
9[/td]
64968[/td]
c[/td]
3 拍[/td][/tr]

7[/td]
中音 ti[/td]
a[/td]
65030[/td]
f[/td]
3又3/4 拍[/td][/tr]

1[/td]
高音 do[/td]
b[/td]
65058[/td]
[/td]
[/td][/tr]

2[/td]
高音 re[/td]
c[/td]
65110[/td]
[/td]
[/td][/tr]

3[/td]
高音 mi[/td]
d[/td]
65157[/td]
[/td]
[/td][/tr]

4[/td]
高音 fa[/td]
e[/td]
65178[/td]
[/td]
[/td][/tr]

5[/td]
高音 so[/td]
f[/td]
65217[/td]
[/td]
[/td][/tr]

 [/td]
不发音[/td]
0[/td]
 [/td]
[/td]
[/td][/tr]

1/4拍的延迟时间=187毫秒[/td]
[/td]
[/td]
[/td]
[/td][/tr]

delay:     mov  r7.  #02[/td][/tr]

d2:             mov  r4.  #187[/td][/tr]

d3:             mov  r3.  #248[/td][/tr]

                   djnz  r3. $[/td][/tr]

                   djnz  r4. d3[/td][/tr]

                   djnz  r7. d2[/td][/tr]

                   djnz  r5. delay[/td][/tr]

                   ret[/td][/tr]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-9-12 03:35 , 耗时 0.080355 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表