历史上的今天
今天是:2024年09月10日(星期二)
2021年09月10日 | 60-基于51单片机简易电子琴设计
2021-09-10 来源:eefocus
具体实现功能
系统由STC89C52单片机+数码管+电源电路+音符按键+乐曲切换按键+蜂鸣器构成。
具体功能:
1、数码管显示所按的音符
2、从左到右的按键实现的音符分别是:do、re、mi、fa、so、la、si、do(高音);
3、三个按键可实现三首歌的切换:A是《挥着翅膀的女孩》,B是《同一首歌》,C是《两只蝴蝶》。
设计背景
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴和音乐发生器双功能。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有25个按键和扬声器。
利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。
一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,即可构成我们所想要的音乐了,当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系弄正确即可。
硬件设计
硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。
该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。该设计具有25个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。用单片机产生的音频脉冲直接蜂鸣器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频驱动电路。

软件设计
声音有噪音和乐音之分振动有规律的声音是乐音,音乐中所用的声音主要是乐音。
乐音听起来有的高、有的低,这就叫做音高。音高是由发声物体振动频率的高低决定的,频率高声音就高,频率低声音就低。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。
一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同的频率组合,加以拍数对应的延时,构成音乐。如果单片机要自己播放音乐就必须考虑到节拍的设置。

原理图
本系统原理图设计采用Altium Designer19,具体如图。

程序
本设计利用KEIL5软件实现程序设计,具体如图。

仿真实现
本设计利用protues8.7软件实现仿真设计,具体如图。
史海拾趣
|
PIC系列单片机的源程序是指PIC的助记符指令编写的程序(汇编语言程序)。这里将对PIC源程序的格式要求和其源程序的建立或书写作简要的介绍。 一般来说对PIC的源程序格式并没有要求统一的编写形式,用户可以根据习惯来编写,当然编写时应遵 ...… 查看全部问答> |
|
最近装了个OrCAD10.5 后Capture 可以正常使用,但是Layout 老是提示出错: Lsession.exe - 致命的应用程序退出 Error code 0038.401 (Error accessing Layout Registry key, OrCADLayoutStd10.5.0\\shell\\open\\path) 这个问题要怎样解决。 装 ...… 查看全部问答> |
|
事无巨细,矩阵键盘 停笔好几天,今天复工。今天要跟大家分享一下关于用AVR MEGA16扫描矩阵键盘的一些应用心得。拙劣之见,经不起推敲。权当抛砖引玉罢。 矩阵键盘,顾名思义,一些按键按一个矩阵的形状排列,就成了 ...… 查看全部问答> |
|
如今嵌入式领域越来越大,生活中处处可见。但是学习单片机容易,感觉ARM有些难度,ARM现在非常流行,发展也很快,希望能学好ARM,但是自己不知如何从单片机过度到ARM,该如何学习及应该学习哪本书容易理解。希望大家给一些建议。… 查看全部问答> |
|
买的一块开发板,去年玩了两个月,随便怎么搞,都没有问题,今年有个项目想用这个芯片,想先在这块板子上验证一下某些功能,结果就下载进去一次程序就再也下不进去了,使用的jlink v7,已经下载进去的程序一直能够正常运行各种设置如下: ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:44 编辑 敢问各位第一级用的什么运放,电路本身的截止频率是在4.5kHz左右没错,仿真也很好,但实际用运放就是各种不稳定,我们猜想是电路中的电容太小,极易受影响,敢问诸位可有思路? … 查看全部问答> |
|
本人菜鸟一枚,正在学习嵌入式linux,老师交个任务,要求写一个用户程序对内存空间地址的读写的linux驱动程序。看过一些驱动的原理,主要是定义一些功能跟函数,还有注册设备。但对具体的操作不是太了解,比方说需要哪些编译软件,调试软件,还有代 ...… 查看全部问答> |
|
【晒心得】Win8.1下无法安装st-link_v2驱动的解决办法-折腾! 最经微软出了Win8.1,喜欢尝鲜的朋友可以好好折腾了。下面是我遇到的问题,在Win8.1下无法安装st-link_v2驱动,后来找到了解决办法。此方法基本上能够解决所有驱动安装不能正常安装的情况,例如安装Beaglebone black的驱动,都可以解决的。 1. 先 ...… 查看全部问答> |




