碧波液压网 欢迎你,游客。 登录 注册

基于Proteus的单片机演奏音乐的实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  当前的很多用单片机实现音乐演奏的系统都是利用开发板结合仿真器实现的,这种方法不是很复杂,实现也较方便,但是调试不是很方便,且成本也较高。 本文提出的一种基于Proteus 的单片机演奏音乐的方法,非常简单实用,且该方法基于软件来实现的,所以成本非常低,调试方便,效果也很不错,适合于爱好音乐的单片机学习者。 单片机系统的设计分两大部分:硬件设计部分和软件设计部分。

  1 硬件设计

  硬件部分比较简单,如果在开发板上做实验可仿下面图1 电路连接。

  AT89C51 单片机的P2.5 口控制一个8550 的三极管,三极管控制电磁蜂鸣器的电源通断。

  如果用Proteus 软件来仿真的话,电路更加简单,见图2。

  

图2 在Proteus 环境下用单片机控制蜂鸣器发声的原理图。

  需要的关键元件:单片机和蜂鸣器。

  为了便于软件编程,先要了解单片机唱歌的基本原理。

  什么是声音呢?声音是空气的振荡,不同的振荡频率我们就可以听到不同声调的声音。 音的频谱范围约在几十到几千赫兹。

  其次,如何让蜂鸣器发声?蜂鸣器有很多种类,但大致分为两类:有源式(直流电就发声,但频率单一);无源式(根据输入方波频率而发出不同的声音)。 这里选择无源式蜂鸣器。

  单片机唱歌的基本原理:利用程序来控制单处机某个口线出一定频率的方波到蜂鸣器,蜂鸣器就可以发出一定音调的声音,若再利用不同的延时程序改变输出频率,就可以改变音调,进而就可让单片机发出"1"、"2","3","4","5","6","7"的音乐。

  2 软件设计

  通过软件延时或者定时器延时来的方式以不同频率改变口线的的高低电平状态来实现的。 如果只是让蜂鸣器发声这已经够了。 但是我们要的是唱歌,所以还有一些工作需要作。

  2.1 音调

  输出不同频率的方波,以实现1、2、3、4 等的不同音调;比如,发出200HZ 的音频,其周期为1/200s,即5ms. 这样,当 P2.5 的高电平或低电平的持续时间为2.5ms 时,就能发出200HZ 的音调。 我们可以写一个延时子程序,用R3 来提供参数,R3=1 时,延时为20us,那么R3 取2500/20=125(7DH)时,就可以发出200Hz 的音调,提供不同的R3 常数,可以得到不同的音调变化。

  利用通用发声程序可以编写乐曲演奏程序,乐曲是按照一定的高低,长短和强弱的关系组成的音调,在一首乐曲中,每音符的音高和音长与频率和节拍有关(如图3 所示)。

  

图3 音符的音高和音长与频率的关系

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论