当前位置:文档之家› 基于单片机控制的多功能音乐播放器的设计与制作

基于单片机控制的多功能音乐播放器的设计与制作


LOOP PUSH PSW
ACC TL0, 20H TH0, 21H
在 Proteus 中将前面编译生成的.HEX 文件加入仿真原 理图的单片机中进行虚拟仿真。然后通过编程器或 ISP 下 载线将最终调试好的.HEX 文件写入 AT89S51 芯片中。
3 结束语
CPL P2.3
设计制作的基于单片机控制的多功能音乐播放器系统
及彩灯显示与音乐播放的控制,T0 中断服务程序用于产生 乐曲中不同频率所需的方波,主程序流程图见图 5 所示。
主程序开始
各寄存器、存储器赋初值 LOOP
扫描音乐播放节奏 快 慢 开 关 K1 的 状 态,确定节奏延时参 数值,并送 7FH 单元
扫描音乐选择按钮 BT!的状态,确定播放 的音乐,音乐音符指 针 DPTR 赋初始值
系统对控制精度没有过高的要求,所以单片机选用内 部具有程序存储器芯片的 AT89S51 就可以满足要求了。
外围属同一段的彩灯和内部属同一个汉字的彩灯均采 取并联方式连接,正极通过一分压电阻接电源,负极接单片 机的端口,由单片机端口引脚控制彩灯的亮与灭,其中 “电”字,用“电”符号“ ”抽象表示,显得更加活泼,如图 2 所示。
· 34 ·
MOV DPTR, #MUSIC2; 音乐 2 的起始指针
JMP MUSIC
ENDOK: MOV DPTR, #MUSIC3; 音乐 3 的起始指针
MUSIC: MOV SP, #60H
MOV TMOD, #01H; 写入方式控制字,T0 工作在方式 1
SETB ET0; 开定时器 T0 中断
要求如下: (1)利用按键选择三首音乐中的一首进行播放。 (2)利用拔动开关切换音乐播放节奏的快慢。 (3)利用拔动开关切换外围彩灯的显示方式,内部“华
商电子 2010”8 个汉字彩灯依次点亮。 (4)音乐播放器音量大小可以调节。
1.2 方案确定 由设计要求可知,音乐播放器包括主控制单片机、用于
音乐选择、快慢节奏切换和彩灯显示方式的输入模块以及 控制彩灯点亮与音乐播放的输出模块,如图 1 所示。
MCU good teaching case, the paper gives a detailed design and implementation approach.
Key words: MCU; Multifunction; Music Player
1 任务设计要求及方案确定
1.1 设计要求 利用单片机制作一个多功能的节日彩灯音乐播放器,
Key words: Flash Courseware; Design of Multiple Choice Subject
1 多选题的背景制作
打开 flash 操作文档,制作方法有两种分别如下: (1)选择“修改”中的“文档”命令,或者直接 选 择 flash 界面最下方的“大小”命令,在“尺寸”选项中设计舞 台的大小,单击“确定”即可。可在“背景颜色”中单击小三 角选择背景的颜色,这是背景制作的第一种方法。 (2)第二种方法就是将图片导入到舞台场景中,直接 作为设计的背景。具体操作方法是选择“文件”中子命令 “导入”的子命令“导入到库”,背景图片就会存放在 flash 的最右边的“库”面板中,直接将图片拖入到舞台中即可, 调整图片的大小和舞台正好重合,就完成了背景的制作。为 了以后方便使用该图片,可以右键单击舞台上的背景图片, 选择“转化为元件”命令,再选择“图形”命令确定即可。
单片机端口引脚 P2.3 输出不同频率的方波信号,经过放大
后送至喇叭,控制喇叭按希望的频率变化发声,通过改变可
变电阻的大小来调节音乐播放的音量,如图 3 所示。方波信
号的频率通过改变的定时器 T0 的时间参数由软件控制完
成,不同音调的频率值放在一个音调表中,如源程序代码中
TABLE1。歌曲中的音符代码装入 8 位字节高 4 位,节拍代
D1: CALL DELAY; 调用延时程序
DJNZ R4, DELAY1
INC 30H; 准备唱下一个音符
DJNZ R7, DELAY0
JMP LOOP
DJNZ R5, DELAY
ENDD: CLR TR0
RET
mov 30h, #00h; 音乐播放完后从头开始
2.3 仿真及程序下载
JMP INTT0: PUSH MOV MOV
MOV 22H, A
RL
A
MOV DPTR, #TABLE1 ; 读音调
MOVC A, @A+DPTR
MOV TH0, A
MOV 21H, A
MOV A, 22H
RL
A
INC A
MOVC A, @A+DPTR
MOV TL0, A
MOV 20H, A
SETB TR0
2010 年 10 月
电脑学习
第5期
(2)同样选中该图层对应时间轴的第二帧,同样插入 一个关键帧,将题目 2 西藏有哪三大特产:藏羊、牦牛、雪 莲、酥油草的字样输入到该图层的第二帧场景中,这样就完 成了多选题的题目制作。
(3)字体的设置,利用选择工具选中文字,在 flash 下 方设置想要的文字类型和大小。
......................................................................................................................................
MOVC A, @A+DPTR
MOV R2, A
JZ ENDD; 遇到音乐结束标志 #00H
ANL A, #0FH
MOV R5, A ;音符的音长保存 R5
MOV A, R2
SWAP A
ANL A, #0FH
JNZ SING ;有音符则唱
CLR TR0 ; 无音符,即休止符,则停止发音
JMP D1
SING: DEC A
2010 年 10 月
电脑学习
第5期
基于单片机控制的多功能音乐播放器的设计与制作
汪本慧 觹
摘 要 : 基于单片机控制的音乐播放器与节日彩灯的设计与制作是高职单片机教学中可以选用的很好案例之一,本文给出了 了一种具体设计与实现的方法。
关 键 词 : 单片机;多功能;音乐播放器
中图分类号:G642
文献标识码: B
SETB EA
SETB TR0; 启动定时器 T0
SETB P2.1
MOV C, P2.1
JC FLASH8LED
MOV A, R0; 外围 8 段彩灯循环依次亮
MOV P1, A
RR A
MOV R0, A
AJMP WORD8LED
FLASH8LED: MOV A, R6; 外围 8 段彩灯闪烁
MOV P1, A
音乐曲
音乐播放
目选择
音量调节

