清清嗓子,让单片机先唱一个调试试:
上一节
下一节
接着我们让蜂鸣器唱一个乐音的音调,并按给定的音长唱出来。就像一个曲谱,包含一系列的音调和每个音调的音长。这里我们为让单片机唱出一段歌曲做好程序设计基础。
在前一个案例,我们能让单片机发音,这里我们会给出音乐的乐音,其实每个乐音也都对应有各自的频率。不过在本节的案例设计中还要控制发音的音长,也就是发音延续的时间长度。当然要用到定时器来控制。对于这个功能的设计,结合前面按键的长短按的识别也是类似的,当然也可以用另外一个定时器来控制发音长度。大家按照这个思路先作些设计和调试,然后结合本节的视频讲解做些总结和分析。
仿真调试可用前一节提供的电路。
在本节的案例中,我们为每个乐音建立了一个定时器的初始值表,在使用的时候直接查表的方式装入定时器初值寄存器就可以了,使用起来很方便。对于发音时长的控制,这里使用了另外一个定时器,做定时时长累计并完成音调发音的停止TR0控制。程序结构和任务分工比较清晰。大家可以尝试调整音调和音长参数感受输出发声的效果。
在下一节,基于本讲的案例,我们就可以继续让单片机唱出优美的歌声了。

