李健,陈银
(巢湖学院 电子工程学院,安徽合肥,238000)
随着我国经济快速发展,人民的生活质量逐步提高,娱乐产品走入千家万户。电子琴等电子产品的诞生,丰富了业余生活,让人民的生活多姿多彩[1]。电子琴是现代电子技术应用于音乐而制作的电子乐器[2]。单片机高具有强大的控制及逻辑运算功能,以单片机为核心的电器设备已融入人们的日常生活中,如电视机、电冰箱、洗衣机、DVD、汽车音响等[2]。本文利用一款性价比高的单片机STC89C52作为核心控制器,设计制作一种带有21键,且能显示音符、指示高中低音的电子琴。该电子琴系统具有电路结构简单、音符种类较多、易操作、成本低等优点,可以作为低龄儿童培养音乐兴趣的玩具来用。
电子琴整体方案框图如图1所示,系统以STC89C52单片机为核心,外围配置了3×7矩阵键盘电路、数码管音符显示电路、LED高中低音指示电路和扬声器发声电路等,主要工作流程为:有按键按下,单片机识别后通过扬声器发出与该按键对应的音符的声音,同时有一个数码管显示当前音符,还有对应的LED指示当前发出的是高音、中音还是低音。
系统设计过程采用了Proteus软件绘制仿真电路,采用Keil软件编写代码,在计算机上仿真通过后,再设计制作了实物电路加以调试验证。
系统采用了性价比高的单片机STC89C52作为核心控制器,图2为单片机最小系统组成,是单片机正常工作需要配置的,包括晶体振荡器构成的时钟电路、按键复位电路,还有P0口接了上拉排阻,此外还要提供电源,但Proteus软件中单片机默认供给了电源,所以图中无需画出(图中选用的AT89C51单片机与实际采用的STC89C52是兼容的)。
电子琴必然少不了按键电路,按键用于弹奏出各种不同的音调。本系统中设计了3×7的矩阵键盘电路,如图3所示,第一行7个按键代表低音的do~si,第二行7个按键代表中音的do~si,第三行7个按键代表高音的do~si。
矩阵键盘的三行分别接至单片机的P2.5~P2.7引脚,七列分别接至单片机的P1.0~P1.6引脚。
音符显示与音调高低指示电路如图4所示,当某个按键按下时,通过一个共阳型数码管显示对应的音调符号,上电显示0,当按键按下时,显示的1~7分别对应音调的do~si。同时为了显示音调的高低,采用三个不同颜色的LED进行指示,绿色代表低音,蓝色代表中音,红色代表高音。
七段数码管按顺序接至单片机的P0.0~P0.6,三个LED接至P3.0、P3.4和P3.5。
按键按下后,单片机通过控制三极管通断,驱动扬声器发出对应的音调,如图5所示,NPN三极管的基极接至单片机的P3.7引脚。
设计好各个模块电路后,将之组合成的整个电子琴系统的仿真电路如图6所示。
本系统所需的程序采用C语言在Keil软件中编程实现。系统产生不同音调的原理是:单片机在12 MHz的时钟频率下工作,利用它的定时器T0中断、工作方式1(16位定时器工作模式),通过改变定时器TH0、TL0的计数初值,产生不同频率的脉冲信号来模拟实际各种不同的音调,各种音符音调的频率和计数初值如表1所示。
表1 各种音符的频率及其对应的定时初值
系统程序主要包括按键的识别、定时器初值的修改和定时、数码管音符数字的显示和LED的亮灭、利用定时器产生的不同频率的脉冲控制三极管通断来驱动扬声器发出不同频率的声音等几部分。系统程序流程图如图7所示。
按照前面的电路设计,在Proteus软件中搭建好仿真电路,且编写好代码后运行,经过反复调试得到正确的结果如图8所示:按下低音3(mi)键,数码管显示数字3,低音的绿色LED点亮,同时扬声器发出对应的声音。
系统仿真通过后,在此基础上设计实际的电路原理图如图9所示,与仿真电路基本一致,部分位置做了一定的修改以达到更好的效果;再焊接制作实际电路,并经过调试得到运行后的实物如图10所示(图中按键3按下后已松手,数码管显示的数字不变,但音调指示LED不再亮,同时停止发出声音)。
本文介绍了一款带有21个按键,以数码管显示音符、LED指示音调高低,通过扬声器发出常规乐曲声音的电子琴设计过程,其以51单片机为核心,整体电路结构简单、功能较为齐全、性价比高,经过软硬件设计和反复调试,最终实现了预期的效果,能弹奏出各种音调的声音。