欢迎光临~啄木鸟电子科技

软件设计

软件:ETD 580 系列 UART 串口 发码 测试

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

用手机扫描二维码关闭
二维码