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