音乐快 片 外部彩
慢切换 机 灯控制
彩灯方 式选择
内部彩 灯控制
图 1 功能模块
图2
喇叭的驱动采用单个三极管组成的简单驱动电路,由
收稿日期:2010-09-02 *汪本慧 广州华南商贸职业学院讲师(广东,广州 510650)。
图 4 仿真电路原理图 · 33 ·
2.2 软件编程及调试 主程序主要用于进行初始化处理、外部开关状态检测
码装入低 4 位,组成一个音乐字节数据,每一首歌曲的音乐
字节数据组成一首音乐的乐谱表。
LS1 +5v
SOUP2.3/A11 RV1
10k
图 3 喇叭驱动电路
2 具体实现过程
2.1 硬件电路 利用单片机的 EDA 软件—Proteus 绘制系统的仿真电
路原理图,如图 4 所示。
文章编号:1002-2422(2010)05-0033-03
Microcontroller-based Multi-function Music Player Design and Production
Wang Benhui
Abstract: Microcontroller-based music player with the design and production of Lantern Festival is the choice of vocational
ORG 0000H JMP MAIN ORG 000BH JMP INTT0 ORG 0100H MAIN: SETB P2.3 MOV 30H, #00H; 播放音符位置偏移量的初始值 MOV R0, #7FH ; 8 段外围彩灯依次亮一段显示方式初 始值(K2 合上时,P2.1=0,依次亮) MOV R1, #01H ; 播放音乐曲目号的初始值(音乐 1) MOV R6, #0FFH; 8 段外围彩灯闪烁方式初始值 (K2 断开时,P2.1=1,闪烁) MOV 50H, #7FH; 内部汉字彩灯依次点亮方式初始值 LOOP: SETB P2.0 MOV C, P2.0 MOV 7FH, #145;节奏延时参数,#145 为慢节奏 JC CHECKBT1 MOV 7FH, #100; #100 为快节奏 CHECKBT1:MOV C, P2.2 JC OKMUSIC ; 检测音乐选择按钮 BT1 是否按下 MOV 30H, #00H;从第 1 个音符开始播放 INC R1 ; 选择音乐按钮 BT1 按下,音乐曲目号加 1 OKMUSIC: MOV B, #3; 判断选择播放的音乐曲目 MOV A, R1 DIV AB MOV A, B CJNE A, #1, NEXTOK MOV DPTR, #MUSIC1;音乐 1 的起始指针 JMP MUSIC NEXTOK: CJNE A, #2, ENDOK
定时器 T0 及中断 初始化,启动 T0
根据节奏与音长播放当前音符
音符偏移量加 1
相关主题