低4FA 349 64204 中7SI 988 65030
#4FA# 370 64260 高1DO 1046 65058
低5SO 392 64261 #1DO# 1109 65085
#5SO# 415 64400 高2RE 1175 65110
低6LA 440 64443 #2RE# 1245 65124
#6LA# 466 64524 高3M 1318 65157
低7SI 494 64524 高4FA 1397 65178
中1DO 523 64331 #4FA# 1480 65189
每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍。如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数。节拍码的对照表如下表3所示。
表3 节拍码对照表
1/4节拍 1/8节拍
节拍码 节拍数 节拍码 节拍数
1 1/4拍 1 1/8拍
2 2/4拍 2 1/4拍
3 3/4拍 3 3/8拍
4 1拍 4 1/2拍
5 1又1/4拍 5 5/8拍
6 1又1/2拍 6 3/4拍
7 1又3/4拍 7 7/8拍
8 2拍 8 1拍
9 2又1/4拍 9 1又1/8拍
A 2又1/2拍 A 1又1/4拍
B 2又3/4拍 B 1又3/8拍
C 3拍 C 1又1/2拍
D 3又1/4拍 D 1又5/8拍
E 3又1/2拍 E 1又3/4拍
F 3又3/4拍 F 1又7/8拍
各曲调节拍的设定时间如表4所示。
表4 各调节拍的时间设定表
1/4节拍 1/8节拍
曲调值 DELAY 曲调值 DELAY
调4/4 125毫秒 调4/4 62毫秒
调3/4 187毫秒 调3/4 94毫秒
调2/4 250毫秒 调2/4 125毫秒
音乐代码库的建立方法:先找出乐曲的最低音和最高音范围,然后确定音符表T的顺序。再把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。音符节拍码00H为音乐结束标记。
3.6 LCD显示汉字和图像编码
本系统采用的是12864液晶显示器,内部不自带字库,所以汉字、图形的代码都需要自己编写,在此,我们采用字模提取软件V2.2来完成。汉字代码的提取比较简单,打开软件,右下方的有三个选项框,我们选择文字输入部分,输入自己要获取的汉字,然后进行取模,因为本系统的程序设计采用的是C语言,所以取模方式选取C51格式[15]。然后,在右下方的点阵生成区就获得所要汉字的代码了。图像代码的获取相对复杂些,但是借助画图板也不是很麻烦。打开画图板,可以新建自己编辑图片,或者把已有的图片复制到画图板,然后选择“图像”下的“属性”,设置像素的宽度为128,高度为64。然后再编辑图片,做适当的修改,再保存,图片要保存为bmp格式,因为字模提取软件的图片类型识别是受限制的。然后通过打开图像图标打开刚才在画图板里编辑后保存的图片,C51取模方式取模,就可以获取相应的图片编码。 AT89C55单片机的数字音乐盒设计+仿真图+电路原理图+源码 (7):http://www.751com.cn/zidonghua/lunwen_1331.html