历史上的今天
返回首页

历史上的今天

今天是:2025年01月03日(星期五)

正在发生

2018年01月03日 | 单片机教程实战2 蜂鸣器唱歌

2018-01-03 来源:eefocus

利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。
  单片机的基本发音实验
  我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。
  例如,要产生200Hz的音频信号,按图1接入喇叭(若属临时实验,也可将喇叭直接接在P1口线上),实验程序为:
  其中子程序DEL为延时子程序,当R3为1时,延时时间约为20us,R3中存放延时常数,对200HZ音频,其周期为1/200秒,即5ms。这样,当P1.4的高电平或低电平的持续时间为2.5ms,即R3的时间常数取2500/20=125(7DH)时,就能发出200HZ的音调。将上述程序键入学习机,并不断修改R3的常数可以感到音调的变化。
  乐曲中,每一音符对应着确定的频率,表1给出C调时各音符频率及其相应的时间常数。
  读者可以根据表1所提供的常数,将其16进制代码送入R3,反复练习体会。根据表1可以奏出音符。仅这还不够,要准确奏出一首曲子,必须准确地控制乐曲节奏,即一音符的持续时间。
  音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。其它节拍与时间的对应关系见表2。
  但时,由于T0的最大定时时间只能为131毫秒,因此不可能直接用改变T0的时间初值来实现不同节拍。我们可以用T0来产生10毫秒的时间基准,然后设置一个中断计数器,通过判别中断计数器的值来控制节拍时间的长短。表2中也给出了各种节拍所对应的时间常数。例如对1/4拍音符,定时时间为0.16秒,相应的时间常数为16(即10H);对3拍音符,定时时间为1.92秒,相应时间长数为192(即C0H)。
  我们将每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表程序依次取出,产生音符并控制节奏,就可以实现演奏效果。
  此外,结束符和体止符可以分别用代码00H和FFH来表示,若查表结果为00H,则表示曲子终了;若查表结果为FFH,则产生相应的停顿效果。
  为了产生手弹的节奏感,在某些音符(例如两个相同音符)音插入一个时间单位的频率略有不同的音符。
  程序框图如图2所示。
  下面给出程序序请单,可直接在TD-III型学习机上演奏,对其它不同型号的学习机,只需相应地改变一下地址即可。本程序演奏的是民歌“八月桂花遍地开”,C调,节奏为94拍/分。读者也可以自行找出一首歌,按表1和表2给定的常数,将乐曲翻译成码表输入机器,而程序不变。本实验方法简便,即使不懂音乐的人,将一首陌生的曲子翻译成代码也是易事,和着机器的演奏学唱一首歌曲,其趣味无穷。
  程序清单(略,请参看源程序的说明)。
附---实战二:唱歌

《无线电》1992年第3期。
  硬件连接说明:
  随便找一个仿真机或者什么单片机实验板,只要能工作的就行,将程序输入,运行,然后找个音箱(你计算机旁边应当就有一对吧)拨出插头,插头的前端接在P1。0上,后面部分找根线接单片机的地,就应当有声了,然后怎么改进硬件连接就是你的事了。。。。

推荐阅读

史海拾趣

Ecera Comtek Corp公司的发展小趣事

随着公司实力的不断增强,Ecera Comtek Corp公司开始寻求更广阔的发展空间。公司决定进军国际市场,拓展海外业务。然而,国际市场的竞争更加激烈,Ecera Comtek Corp公司面临着来自全球各地的强大竞争对手。为了应对这一挑战,Ecera Comtek Corp公司加强了与国际合作伙伴的联系,共同研发新产品,开拓新市场。同时,公司还加大了对海外市场的宣传力度,提高了品牌的知名度和美誉度。经过几年的努力,Ecera Comtek Corp公司的产品逐渐在国际市场上获得了认可,海外业务也取得了显著的进展。

ELESTA GmbH公司的发展小趣事

2019年,ELESTA GmbH荣获GEO全球卓越奖,这是对公司多年来在精益生产和生态环保方面卓越表现的肯定。该奖项的获得不仅提升了ELESTA的品牌形象和知名度,也进一步增强了公司在全球电子行业中的竞争力和影响力。

以上五个故事涵盖了ELESTA GmbH公司从创立到发展的关键阶段和里程碑事件,展现了公司在电子行业中不断进取、创新发展的历程。

