电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>单片机>使用单片机设计音乐程序的资料说明

使用单片机设计音乐程序的资料说明

2019-10-21 | doc | 0.03 MB | 次下载 | 1积分

资料介绍

  利用单片机(或单板机)奏乐大概是无线电爱好者感兴趣的问题之一。本文从单片机的基本发间实验出发,谈谈音乐程序的设计原理,并给出具体实例,以供参考。

  1. 单片机的基本发音实验

  我们知道,声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单处机某个口线的“高”电平或低电平,则在该口线上就能产生一定频率的矩形波,接上喇叭就能发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调。

  例如,要产生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给定的常数,将乐曲翻译成码表输入机器,而程序不变。本实验方法简便,即使不懂音乐的人,将一首陌生的曲子翻译成代码也是易事,和着机器的演奏学唱一首歌曲,其趣味无穷。

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1ATmega8芯片中文手册
  2. 2.45 MB   |  3次下载  |  1 积分
  3. 2VGA 转 HDMI 输出的音视频采集卡LCC385数据手册
  4. 0.34 MB   |  2次下载  |  免费
  5. 3全套DDR、DDR2、DDR3、DDR3L、LPDDR3 和 DDR4 电源解决方案同步降压控制器数据表
  6. 2.5MB   |  1次下载  |  免费
  7. 4具有过压保护和阻断 FET控制功能的12V电子熔丝TPS25924x数据表
  8. 1.92MB   |  1次下载  |  免费
  9. 5带自动重试功能的IEEE 802.3af PoE供电设备控制器TPS2375数据表
  10. 920.76KB   |  1次下载  |  免费
  11. 6稳压5V、300mA高效电荷泵DC-DC转换器TPS6013x数据表
  12. 1.5MB   |  1次下载  |  免费
  13. 7照明-电源-POE-GEVB评估套件数据手册
  14. 4.40 MB  |  1次下载  |  免费
  15. 8具有低静态电流的60-V降压DC/DC转换器TPS54162-Q1数据表
  16. 2.26MB   |  次下载  |  免费

本月

  1. 1DC-DC电路(Buck)的设计与仿真
  2. 0.60 MB   |  23次下载  |  2 积分
  3. 2UHD智能显示SoC VS680产品简介
  4. 0.46 MB   |  11次下载  |  免费
  5. 3ES9038PRO解码芯片的电路原理图介绍
  6. 0.25 MB   |  11次下载  |  5 积分
  7. 4东芝BiCD集成电路硅单片TB67S109AFNAG数据手册
  8. 1.93 MB   |  6次下载  |  免费
  9. 5采用 Impedance Track™ 技术的宽量程电量监测计BQ34Z100-G1数据表
  10. 2.7MB   |  6次下载  |  免费
  11. 616A 输出电流,高可靠、高效率 同步降压转换器PCD3201产品手册
  12. 0.47 MB   |  6次下载  |  免费
  13. 7电池管理系统(BMS)软硬件介绍
  14. 0.23 MB   |  5次下载  |  2 积分
  15. 8TDK电容器产品指南
  16. 11.88 MB   |  5次下载  |  1 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935085次下载  |  免费
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420048次下载  |  免费
  5. 3Altium DXP2002下载入口
  6. 未知  |  233067次下载  |  免费
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191315次下载  |  免费
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183315次下载  |  免费
  11. 6labview8.5下载
  12. 未知  |  81567次下载  |  免费
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73786次下载  |  免费
  15. 8NI LabVIEW中实现3D视觉的工具和技术
  16. 未知  |  70088次下载  |  免费