单片机音乐播放器设计

2010-04-09 06:08罗卫星
科学之友 2010年11期
关键词:初值播放器字节

罗卫星

(山西电力职业技术学院,山西 太原 030021)

单片机音乐播放器设计

罗卫星

(山西电力职业技术学院,山西 太原 030021)

利用单片机播放音乐大概是单片机爱好者感兴趣的问题之一。文章从单片机的基本发音出发,谈单片机音乐播放器的设计原理,并给出具体实例,以供参考。

单片机;音乐;程序设计

1 引言

单片机是芯片级计算机系统,它可以嵌入到任何对象体系中去,实现智能化控制。独具魅力的单片机能使你体会到电脑的真谛,你可以用单片机亲自动手设计播放简单音乐程序等。利用单片机播放音乐大概是单片机爱好者感兴趣的问题之一。本文从单片机的基本发音原理出发,谈谈单片机音乐播放器的设计原理,并给出具体实例,以供参考。

2 原理

2.1 声音的产生

声音是由物体振动产生的,振动的频率不同,发出的声音也就不同,有规律的振动发出的声音称为“音乐”。一首音乐是由多个音符构成的。每个音符都对应着一个确定的频率。例如C调中的“1”对应的振动频率是524 Hz。因此,可以利用不同频率的组合,构成人们想要的音乐。

2.2 单片机播放音乐的原理

乐曲中不同的音符,实质就是不同频率的声音。可以通过单片机定时器计数的方式产生不同频率的脉冲信号,再利用延时来控制发音的长短,即可控制音调中的节拍,经过放大电路,用P1口的P1.0输出驱动扬声器,就产生了美妙和谐的乐曲。人们将乐曲中每一个音符所对应的频率换算成相应的计数初值。然后,将这首乐曲中所有音符的计数初值编成一个表,并且每一个音符的计数初值对应一个确定的数字码(简谱码)见表1。

表1 简谱对应的频率、简谱码和计数初值

一首乐曲的每一个音符除了频率之外,还有不同的节拍,即该音符发音的持续时间。只要设定延时时间就可以求得节拍的时间。例如:假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求出1/4拍的1DELAY时间,其余的节拍就是它的倍数。

表2 各调1/4节拍的时间设定和各调1/8节拍的时间设定

3 参考程序

乐曲《梁祝》的程序:

ORG 0000H

SJMP MAIN

ORG 000BH

AJMP ZD

ORG 0050H 主程序

MAIN:MOV TMOD,#01H

MOV IE,#82H

LOOP:MOV R0,#00;取简谱码指针

NEXT:MOV A,R0

MOV DPTR,#TAB

MOVC A,@A+DPTR;查表取音调和节拍

MOV R2,A

JZ TZ;为零,不进行处理

ANL A,#0FH;不是,则取低4位(节拍码)

MOV R5,A;将节拍码存入R5

MOV A,R2;将取到的简谱码再载入A

SWAP A

ANL A,#0FH;取低4位(音符码)

JNZ LOOP1;根据音调决定是否演奏.

CLR TR0

SJMP DELAY

LOOP1:DEC A;取到的音符码减 1(不含 0)

MOV 25H,A

RL A

MOV DPTR,#TAB1;至TABLE1取相对的高位字节计数值

MOVC A,@A+DPTR

MOV TH0,A;取到的高位字节存入TH0

MOV 21H,A;取到的高位字节存入(21H)

MOV A,22H;在载入取到的音符码

RL A

INC A

MOVC A,@A+DPTR;至TAB1取相对的低位字节计数值

MOV TL0,A;取到的低位字节存入TL0

MOV 20H,A;取到的低位字节存入(20H)

SETB TR0

D0:LCALL DELAY;其本单位时间1/4拍187毫秒

INC R0;取简谱码指针加1

JMP NEXT;取下一个简谱码TZ:CLR TR0

JMP LOOP;重复循环

ORG 0200H;定时器中断服务程序ZD:PUSH ACC

PUSH PSW

MOV TL0,20H

MOV TH0,21H

CPL P1.0;将P1.0位反相,控制蜂鸣器发声

POP PSW

POP ACC

RETI

DELAY:MOV R7,#02;延时子程序

D2:MOV R4,#187

D3:MOV R3,#248

DJNZ R3,$

DJNZ R4,D3

DJNZ R7,D2

RET

TAB1:决定节拍

DW 64 260,64 400,64 521,64 580

DW 64 684,64 777,64 820,64 898

DW 64 968,65 030,65 058,65 110

DW 65 157,65 178,65 217

TAB:乐曲名称《梁祝》

DB 02H,82H,62H,52H,48H,02H,52H,32H,22H,18H

DB 83H,91H,72H,62H,51H,61H,71H,61H,83H,61H

DB 81H,51H,61H,71H,61H,51H,46H,82H,32H,52H

DB 22H,42H,16H,21H,41H,18H,0E4H,13H,21H,43H

DB 51H,21H,41H,12H,83H,81H,61H,81H,58H,53H

DB 61H,31H,22H,13H,21H,42H,52H,0E2H,42H,21H

DB 11H,91H,41H,18H,63H,81H,32H,52H,21H,41H,

DB 16H,0E4H,11H,21H,31H,51H,26H,11H,21H,43H

DB 51H,82H,62H,52H,61H,51H,42H,21H,11H,0E4H

DB 44H,21H,41H,21H,11H,0E1H,11H,21H,41H,18H

DB 61H,81H,51H,61H,51H,41H,32H,21H,41H,18H

DB 08H,0H,04H;曲子最后静音5拍长的时间

DB 00H;乐曲结束

END

[1] 肖婧,《单片机入门与趣味实验设计》,北京航空航天大学出版社,2008-4,142-144.

Music Player Mono-chip Computers Design

Luo Weixing

The use of Mono-chip Computersr music player is probably the single chip lovers interested in one of the issues.In this paper,the basic pronunciation of Mono-chip Computers,Mono-chip Computers music player to talk about the design principles,and gives concrete examples for reference.

Single Microchip Computer;Music;Programming

TN 912

A

1000-8136(2010)32-0137-02

猜你喜欢
初值播放器字节
No.8 字节跳动将推出独立出口电商APP
播放器
Walkman诞生40周年 索尼适时发布NW-ZX500和NW-A100系列播放器
No.10 “字节跳动手机”要来了?
基于STM32的MP3播放器设计
Moon ACE播放器/放大器一体机
轻量级分组密码Midori64的积分攻击
平流层飞艇上升段轨迹优化的初值选取方法
美国三季度GDP初值创两年最高
人类进入“泽它时代”