单片机电子音调发生器Word文档格式.docx
- 文档编号:16078691
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:13
- 大小:363.01KB
单片机电子音调发生器Word文档格式.docx
《单片机电子音调发生器Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机电子音调发生器Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
延时作为基本延时时间,节拍值只能是它的整数倍,每个音节相应的定时器初值X可按下法算:
(1/2)*(1/f)=(12/fose)*(216-X)
即X=216-(fose/24f)
其中f为音调频率,当晶振频率fose=11.0592MHz时,音节“1”相应的定时器初值为X,则可得X=63777D=F921H其它的可同样求得。
表1:
音符
频率(HZ)
计数初值(H)
低音5
196
F6D1
低音6
220
F7D1
低音7
247
F8B6
中音1
262
F921
中音2
294
F9E1
中音3
330
FA8C
中音4
349
FAD8
中音5
392
FB68
中音6
440
FBE9
高音7
494
FC5B
高音1
523
FC8F
高音2
587
FCEF
高音3
659
FD45
高音4
698
FD6C
高音5
784
FDB4
曲调值
DELAY
调4/4
125ms
调3/4
187ms
调2/4
250ms
节拍延时
利用计时器计时此半周期时间,每当计时到后就将输出方波的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。
(2)音乐程序查表原理:
乐谱格式:
每字节的高字节为音符代码,低字节为节拍代码
音符代码123456789ABCDEF0
音节.5.6.712345671`2`3`4`5`休止
节拍代码1234568ACF
节拍1/42/43/411(1/4)1(1/2)22(1/2)33(3/4)
(3)定时器的使用及时间延迟,首先对定时器进行初始化
设置TMOD(工作方式)寄存器
GATA
C/T
M1
M0
定时器1
定时器0
门控位:
GATE=0,TR=1启动计数(软件启动);
GATE=1,TR=1且INT=1启动计数(硬件启动)。
C/T:
定时或计数方式选择位。
C/T=0,定时工作方式;
C/T=1,计数工作方式。
M1M0:
工作方式选择位。
M1M0=00,方式0:
13位计数(TL0-4、TH0-7)
M1M0=01,方式1:
16位计数(TL0-7、TH0-7)
M1M0=10,方式2:
8位计数,有自动装入功能。
M1M0=11,方式3:
T0分为两个8位计数器,TL0可工作为定时或计数方式,TH0只能工作为定时方式。
设置TCON(控制)寄存器:
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TR0/TR1:
启动计数。
为1启动计数;
为0停止计数。
TF0/TF1:
计数溢出。
当加”1”计数结束时为1。
本实验采用定时器T0,工作在方式1(16位计数),无自动装入功能。
(4)8—3线优先编码器74LSl48
74LSl48外引线排列图
74LS148是8-3线优先编码器,其外引线排列如图2所示。
~
为8个信号输入,低电平有效。
为3位代码输出(反码输出)。
为选通输入端,当
=0时允许编码;
当
=1时输出
和
被封锁,编码被禁止。
是选通输出端,级联应用时,高位片的
端与低位片的
端相连接,可以扩展优先编码功能。
为优先扩展输出端,级联应用时可作为输出位的扩展端。
74LS148功能表
输入
输出
1
×
音节编码电路硬件连接图
(5)蜂鸣器电路
蜂鸣器有交流和直流两种。
直流蜂鸣器驱动简单,一旦在引脚上加入直流电源它就会发出一定频率的声音,此时声音的音调和音量是固定的;
而交流蜂鸣器在这方面则显得较灵活,输入声音信号的频率和音长是可控的,因此输出的声响将更逼真、更悦耳。
本实验仪有一个交流蜂鸣器,由于一般I/O口的驱动能力有限,因此不用它直接驱动蜂鸣器,它与P87C52X2的连接方式如下图所示。
Buzzer通过一个跳线与P1.7相连,P1.7输出不同频率的方波信号,蜂鸣器就会发出不同的声音。
如果控制输出信号的频率和音长,蜂鸣器则会发出悦耳的音乐。
四、实验设计:
总体来说,本实验分为两大部分:
再分配两个开关用于切换音阶,音乐部分和歌曲之间的切换。
实验箱硬件连接如图所示:
K0-K2用于表示7个不同的音阶,K4选择音乐曲目,K5切换音阶或音乐播放。
实验总体流程图如下图所示:
五、实验程序源代码:
ORG0000H
JMPYINJIE
ORG000BH
LJMPTIM0
XUANZE:
JNBP3.4,YINJIE;
P3.4为0转音阶程序
JMPMUSIC;
为1转音乐播放程序
YINJIE:
MOVTMOD,#00000001B;
主程序初始化,定时器T0工作于方式1
MOVIE,#10000010B;
中断控制寄存器初始化,定时器/计数器0中断允许
CLRTR0
JNBP1.3,XUANZE
MOVA,P1
ANLA,#07H;
屏蔽高五位
MOVDPTR,#TABLE
MOVR5,#01H;
控制两拍延时
LCALLSING
JBP3.4,MUSIC;
JMPYINJIE
;
音乐播放程序
MUSIC:
JBP3.3,START0
JNBP3.3,START1
START0:
MOVC,P3.3;
记录当前播放歌曲状态
MOV30H,#00H;
MOVDPTR,#TABLE0;
音乐简谱
JMPNEXT
START1:
MOVC,P3.3
MOVDPTR,#TABLE1;
NEXT:
MOVA,30H
MOVCA,@A+DPTR;
查表取音调和节拍
MOVR2,A;
将音调和节拍存入R2
JZEND0;
为零,不进行处理.
ANLA,#0FH
MOVR5,A;
将节拍存入R5
MOVA,R2
SWAPA;
半字节交换
MOVDPTR,#YINDIAO
JNZSONG;
根据音调决定是否演奏.
SONG:
INC30H
JNBP3.4,BACK;
再次查询P3.4,为0转音阶程序
JBP3.4,CONTINUE
BACK:
AJMPYINJIE
SING:
DECA
MOV22H,A
RLA;
左循环
MOVCA,@A+DPTR
MOVTH0,A
MOV21H,A
MOVA,22H
RLA
INCA
MOVTL0,A
MOV20H,A
SETBTR0
LCALLDELAY
RET
CONTINUE:
JBP3.3,CHANGE1;
查询P3.3,为1
JNBP3.3,CHANGE0
CHANGE1:
ANLC,P3.3
MOVDPTR,#TABLE0
JCNEXT;
P3.3状态仍为1不变,继续取下一个音符
JNCSTART1;
P3.3状态改变,歌曲切换
CHANGE0:
ORLC,P3.3
MOVDPTR,#TABLE1
JNCNEXT;
P3.3状态为0不变,继续取下一个音符
JCSTART0;
P3.3状态改变,歌曲切换
END0:
CLRTR0
TIM0:
;
定时器中断服务程序
PUSHACC
PUSHPSW
MOVTL0,20H;
重赋初值.
MOVTH0,21H
CPLP1.7
POPPSW
POPACC
RETI
DELAY:
MOVR7,#02H;
延时187ms子程序
D2:
MOVR4,#187
D3:
MOVR3,#248
DJNZR3,$
DJNZR4,D3
DJNZR7,D2
DJNZR5,DELAY
TABLE:
定时常数T值表
DW64580,64684,64777,64820,64898,64968,65030
YINDIAO:
决定音调的定时初值.
DW64260,64400,6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 音调 发生器