找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2687|回复: 2
打印 上一主题 下一主题
收起左侧

51单片机驱动syn6288源程序

[复制链接]
跳转到指定楼层
楼主
ID:425145 发表于 2021-6-22 12:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机加oled加syn6288

单片机源程序如下:


  1. #include "config.h"



  2. /**************芯片设置命令*********************/
  3. uint8_t SYN_StopCom[]={0xFD,0X00,0X02,0X02,0XFD};//停止合成
  4. uint8_t SYN_SuspendCom[]={0XFD,0X00,0X02,0X03,0XFC};//暂停合成
  5. uint8_t SYN_RecoverCom[]={0XFD,0X00,0X02,0X04,0XFB};//恢复合成
  6. uint8_t SYN_ChackCom[]={0XFD,0X00,0X02,0X21,0XDE};//状态查询
  7. uint8_t SYN_PowerDownCom[]={0XFD,0X00,0X02,0X88,0X77};//进入POWER DOWN 状态命令

  8. /***********************************************/



  9. /***********************************************************
  10. * 名    称:  YS-SYN6288 文本合成函数
  11. * 功    能:  发送合成文本到SYN6288芯片进行合成播放
  12. * 入口参数:Music(背景音乐选择):0无背景音乐。1-15:相关背景音乐
  13.             *HZdata:文本指针变量
  14. * 出口参数:
  15. * 说    明: 本函数只用于文本合成,具备背景音乐选择。默认波特率9600bps。                                         
  16. * 调用方法:例: SYN_FrameInfo(0,“乐声电子科技”);
  17. **********************************************************/
  18. void SYN_FrameInfo(uint8_t Music,uint8_t *HZdata)
  19. {
  20. /****************需要发送的文本**********************************/
  21.                  unsigned  char  Frame_Info[50];
  22.          unsigned  char  HZ_Length;  
  23.                  unsigned  char  ecc  = 0;                          //定义校验字节
  24.              unsigned  int i=0;
  25.                  HZ_Length =strlen(HZdata);                         //需要发送文本的长度

  26. /*****************帧固定配置信息**************************************/           
  27.                  Frame_Info[0] = 0xFD ;                         //构造帧头FD
  28.                  Frame_Info[1] = 0x00 ;                         //构造数据区长度的高字节
  29.                  Frame_Info[2] = HZ_Length + 3;                 //构造数据区长度的低字节
  30.                  Frame_Info[3] = 0x01 ;                         //构造命令字:合成播放命令                                  
  31.                  Frame_Info[4] = 0x01 | Music<<4 ;  //构造命令参数:背景音乐设定

  32. /*******************校验码计算***************************************/                 
  33.                  for(i = 0; i<5; i++)                                   //依次发送构造好的5个帧头字节
  34.              {  
  35.                  ecc=ecc^(Frame_Info[i]);                //对发送的字节进行异或校验       
  36.              }

  37.                     for(i= 0; i<HZ_Length; i++)                   //依次发送待合成的文本数据
  38.              {  
  39.                  ecc=ecc^(HZdata[i]);                                 //对发送的字节进行异或校验               
  40.              }                 
  41. /*******************发送帧信息***************************************/                  
  42.                   memcpy(&Frame_Info[5], HZdata, HZ_Length);
  43.                   Frame_Info[5+HZ_Length]=ecc;
  44.                   PrintCom(Frame_Info,5+HZ_Length+1);
  45. }


  46. /***********************************************************
  47. * 名    称: void  main(void)
  48. * 功    能: 主函数        程序入口
  49. * 入口参数: *Info_data:固定的配置信息变量
  50. * 出口参数:
  51. * 说    明:本函数用于配置,停止合成、暂停合成等设置 ,默认波特率9600bps。                                         
  52. * 调用方法:通过调用已经定义的相关数组进行配置。
  53. **********************************************************/
  54. void YS_SYN_Set(uint8_t *Info_data)
  55. {
  56.         uint8_t Com_Len;
  57.         Com_Len =strlen(Info_data);
  58.         PrintCom(Info_data,Com_Len);
  59. }
复制代码


所有代码51hei提供下载:
1f4f138f2f9f290d796201180af91be6.zip (57.11 KB, 下载次数: 35)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:93341 发表于 2021-6-30 16:57 | 只看该作者
这个程序,验证了,编译、调试通过了。
回复

使用道具 举报

无效楼层,该帖已经被删除
地板
ID:849434 发表于 2022-1-22 23:17 | 只看该作者
这个有没有stm32f103的例程
回复

使用道具 举报

5#
无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表