历史上的今天
今天是:2025年06月11日(星期三)
2020年06月11日 | 单片机制作模拟电子琴
2020-06-11 来源:elecfans
在这个小制作里除了给大家介绍了“mini”模拟电子琴所需的硬件外,还主要介绍了用单片机为控制核心如何控制蜂鸣器演奏音节的基本方法。
实现这个电路的硬件是非常简单的,硬件主要运用了STC89C52RC单片机为核心的主控芯片,外设有8个按键,和一个复位按键以及蜂鸣器作为喇叭在这里我就不多说了。主要是由STC89C52单片机的的P1口8个按键控制Do,Re,Mi,Fa,So,La,Xi,Do的各个音符,然后由P0口的一位数码管显示出来,同时位于P3.3口的蜂鸣器发出声音。

现在我主要简单介绍单片机如何控制蜂鸣器演奏音阶的方法,我们都知道单片机具有强大的控制功能和灵活的编程实现特性,我们可以利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。

例如一首音乐是许多不同的音阶组成的,而每个音阶是对应着不同的频率的,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。这些要求对于单片机来产生不同的频率来说是“小菜一碟”,其实现的方法是利用单片机的定时/计数器T0来产生这样的方波频率信号,所以我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。然后通过微动按键就得到了所要的发音效果。

单片机控制扬声器演奏音阶的原理是:通过软件程序控制产生音频脉冲,只要算出某一音频的周期,再将周期除以2就是半周期的时间。我们利用定时器记时半周期时间,当记时终止后就将P2.5口反转一下,然后记时再反转。这样就能在P2.5口上得到此频率的脉冲。在编写程序时我们要用到STC89C52单片机的内部定时器,使其工作计数器模式下就可以改变计数值TH0及TL0以产生不同频率的方法,从而产生不同音阶。
史海拾趣
|
祝大家在新年里. 男生象Oracle般健壮, 女生象Vista般漂亮; 桃花运象IE中毒般频繁, 钱包如Email容量般壮大, 升职速度赶上微软打补丁, 追女朋友像木马一样猖獗, 生活像重装电脑后一样幸福… 查看全部问答> |
|
如题。 最近在了解一些医疗电子方面的东西,有的时候觉得这个市场“火”起来太远了,因为不明晰的市场、为数不多的参与人员;有的时候又觉得它很火,因为各大半导体厂商纷纷摩拳擦掌,将其提上了比较重要的日程,而且如果从医疗器械来看,也是有一 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 在“玩残”了国产手机行业后,山寨厂商又将触角伸向了数码相机市场。 尽管被称为“山寨手机之父”的联发科前不久表示,对于何时正式推出相机芯片产品,目前尚无时间表,但这丝毫没有影响 ...… 查看全部问答> |
|
调了一两天了,还是什么都不亮…… 有没有人用过阿?编程的时候是不是有哪些地方比较特别,需要注意的,比如哪些时序要求等……SOS~~~~~~… 查看全部问答> |
|
请教:串口,并口,USB,PCI 哪个的相应速度最快?谢谢! 请教: 我发送的数据量不是很大,需要的是响应速度快 如 PC 向单片机端发数据,希望 单片机端快速响应 单片机端向 PC 端发数据,PC 端快速响应 串口,并口,USB,PCI 哪种最好啊 USB 怎么样? 比串口快,还是慢呢? 稳定不? 谢谢!… 查看全部问答> |
|
如题。 现在要做USB插入和拔除的探测,并得到其盘符。 我是直接解析系统广播的消息:DBT_DEVICEREMOVECOMPLETE 和 DBT_DEVICEARRIVAL 但是问题比较奇怪,拔插U盘,与拔插SD卡得到的消息与参数是一样的: DEV_BROADCAST_HDR 结构的dbcp_devicety ...… 查看全部问答> |
|
我想将一个数组写入str710内部Flash的B1F0扇区,结果老是出错,不知道哪里有问题?请各位高手帮我看看哪里有问题,一下是写Flash函数:Write_Flash(buff,0x400C0000,10,FLASH_B1F0);void Write_Flash(u32 *buff,u32 Addr,u16  ...… 查看全部问答> |
|
在学习MSP430的过程中,我遇到下面这种的结构体定义与赋值,因为以前并未如此使用过结构体,大侠们能否帮我解释一下.这儿的DisTab[]是个DISTAB型的变量吗?如果是的话,这个数据的大小是多少啊?是不是按照类型将它们配成5对呢? typedef struct { cha ...… 查看全部问答> |




