单片机音乐播放器程序设计Word格式.docx
- 文档编号:15905864
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:11
- 大小:43.99KB
单片机音乐播放器程序设计Word格式.docx
《单片机音乐播放器程序设计Word格式.docx》由会员分享,可在线阅读,更多相关《单片机音乐播放器程序设计Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
按下K1键即可实现。
顺序查找乐曲循环播放:
按下K2键即可实现。
停止播放:
按下K3键即可实现。
单独选择某首乐曲循环播放:
按下K4~K7键即可实现。
系统整体方案框图如下:
利用AT89C51产生乐曲音符,再把乐普翻译成绩算计音乐语言,由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声。
整体框图如图图一所示。
三、
硬件系统原理图:
硬件系统原理图如下页图:
1)单片机:
选择AT89S52,由于AT89S52是一个低电压,高性能CMOS8位单片机,内含4kbytes的可反复擦鞋的制度程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机AT89S52提供了高性价比的解决方案。
其内部有足够本系统对存储器的要求,不用外扩。
2)按键控制电路:
如图由P1口作为输入,构成矩阵式按键接口方式。
3)输出控制:
此部分的放大电路简单容易实现。
主要采用了一个小功率PNP型硅
管9012,利用“分压偏置式工作点稳定直流通路”,达到了对静态工作点的稳定。
分压电阻分别选择1K和5.5K。
嗡宁器一端接+5V电压,一端接晶体管的发射极。
由P3.0输出预定的方波,加到晶体管进行放大,再输出到蜂鸣器,很好的实现了频率、声音的转换。
4)复位:
复位是由外部的复位电路来实现的。
四、
系统软件设计
1、单片机演奏乐曲的原理
通过控制定时器的定时时间来产生不同频率的方波,驱动喇叭发出不同音阶的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。
把乐谱中的音符和相应的节拍变换为定常数和延迟常数,作为数据表格存放在存储器中。
由程序查表得到定时常数和延迟常数,分别用以控制定时器产生方波的频率和发出该频率方波的持续时间。
当延迟时间到时,再查下一个音符的定时常数和延迟常数。
依次下去,就可以自动演奏乐曲。
单片机所用的晶振的频率为6MHz,琴键所对应音符、频率及定时常数三者之间的对应关系如下所示。
C调音符
7
1
2
3
4
5
6
频率(Hz)
494
524
588
660
698
784
880
988
半周期(ms)
1.01
0.95
0.85
0.76
0.72
0.64
0.57
0.51
定时值
FE07
FE25
FE57
FE84
FE98
FEC0
FEE3
FF01
2、程序执行流程图
1)
说明:
l
软件执行顺序:
先识别按键,再计算键值,根据键值执行相应的音乐播放程序。
乐曲存放约定:
连续两个单元的内容为0FFH,0FFH作为上一首乐曲结束标志。
2)系统程序流程图:
3、乐演奏程序清单
ORG
0000H
LJMPKEY1
001BH
MOV
TH1,R1
TL1,R0
CPL
P3.0
RETI
300H
AJMP
KEY1
KS1:
MOV
A,#FFH
MOV
P1,A
A,P1
;
读P1口键值
CPL
A
A取反,无键按下则全“0”
ANL
A,0FH
屏蔽A高半字节
RET
KEY1:
ACALL
KS1
检查是否有键闭合
JNZ
LK1
A非“0”则转移
ACALL
D10ms
显示一次(延时10ms)
AJMP
LK1:
有键闭合二次消抖延时20ms
ACALL
再检查有键闭合否
JNZ
LK2
有键闭合,转LK2
D10ms
KEY1;
经去抖动确认无键闭合,延时10ms后转KEY1
LK2:
R2,#0EH
扫描初值进R2
R4,#00H
扫描列号送R4
LK4:
P1,A
扫描初值送P1口
MOV
A,P1
读P1口
JB
ACC.0,LONE
ACC.0=1,第0行无键闭合,转LONE
A,#00H
装第0行行值
LKP
LONE:
JB
ACC.1,LTWO
ACC.1=1,第1行无键闭合,转LTWO
A,#04H
装第1行行值
LTWO:
ACC.2,LTHR
ACC.2=1,第2行无键闭合,转LTHR
A, #08H
装第2行行值
LTHR:
ACC.3,NEXT
ACC.3=1,第3行无键闭合则转NEXT
A,#0CH
装第3行行值
LKP:
ADD
A,R4
计算键值
PUSH
ACC
保护键值,将键值入栈
LK3:
延时10ms消抖
查键是否继续闭合,若闭合再延时
LK3
POP
若键起,则键码送A
RET
NEXT:
INC
R4
扫描列号加1
A,R2
JNB
ACC.3,KND
笫3位为“0”,已扫完最高列则转KEND
RLA
循环左移一位
R2,A
LK4
进行下一列扫描
KEND:
KEY1
扫描完毕,开始新的一轮
LONE:
LKP
LTHR:
A,R4
POP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 音乐 播放 程序设计