GBS6502-UART串行控制模块

GBS6502-UART串行控制模块

型号:GB-069 V1.0

一、实物图

二、接线图

三、基本参数

供电电压:DC4.2-5.5V。

UART参数:TTL,9600,N81

按键功能:5个标准按键,播放/暂停、上一曲、下一曲、音量加、音量减

板载内存:8M Byte (可以更换16M)

板载功放:2W(使用8欧姆喇叭)

音频输出:双声道立体声音频输出,可以外接耳机或功放

接口类型:双排14*2.54mm排针

使用温度:-20--75

尺寸:36*21*14mm

四、使用说明

1、声音文件下载

当需要重新更换声音时,只需要使用一根USB线将本模块和电脑相连接。连接后点击“我的电脑”可以看到新增一个“可移动磁盘”。

点击“可移动磁盘”,就可以打卡本模块的内存磁盘。

打开磁盘之后,就可以按照上图规定,存放自己的文件。

2、UART控制说明

1,串口配置

本模块的串口为TTL电平,可以和电脑或任意单片机相连接来控制模块。

在手册最后附有单片机控制程序,此处介绍使用“串口调试精灵”控制模块。

首先,需要准备一条串口线(TTL电平),将电脑和模块通过串口线连接,并给模块供电。

然后打开“串口调试精灵”,选择对应的串口,将波特率设置为9600,接收数据和发送数据选择为“16进制显示”,然后点击“打开串口”,可以发送相应的指令对模块进行控制了。

最后介绍一下本模块的串口指令

特别注意:发送的指令要发送两遍。

功能指令返回码指令说明

查询当前播放曲

B0 00 00 01--27 0F 当前文件名是哪个就返回哪个

查询当前音量B1 00 00---08

查询当前状态B2 00 01 正在播放

02 暂停

03 停止无声音

查询存储器的总

音乐文件数量

B3 00 00 01--27 0F 总文件数是多少就返回相应的数字

播放一个文件,必须是2个字节00 01--27 0F 无有相应的文件,则进行播放,不设置返回

码。

不论语音是停止状态还是在播放状态,只

要接收到合格的语音播放指令,则马上响

应新的指令。

EE 无此文件名,则返回

停止A0 00 不论声音有播放中还是已经是停止状态,

都一律马上停止播放。

暂停A1 00 无当语音正在播放的时候,实现暂停;

当语音是暂停的状态,则转为播放。

EE 当语音是停止状态,则此指令无效。

上一曲A3 00 无总能依据文件名称大小来进行上一曲播

放;

能进行首尾循环播放;

如果只有一个文件,则在当前文件循环。

EE 内部没有语音文件、或者说没有符合规定

命名的文件。

下一曲A4 00 无参考上一曲。

EE

音量调节A5 00--A5 1E 无MP3芯片内部音量是32级的,

A5 00 是静音

A5 1E 是最大音量

当有记忆器24C02时,上电后以记忆芯片

存储的音量值为准;如果无24C02,上电

后则是默认音量最大值。

E A2 01 单曲播放一次就停止模式(上电默认此模

式,如果24C02有记忆就按照24C02的记

忆来操作。)

发一次指令,语音播放一次就停止。

A2 02 单曲循环模式

举例:进入该模式后,发00 02指令,则

0002.mp3 文件会一直进行单曲循环播

放。直到接收到新的有效指令。

A2 03 顺序循环播放模式

一个声音播放完之后,会按照下一曲的功

能顺序播放下去。直到最后一首,又循环

回第一首。

A2 04 随机播放模式。

进入此模式后,语音段,随机播放播放,

一段接一段的播放,不会停止。除非接收

到新的有效指令。

乱码任意的EE 收到不合格的码,无法识别的。则返回EE

3、按键控制说明

五、容量与音质的解释

很多人会奇怪一个问题:一个4M大小容量的存储器,如何能装11个、甚至是30个MP3文件?下面,我们做出解释及办法如下:

MP3文件容量大小,主要描述参数是:码率。

请下载一个【千千静听】软件来查看MP3文件的码率大小。

选中一个MP3文件,点击右键,然后点击【转换格式】,出现下图:

请再点击【配置】,出现下图:

在恒定码率处,点击下拉框,你会发现一个MP3文件,可以有多种码率可供选择,

码率越高,音质越好,但是文件容量会越大。

码率越低,音质越差,但是文件容量会越小。

容量大小与音质是成反比的。

所以,在这个模块中,板上自带是小容量存储器,所以必须得修改一下MP3的码率,要降低一些,才能将进此存储器。

下表是容量、码率、以及对应的时间长短表格,供参考:

时间单位:秒。

容量

4M 8M 16M

码率

16Kbps 2022 4045 8090

24Kbps 1309 2618 5300

32Kbps 906 1812 3624

64Kbps 477 955 1910

96Kbps 325 651 1302

128Kbps 246 493 986

以上表格时间值,可能会有5%误差,请注意具体实际应用。

六、参考程序

#include "reg51.h"

//单片机STC89C51(2),晶振11.0592MHz

//功能,每一个声音,播放前3秒。

void Delay_Ms(unsigned int Ms)

{

unsigned char Mms;

while(Ms--)

for(Mms=0;Mms<112;Mms++);//延时一毫秒左右

}

/******************************************************************** * 名称 : UART_Init()

* 功能 : 串口初始化,晶振11.0592,波特率9600

* 变量 : 无

* 返回值 : 无

********************************************************************/ void UART_Init(void)

{

TMOD = 0x20; //定时器模式选择

PCON = 0x00;

SCON = 0x50;

TH1 = 0xFd; //设置波特率 9600

TL1 = 0xFd;

TR1 = 1; //启动定时器1

ES = 1; //开串口中断

EA = 1; //开总中断

}

/******************************************************************** * 名称 : PSend_Hex()

* 功能 : 发送字符串函数,可控制发送长度

* 变量 : 无

* 返回值 : 无

********************************************************************/ void Send_Hex(unsigned char *p,unsigned char num)

{

while(num--) //剩余发送的字符数

{

SBUF = *p; //将要发送的数据赋给串口缓冲寄存器

while(!TI);//等待发送结束

TI = 0; //软件清零

p++; //指针加一

}

}

void Play_Num(unsigned int Num) //播放指定曲目

{

unsigned char Table[4];

Table[0] = Num/256;

Table[1] = Num%256;

Table[2] = Num/256;

Table[3] = Num%256;

Send_Hex(Table,4);

}

void main(void)

{

unsigned int Music_Num=1;

UART_Init();

while(1)

{

Play_Num(Music_Num);//播放Music_Num段

Music_Num++;//Music_Num加1

Delay_Ms(3000);

}

}

相关文档
最新文档