51單片機加oled加syn6288
單片機源程序如下:
- #include "config.h"
- /**************芯片設置命令*********************/
- uint8_t SYN_StopCom[]={0xFD,0X00,0X02,0X02,0XFD};//停止合成
- uint8_t SYN_SuspendCom[]={0XFD,0X00,0X02,0X03,0XFC};//暫停合成
- uint8_t SYN_RecoverCom[]={0XFD,0X00,0X02,0X04,0XFB};//恢復合成
- uint8_t SYN_ChackCom[]={0XFD,0X00,0X02,0X21,0XDE};//狀態查詢
- uint8_t SYN_PowerDownCom[]={0XFD,0X00,0X02,0X88,0X77};//進入POWER DOWN 狀態命令
- /***********************************************/
- /***********************************************************
- * 名 稱: YS-SYN6288 文本合成函數
- * 功 能: 發送合成文本到SYN6288芯片進行合成播放
- * 入口參數:Music(背景音樂選擇):0無背景音樂。1-15:相關背景音樂
- *HZdata:文本指針變量
- * 出口參數:
- * 說 明: 本函數只用于文本合成,具備背景音樂選擇。默認波特率9600bps。
- * 調用方法:例: SYN_FrameInfo(0,“樂聲電子科技”);
- **********************************************************/
- void SYN_FrameInfo(uint8_t Music,uint8_t *HZdata)
- {
- /****************需要發送的文本**********************************/
- unsigned char Frame_Info[50];
- unsigned char HZ_Length;
- unsigned char ecc = 0; //定義校驗字節
- unsigned int i=0;
- HZ_Length =strlen(HZdata); //需要發送文本的長度
-
- /*****************幀固定配置信息**************************************/
- Frame_Info[0] = 0xFD ; //構造幀頭FD
- Frame_Info[1] = 0x00 ; //構造數據區長度的高字節
- Frame_Info[2] = HZ_Length + 3; //構造數據區長度的低字節
- Frame_Info[3] = 0x01 ; //構造命令字:合成播放命令
- Frame_Info[4] = 0x01 | Music<<4 ; //構造命令參數:背景音樂設定
- /*******************校驗碼計算***************************************/
- for(i = 0; i<5; i++) //依次發送構造好的5個幀頭字節
- {
- ecc=ecc^(Frame_Info[i]); //對發送的字節進行異或校驗
- }
- for(i= 0; i<HZ_Length; i++) //依次發送待合成的文本數據
- {
- ecc=ecc^(HZdata[i]); //對發送的字節進行異或校驗
- }
- /*******************發送幀信息***************************************/
- memcpy(&Frame_Info[5], HZdata, HZ_Length);
- Frame_Info[5+HZ_Length]=ecc;
- PrintCom(Frame_Info,5+HZ_Length+1);
- }
- /***********************************************************
- * 名 稱: void main(void)
- * 功 能: 主函數 程序入口
- * 入口參數: *Info_data:固定的配置信息變量
- * 出口參數:
- * 說 明:本函數用于配置,停止合成、暫停合成等設置 ,默認波特率9600bps。
- * 調用方法:通過調用已經定義的相關數組進行配置。
- **********************************************************/
- void YS_SYN_Set(uint8_t *Info_data)
- {
- uint8_t Com_Len;
- Com_Len =strlen(Info_data);
- PrintCom(Info_data,Com_Len);
- }
復制代碼
所有代碼51hei提供下載:
1f4f138f2f9f290d796201180af91be6.zip
(57.11 KB, 下載次數: 35)
2021-6-22 12:21 上傳
點擊文件名下載附件
|