- 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
您可能关注的文档
最近下载
- 一种水性双组份环氧底漆及其制备方法和应用.pdf VIP
- 2021版 客户侧电能计量装置通用设计要求 第2部分 低压用电客户电能计量装置.docx VIP
- 一种水性环氧涂层及其制备方法与应用.pdf VIP
- NK材料——材料分析测试方法.pptx VIP
- 一种水性环氧防腐底漆及其制备方法.pdf VIP
- 特种设备安全教育培训记录.pdf VIP
- 东芝CV330A封线分析和总结.docx VIP
- 父母赠予金钱合同协议书.docx VIP
- 2021版 客户侧电能计量装置通用设计要求 第1部分 10kV用电客户电能计量装置.docx VIP
- 2025年湖南工艺美术职业学院单招英语考试题库及答案解析.docx VIP
原创力文档

文档评论(0)