基于单片机的心形声光电子琴设计
2024-01-16朱自立
朱自立
(郑州工业应用技术学院,河南郑州,451150)
1 研究现状及发展状况
由于尺寸紧凑、性能卓越、成本实惠,单片机已被普遍采纳,并在中国的各个行业中都有所应用。目前,它主要被用于通信、家庭娱乐、LCD 显示器等行业,未来,由它开创的新型产品将更加普及。对于一名准备从事电子行业的工作者来说,深入研究并熟练操控单片机的运行原理及操作方法,将成为他们获取高级职位的重要一步。
本设计的主要内容是制作一个精美的电子琴。经过研究发现,89C51 单片机可以有效地取代传统电子琴,它可以提供更多复杂、更丰富、更灵活的控制功能,从而使得它可以更好地表达出声、光、力等多种元素,从而更好地满足人们演出需求。随着声音和触摸屏的持续改进,电子琴将逐渐进入市场。第四代电子计算机,即单片微型计算机,已经取得了巨大的进步,其优势在于拥有更强的功率、更快的运行速率、更小的尺寸、更便宜的价格、更强的稳定性和更多的适用范围。随着单片机的普及,其对于传统的控制技术的影响将会彻底改变,这也使得其在高新技术及工业界的广泛使用受到了极大的关注[1]。
2 系统硬件设计方案
■2.1 系统总体框架
这个设计通过LED 小灯来控制灯光的变化,并通过扬声器来播放音乐。它的电路由键盘、单片机和LED 显示电路组成,并配备了声音电路。详细的功能说明请参见下面的内容。
(1)键盘是一种用来演奏音乐的工具,它有八个按键,可以演奏8 个音阶。
(2)单片机可以通过发送多种电脉冲信号来控制各个组件的运行状态。
(3)由于单片机的存储功能,LED 显示屏上的数据被转换成可读的格式,而LED 小灯则将这些格式转换成可以被扬声器捕捉的语言。
单片机可以通过程序设计实现对音符输入信号的读取,从而产生音频脉冲。CPU 可以根据读取的数据,对其进行处理,并通过I/O 口将音乐以高质量的音频格式传输到扬声器,从而实现音乐的高清晰度和高质量的传输[2]。
图1 系统整体框图
■2.2 控制器选择方案
方案1:采用凌阳系列单片机作为系统的控制器,可以有效地提升系统的性能和可靠性。
凌阳系列单片机具备出色的性能,其内置的模块尺寸小巧,而且结构紧凑,使得整个系统的稳定性得到极大的改善,同时也极易于组装,使其具备更强的抗干扰性,因此,凌阳系列单片机非常适用于大型实时系统的控制。
方案2:采用51 系列作为系统控制器,可以有效地提升系统的性能和可靠性。
单片机具有出色的计算能力,它的软件编写非常灵活,具有很高的自主权。它具有许多独有的特征,如节省电力、轻巧、高效、经济、耐久,因此被广泛地应用到不同的行业[3]。
由于51 单片机的价格比凌阳系列更加实惠,而且本设计不需要极快的处理能力,因此,在经济性和实用性的双重考量下,我们最终选择了方案2。
3 系统硬件设计
■3.1 单片机最小系统
由于最小系统的重要性,它不仅仅只有一个单片机芯片,而且还有许多关键的组件,如电源、时钟、复位,它们都起到了至关重要的作用,保证了该系统的安全和高效率。此外,它还具备极大的弹性,可以实现多种不同的任务,比如存储、A/D、网络、多媒体、多任务调度、多任务管理、多任务调度、多任务调度。
STC89C51 拥有一种高增益反相放大,它能够将振荡器的信号转换为电信号,其中RXD 引脚连接到振荡器的输入,而TXD 引脚连接到振荡器的输出。该放大器的时钟系统也能够通过内置的或者外置的方法实现。根据图2,RXD 与TXD 之 间 的 连接是通过外部的振荡器实现的,而且不需要考虑其他因素,仅需确保其中的脉冲宽度,通常会选择12MHz 以上晶振[4]。
图2 总电路图
STC89C51 单片机的RST 引脚被激活后,将会进入高电平状态,这种状态会维持2 个机器周期,如果该引脚一直处于高电平状态,则会进入循环复位状态。
电路复位通常有两种选择:自动重置或者按键重置。
在最基本的上电自动复位电路中,电容充放电是一种重要的操作,它可以有效地控制Vcc 的上升速度,使其保持在1ms 以内,从而达到自动上电复位的目的。
在这种情况下,我们采用了按键手动复位技术。这种技术可以通过两种方式实现:电平复位和脉冲复位。其中,电平复位需要RST(9)端与电源Vcc 相连。根据图2,采用11.0592MHz 的时钟频率,将C 设置为10μF,将R 设置为10kΩ,以实现按键手动复位功能。
■3.2 发声模块
该部分为设计最主要的部分。
在此次设计的电路中,CS9013 和其他两个NPN 型号的三极管被认为是至关重要的,因为它们可以将单片机的噪声信号进行放大和输出。为了确保CS9013 的可靠性,我们采取了一系列的检测措施,包括检查其引线,检查其可靠性,检测其可靠性,检测其可靠性,从而确保其正常工作[5]。
(1)通过使用NPN 型号的三极管,使用一个黑色的表笔连接一个电极,一个红色的表笔连接两个电极,当两个电极的电阻值均小时,并且在替换表笔之前,这两个电极的电阻值均大,这就说明第一次使用的黑色表笔连接的正确。但是,当两个电极的电阻值之间的差异非常大时,这就说明第一次使用的并非正确的基极。
(2)在确认了三极管的基极之后,我们可以使用两个表笔来检查e 极与c 极之间的电阻。当两次检查的电阻值不一致时,我们可以使用一个红色的表笔来检查e 极,而另一个则使用黑色的表笔来检查c 极。NPN 型号的三极管的检测过程大致如此,但需要特别留心的是,当使用红黑表笔检测e、c 极之间的电阻时,因为它们的V(BR)CEO 非常微弱,所以可能会导致发射结被击穿。
经过检测,两个三极管组成的达林顿系统具有良好的散热性和抗干扰性,它们在P1.4 口处产生的高电压使得整个系统的散热性增强,从而使得在接收到的信号中,噪音得不到有效的抑制,从而使得整个系统的音质得到提升。
■3.3 发光模块
发光模块由16 个排列成心形的发光二极管构成,由单片机的P0 口和P2 口控制,低电平点亮,本设计设置了单独的花样流水灯功能,可以由按键进行切换进入执行。在电子琴弹奏过程中,心形发光二极管会根据音阶变换不同的显示图形。
■3.4 按键控制模块
这款电子琴拥有11 个按钮,1 个按键用于复位,2 个按键用于调节功能,8 个按键用于演奏音乐。这8 个按钮都可以用来进行各个音调的演奏,它们可以用来模拟各种乐器的演奏方式。这款电子琴的操纵系统采用了单片机的P3 口引脚,可以根据用户的需求进行自动调整。除了这3 个,还有一个用于调节功能的按钮,可以调节光源的亮度和颜色,并可以调节音量。
4 系统软件设计
采用单片机,即将需要演绎的音符用按键来控制,并将其转化为一个电讯号,传送到单片机控制器,经过信息处理后,产生相应的信号传递到扬声器,从而实现对音色的控制。
■4.1 编程语言与开发环境的选择
编程语言选择C 语言,C 语言作为面向过程的计算机编程语言与面向对象编程语言的 C++、C# 和Java 不同。它可以简单地编译,处理低层内存,只产生很少的代码,并且在没有运行环境的情况下就可以操作。同时,C 语言具有更好的通用性,可适用于多种操作系统,且在运行效率方面表现出卓越的优势。适合用于本设计的编程语言。
开发环境选择Keil ,Keil 是一款兼容于C语言和单片机的软件开发工具。它主要用于设计各种应用系统中所需要的程序。Keil 提供了一套完整的开发方案,其中涵盖了C 编译器、宏汇编、链接器、库管理以及一个强大的模拟调试器,为用户提供了全方位的开发解决方案。
■4.2 程序流程图
该设计程序流程图如图3 所示,首先判断0 号按键是否按下,如果按下,切换为花样流水灯程序,如果没有按下,再判断1 号键是否按下,如果按下切换为音乐播放程序,播放设置好的音乐,如果没有按下,接着判断2~9 号按键是否按下,2~9 号按键分别对应“哆、来、咪、发、唆、拉、西、哆(高音)”8 个音调,相应的按键按下播放对应音调的声音。
图3 程序流程图
图4 心形流水灯显示功能图
■4.3 音阶程序
音阶程序如下:
■4.4 心形流水灯功能
按下0 号流水灯和电子琴切换按键,程序切换到心形流水灯显示部分执行,按键每按下一次16 个LED 灯按照以下顺序切换发光显示。
■4.5 程序调试
根据流程图编写相应的程序,使用Keil 进行调试,如果有错误进行相应的修改,直到程序无误,生成可执行的HEX 文件,为了降低成本,首先使用Proteus 软件进行模拟仿真,绘制电路原理图,将生成的HEX 文件加载到单片机芯片上,观察运行效果是否相符,如果不符合进行相应的程序修改,如相符,即可购买元器件进行实物制作。
5 总结
基于51 单片机的心形声光电子琴设计主要实现了心形声光显示和电子琴弹奏功能。通过使用单片机,可以创造出各种频段的信息,从而控制电子琴的发声。通过调整频率,可以创造出需要的音色和节拍。电子琴可以根据的需要创造出各种各样的旋律。通过使用数字单片机的定时器/记数器T0,可以调整方波频率信号,从而创造出喜欢的旋律。通过使用先进的技术,可以通过控制功率放大器,并通过测量每个节拍的长度,让可以准确地听取每个节拍的音色。经过精心的研究和开发,成功地把单片机、发光和发声三者有效地结合在一起,创造出一款具有完美音质的心形声光电子琴,它不仅满足了的需求,而且还可以提供更多的便利性和可靠性[6]。