ANOVA公司的发展小趣事

ANOVA公司的成功并非偶然,它始终站在技术创新的前沿。公司积极推动新通信技术、电池寿命和移动应用等方面的创新,不断推动电子行业的发展。ANOVA的研发团队不断探索新技术,致力于为客户提供最先进的解决方案,帮助客户在激烈的市场竞争中保持领先地位。

Formosa MS公司的发展小趣事

在国内市场取得一定成绩后,Corsair开始将目光投向了更广阔的国际市场。公司积极参加国际电子展会,与海外客户建立联系,拓展销售渠道。同时,Corsair还根据不同国家和地区的市场需求,调整产品策略,提供定制化的解决方案。这些努力使得Corsair的产品逐渐走进了国际市场,公司的影响力也不断扩大。

EnerSys公司的发展小趣事

进入21世纪后,EnerSys加快了其收购与整合的步伐。2000年底,EnerSys收购了Yuasa Corporation(Japan)在北美和南美的储能和动力电池业务。随后,公司又陆续收购了Energy Storage Group of Invensys plc.和FIAMM, S.p.A.的动力电池业务。这些收购不仅扩大了EnerSys的市场份额,还增强了其在专业镍基电池、锂电池、铅酸电池和工业电池领域的技术实力。

AVG [AVG Semiconductors(HITEK)]公司的发展小趣事

AVG Semiconductors自创立之初,就始终坚持以技术创新为核心竞争力。公司不断投入研发资源,推出了一系列具有划时代意义的半导体产品。其中,AVG的某款高效能低功耗芯片在市场上引起了广泛关注,其独特的节能设计和卓越的性能使得AVG在激烈的市场竞争中脱颖而出。这款芯片的成功不仅提升了AVG的品牌形象,也为公司带来了可观的收益,进一步推动了公司的研发创新步伐。

问答坊 | AI 解惑

智能全数字锁相环的设计

摘要: 在FPGA片内实现全数字锁相环用途极广。本文在集成数字锁相环74297的基础上进行改进,设计了锁相状态检测电路,配合CPU对环路滤波参数进行动态智能配置,从而使锁相环快速进入锁定状态,在最短时间内正常工作并且提高输出频率的质量。 关键词 ...…

查看全部问答>

贡献一些ARM开发板原理图

2440的就不用贡献了,传下S3C2450开发板的原理图 [ 本帖最后由 open82977352 于 2010-1-12 18:43 编辑 ]…

查看全部问答>

Toyato的 Hybrid和汽车方面的课程资料

无意在网上找到的,因此把目录整理出来,有兄弟需要的发邮件给我yulzhu@gmail.com,注明需要哪一部分,直接发怕有些问题。 混合动力有关材料 Toyota Series - Hybrid Hybrid01 Hybrid System Overview.pdf   Hybrid02 Hybrid System ...…

查看全部问答>

现代功率模块及器件应用技术(6).

现代功率模块及器件应用技术(6).…

查看全部问答>

驱动中怎么让一个程序每隔一段时间执行一次??

比如每隔一分钟执行一次,我是CreateThread,然后再线程中sleep,可感觉有些问题。 应该怎么做,有定时器之类的吗?…

查看全部问答>

哪里有windows CE 5.0(platform builder 5.0)??

google了好久,都没找到windows CE 5.0下载。 不知道各位谁有这个东西,或者知道哪里有这个下载。 如果谁有的可以传给我就更好了。 请加我 QQ:46231244 谢谢…

查看全部问答>

求助!!!定时器同步配置问题-一个上升沿信号触发定时器TIM2,同时根据上升沿信号启

最近在做一个RLC(电阻、电感、电容)测量仪,测量插座只有一个,因此需要利用程序区分三种不同的器件; 区分方法是利用通过三种器件后的波形超前滞后关系判别,将正弦信号转化为矩形波后输入定时器通道1。与此同时将没有经过原器件的正弦波也转化为 ...…

查看全部问答>

求教个整流电路的问题

我用了个整流电路,用multisim仿真,负载开路时,测其内阻,发现竟然有2M欧姆左右,怎么会那么大?如图。…

查看全部问答>

基于STM32的IAP设计文档

感觉不错, 我就把原版的word转换为pdf分享过来了,资料感觉还是pdf比较好,各种pdf阅读器都可以,word不行,微软自己都好几个版本呢,、…

查看全部问答>