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

  • 17
  • 0
  • 约5.45千字
  • 约 8页
  • 2020-08-30 发布于江苏
  • 举报
利用单片机 (或单板机) 奏乐大概是无线电爱好者感兴趣的问题之一。 本文从单 片机的基本发间实验出发, 谈谈音乐程序的设计原理, 并给出具体实例, 以供参 考。 单片机 的基本发音实验 我们知道, 声音的频谱范围约在几十到几千赫兹, 若能利用程序来控制单处机某 个口线的“高”电平或低电平, 则在该口线上就能产生一定频率的矩形波, 接上 喇叭就能发出一定频率的声音, 若再利用延时程序控制“高”“低”电平的持续 时间,就能改变输出频率,从而改变音调。 例如,要产生 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,则产生对应的停顿效果。为了 产生手弹的节奏感, 在某些音符 (例如两个相同音符) 音插入一个时间单位的频 率略有不一样的音符。 下面给出程序序清单,可直接在 TD-III 型学习机上演奏,对其它不一样型号的 学习机,只需对应地改变一下地址即可。本程序演奏的是民歌“八月桂花遍地 开”,C调,节奏为 94 拍/ 分。读者也能自行找出一首歌,按表 1 和表 2 给定的 常数,将乐曲翻译成码表输入机器,而程序不变。本实验办法简便,即使不懂音 乐的人,将一首陌生的曲子翻译成代码也是易事, 和着机器的演奏学唱一首歌曲, 其趣味无穷。 程序清单(略,请参看源程序的说明)。 程序框图如图 2 所示。 单片机音乐程序的设计图 单片机教程网 硬件连接说明 : 随便找一个仿真机或者什么单片机实验板, 只要能工作的就行, 将程序输入, 运 行,然后找个音箱(你计算机旁边应当就有一对吧)拨出插头,插头的前端接在 P1。0 上,后面部分找根线接单片机的地,就应当有声了,然后怎么改进硬件连 接就是你的事了。。。。 音乐程序汇编代码代码 1 -------------Voice.asm-------------------------- ORG 0000H LJMP START ORG 000BH INC 20H ; 中断服务, 中断计数器加 1 MOV TH0,#0D8H MOV TL0,#0EFH ;12M 晶振,形成 10毫秒中断 RETI START: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H MOV IE,#82H MUSIC0: NOP MOV DPTR,#DAT ; 表头地址送 DPTR MOV 20H,#00H ; 中断计数器清 0 MOV B,#00H ; 表序号清 0 MUSIC1: NOP CLR A MOVC A,@A+DPTR ; 查表取代码 JZ END0 ; 是 00H,则结束 CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MUSIC5: NOP MOV R6,A INC DPTR MOV A,B MOVC A,@A+DPTR

文档评论(0)

1亿VIP精品文档

相关文档