|
- /*********************************************************************************
- * 【作 者】: 深圳邁優科技有限公司
- * 【Q Q】: 854544856
- * 【函數功能】: 基于51單片機的語音模塊串口驅動程序
- **********************************************************************************/
- #include<reg52.h> //包括一個52標準內核的頭文件
- #define uchar unsigned char //定義一下方便后面使用
- #define uint unsigned int //定義一下方便后面使用
- #define ulong unsigned long //定義一下方便后面使用
- #define COMM_BAUD_RATE 9600 //串口波特率
- #define OSC_FREQ 11059200 //運行晶振:11.05926MHZ
- void Delay_Ms(int z)
- {
- int x=0 , y=0;
- for(x=110 ; x>0 ;x--)
- for(y=z; y>0;y-- );
- }
- /******************************************************************************
- - 功能描述: 串口1初始化
- - 注: 設置為9600波特率
- ******************************************************************************/
- void Serial_init(void)
- {
- TMOD = 0x20; // 設置 T1 為波特率發生器
- SCON = 0x50; // 0101,0000 8位數據位, 無奇偶校驗
- PCON = 0x00; //PCON=0;
- TH1=256-(OSC_FREQ/COMM_BAUD_RATE/32/12);//設置為9600波特率
- TL1=256-(OSC_FREQ/COMM_BAUD_RATE/32/12);
- TR1 = 1; //定時器1打開
- REN = 1; //串口1接收使能
- ES = 1; //串口1中斷使能
- }
-
- /*********************************************************************************
- * 【函 數 名】: void send_cmd(uchar dat)
- * 【功 能】: 串口發送數據命令
- **********************************************************************************/
- void send_cmd(uchar dat)
- {
- SBUF=dat; //發送指令到SBUF
- while(!TI); //等待發送結束
- TI=0; //清除結束標志,以便再發送數據
- }
- /*********************************************************************************
- * 【函 數 名】: void send_3dat_cmd(uchar cmd,uchar dat)
- * 【功 能】: 除了起始和結束標志外,發三位長度的數據
- *send_3dat_cmd(0x11,0x12); // 播放
- *send_3dat_cmd(0x12,0x11); //暫停
- * send_3dat_cmd(0x13,0x10); // 下一曲
- * send_3dat_cmd(0x14,0x17); //上一曲
- *send_3dat_cmd(0x15,0x16); //音量加
- *send_3dat_cmd(0x16,0x15); //音量減
- * send_3dat_cmd(0x1A,0x19); //快進
- *send_3dat_cmd(0x1B,0x18); //快退
- * send_3dat_cmd(0x1C,0x1F); //播放/暫停
- **********************************************************************************/
- void send_3dat_cmd(uchar cmd,uchar jy)
- {
- send_cmd(0x7E); //發送"開始命令"到SBUF
- send_cmd(0x03); //發送"命令長度"到SBUF
- send_cmd(cmd); //發送"命令"到SBUF
- send_cmd(jy); // 發送校驗碼到SBUF
- send_cmd(0xEF); //發送"結束指令"到SBUF
- }
- /*********************************************************************************
- * 【函 數 名】: void send_4dat_cmd(uchar cmd,uchar cs,uchar jy )
- * 【功 能】: 除了起始和結束標志外,發四位長度的數據
- * send_4dat_cmd(0x32,0x00,0x36 ) ; //設置EQ
- * send_4dat_cmd(0x34,0x01,0x31 ) ; //文件切換
- * send_4dat_cmd(0x35,0x01,0x30 ) ; //設備切換
- **********************************************************************************/
- void send_4dat_cmd(uchar cmd,uchar cs,uchar jy )
- {
- send_cmd(0x7E); //發送"開始命令"到SBUF
- send_cmd(0x04); //發送"命令長度"到SBUF
- send_cmd(cmd); //發送"插播指令"到SBUF
- send_cmd(cs); // 發送參數 到SBUF
- send_cmd(jy); // 發送校驗碼到SBUF
- send_cmd(0xEF); //發送"結束指令"到SBUF
- }
- /*********************************************************************************
- * 【函 數 名】: void send_5dat_cmd(uchar cmd,uchar cs,uchar gq,uchar jy )
- * 【功 能】: 除了起始和結束標志外,發四位長度的數據
- * send_5dat_cmd(0x43,0x00,0x03,0x45); //插播功能
- * send_5dat_cmd(0x44,0x01,0x06,0x46) ; //插播指定文件夾的歌曲播放,本指令為文件夾01的第6首歌曲
- **********************************************************************************/
- void send_5dat_cmd(uchar cmd,uchar cs,uchar gq,uchar jy )
- {
- send_cmd(0x7E); //發送"開始命令"到SBUF
- send_cmd(0x05); //發送"命令長度"到SBUF
- send_cmd(cmd); //發送"插播指令"到SBUF
- send_cmd(cs); // 發送參數 到SBUF
- send_cmd(gq); //發送第幾首歌曲到SBUF
- send_cmd(jy); // 發送校驗碼到SBUF
- send_cmd(0xEF); //發送"結束指令"到SBUF
- }
-
- void main()
- {
- while(1)
- {
- Serial_init() ;//串口寄存器的初始化設置
- send_3dat_cmd(0x11,0x12); // 播放
- Delay_Ms(3800) ;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
下載地址:http://www.zg4o1577.cn/bbs/dpj-84774-1.html
|
評分
-
查看全部評分
|