用单片机演奏音乐大概是每一个单片机爱好者都感兴趣的一个问题。在这节课中我们将要学习如何实现它。希望通过这个一个有趣的问题的解决进一步培养大家对单片机的兴趣,同时加深大家所学知识的理解以及逐步形成综合应用所学知识的能力。同时希望通过我的展示,同学们能从中体会解决问题的方法并把它应用到以后的学习、工作中。好吧,让我们开始。
一、 问题描述
利用单片机的I/O功能,外接一个蜂鸣器,使它发出一段简单的音乐。
二、 分析问题
也许刚听到这个问题,大家第一感觉就是太难了,我不可能做得出来。但是我告诉你们,你错了,其实你们都可以做到。为什么我敢这么说呢?因为其中用到的知识你们都已经学过或者知道的很基本的知识。那么你们欠缺的是什么呢?思考!分析问题。你们凭直觉的认为难。好吧,让我们来分析一下问题,看看到底难不难:
思路:任何一个复杂的问题我们都可以顺着大而化小,分而治之的思路去解决它。
首先任何一个单片机系统的设计都分为两个方面:如何连接硬件、软件编制。因此我们根据问题的特点从这两个方面来讨论:
1. 硬件设计
摆在我们面前的首要问题是:为了让单片机唱歌需要什么样的元器件?然后是:单片机唱歌的基本原理是什么?如何连接我们选择的元件?
一、 需要什么关键元件:单片机和蜂鸣器
二、 单片机唱歌的基本原理:
首先回顾,什么是声音呢?声音是空气的振荡,不同的振荡频率我们就可以听到不同声调的声音。音的频谱范围约在几十到几千赫兹。
其次,如何让蜂鸣器发声?蜂鸣器有很多种类,但大致分为两类:有源式(直流电就发声,但频率单一);有源式(根据输入方波频率而发出不同的声音)。
我们选择哪一类的蜂鸣器?——无源式!
好了,在上面这些基本问题解决后,现在应该可以想到让单片机唱歌的基本原理了。利用程序来控制单处机某个口线出一定频率的方波到蜂鸣器,蜂鸣器就可以发出一定音调的声音,若再利用不同的延时程序改变输出频率,就可以改变音调,进而就可让单片机发出“1”、“2”,“3”,“4”,“5”,“6”,“7”的音乐。
单片机输出方波的方法我们已经知道了——控制口线“高”、“低”电平的持续时间。于是设计电路如下:
好了,我们完成了硬件设计,简单吗?下面我们来看软件设计。