ETD 580 系列 串口 发码 测试
/*********************************************
* 项目: ETD58xx 系列 MP3芯片串口控制代码
* 功能: UART 串口 发码 测试;
* 硬件配置:
* 1) MCU型号: AT89C51
* 2) 内部振荡频率为: 11.0592MHz
* 软件版本:
*********************************************/
#include<REG52.H>/*主程序*/
void UART1_Init(void)
{
SCON=0x50; /*SCON:模式1,8-bitUART,使能接收*/
TMOD=0x20; /*TMOD:timer1,mode2,8-bitreload*/
TH1=0xFD; /*TH1:reloadvaluefor9600baud@11.0592MHz*/
TL1=0XFD;
TR1=1; /*TR1:timer1run*/
EA=1; /*打开总中断*/
ES=1; /*打开串口中断*/
}
/**************************************
* 函数: UART1_SendByte(u8 dat)
* 功能: 串口 发送 1 字节(8位)
* 入口:
* 出口:
***************************************/
void UART1_SendByte(u8 dat)
{
// while(!TI);
SBUF = dat;
// asm("nop");
}
/**************************************
* 函数: UART_SER(void) interrupt4
* 功能: 串行中断服务程序
* 入口:
* 出口:
***************************************/
void UART_SER(void)interrupt4 //串行中断服务程序
{
unsignedcharTemp; //定义临时变量
if(RI) //判断是接收中断产生
{
RI=0; //标志位清零
Temp = SBUF; //读入缓冲区的值
P1 = Temp; //把值输出到P1口,用于观察
SBUF=Temp; //把接收到的值再发回电脑端
}
if(TI) //如果是发送标志位,清零
TI=0;
}
/**************************************
* 函数: Delay(u16 nCount)
* 功能: 延时
* 入口:
* 出口: NO
***************************************/
void Delay(u16 nCount)
{
/* Decrement nCount value */
while (nCount != 0)
{
nCount--;
}
}
/**************************************
* 函数: Delay_long(u16 nCount)
* 功能: 延时;
* 入口:
* 出口:
***************************************/
void Delay_long(u16 nCount)
{
/* Decrement nCount value */
while (nCount != 0)
{
Delay(0xffff);
nCount--;
}
}
/**************************************
* 函数: Next_Play()
* 功能: 下一曲播放;
* 入口:
* 出口:
***************************************/
void Next_Play()
{
UART1_SendByte(0x7E);
UART1_SendByte(0x02);
UART1_SendByte(0x03);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Last_Play()
* 功能: 下一曲播放;
* 入口:
* 出口:
***************************************/
void Last_Play()
{
UART1_SendByte(0x7E);
UART1_SendByte(0x02);
UART1_SendByte(0x04);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Specify_Musi_Play(u8 num)
* 功能: 指定曲目播放
* 入口:
* 出口:
***************************************/
void Specify_Musi_Play(u8 num)
{
UART1_SendByte(0x7E);
UART1_SendByte(0x04);
UART1_SendByte(0x41);
UART1_SendByte(0x00);
UART1_SendByte(num);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Volume_add()
* 功能: 音量 +
* 入口:
* 出口:
***************************************/
void Volume_add()
{
UART1_SendByte(0x7E);
UART1_SendByte(0x02);
UART1_SendByte(0x05);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Volume_nec()
* 功能: 音量 -
* 入口:
* 出口:
***************************************/
void Volume_nec()
{
UART1_SendByte(0x7E);
UART1_SendByte(0x02);
UART1_SendByte(0x06);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Specify_Volume(u8 num)
* 功能: 指定音量
* 入口:
* 出口:
***************************************/
void Specify_Volume(u8 num)
{
UART1_SendByte(0x7E);
UART1_SendByte(0x03);
UART1_SendByte(0x31);
UART1_SendByte(num);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Music_play()
* 功能: 播放
* 入口:
* 出口:
***************************************/
void Music_play()
{
UART1_SendByte(0x7E);
UART1_SendByte(0x02);
UART1_SendByte(0x01);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Music_pause()
* 功能: 暂停
* 入口:
* 出口:
***************************************/
void Music_pause()
{
UART1_SendByte(0x7E);
UART1_SendByte(0x02);
UART1_SendByte(0x02);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Music_stop(){
* 功能: 停止
* 入口:
* 出口:
***************************************/
void Music_stop()
{
UART1_SendByte(0x7E);
UART1_SendByte(0x02);
UART1_SendByte(0x0E);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: Cycle_play(u8 num)
* 功能: 1:全部循环 0:单曲循环
* 入口:
* 出口:
***************************************/
void Cycle_play(u8 num)
{
UART1_SendByte(0x7E);
UART1_SendByte(0x03);
UART1_SendByte(0x33);
UART1_SendByte(num);
UART1_SendByte(0xEF);
}
/**************************************
* 函数: main(void)
* 功能: 主函数入口;
* 入口:
* 出口:
***************************************/
void main(void)
{
UART1_Init() ;
Delay_long(12);
Cycle_play(4); //上电初始化设置循环模式 (外挂flash适用)
Delay_long(12);
Cycle_play(4); //上电初始化设置循环模式 (外挂flash适用)
Delay_long(12);
Switch_play_Device(1);//转到TF卡(GD5801适用)
Delay_long(12);
Next_Play();
Delay_long(12);
Cycle_play(1);//全部循环
while(1);
}
联系人:客服在线
手机:全工:13903011251
电话:李R:13530006400
邮箱:729986191@qq.com
地址: GUANGDONG PROVINCE