脉冲,只要算出某一音频的脉冲(1频率),然后将此周期除以2,即为
半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的IO反相,然后重复计时此半周期的时间再对IO反相,就可以在IO脚上得到此频率的脉冲。
(2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下
例如,频率为523Hz,其周期天523S1912uS,因此只要令计数器计时956uS1us956,在每计数956次时就将IO反接,就可得到中音DO(532Hz)。
计数脉冲值与频率的关系公式如下:
NFi2Fr(N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率)
(3)其计数值的求法如下:
T65536N65536Fi2Fr计算举例:设K65536F1000000Fi1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。
T65536N65536Fi2Fr6553610000002Fr65536500000Fr低音DO的T6553650000026263627中音DO的T6553650000052364580高音DO的T65536500000104765059
(4)C调个音符频率与计数值T的对照表如下表所示:
音符频率(Hz)简谱码(T值)音符频率(Hz)简谱码(T值)
低1DO262
63628
4FA740
64860
1DO277
63731
中5SO784
64898
低2RE294
63835
5SO831
64923
2RE311
63928
中6LA880
64968
低3M330
64103
6
932
64994
低4FA349
64103
中7SI988
65030
4FA370
64260
高1DO1046
65058
低5SO392
64260
1DO1109
65085
5SO415
64331
高2RE1175
65110
低6LA440
64400
2RE1245
65124
6
466
64463
高3M1318
65157
低7SI494
64524
高4FA1397
65178
中1DO523
64580
4FA1480
65198
(5)每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,
下表为节拍码的对照。但如果1拍为04秒,14拍是01秒,只要设定延迟时间就可求得节
3
f拍的时间。假设14节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得14拍的DELAY时间,其余的节拍就是它的倍数,如下表为14和18节拍的时间设定。
(6)移调一般的歌曲,有38、24、34、44等节拍类型,但不管有几拍,基本上是在C调下演奏的。如果是C调,则音名C唱Do,音名D唱Re,音名E唱Mi,音名E唱Mi,音名F唱Fa,音名G唱So,音名A唱La,音名B唱Ti等。但是,并不是所有的歌曲都是在C调下演奏的,还有D调、E调、F调、G调等。D调是将C调各音符上升一个频率实现的,即C调下的音名D在D调下唱Do,C调下的音名E在D调下唱Re,C大调的音名F在D调下上升高半音符F唱Mi,C调下的音名G在D调下唱Fa,C调下的音名C在D调r