51单片机控制SYN6288语音播报

  • 资料
    • SYN6288模块原理图
    • 语音合成命令
  • 接线
    • 如何接线
    • 实现原理
  • 程序代码
    • main.c
    • syn6288.c
    • uart.c
    • delay.c
  • 基于 51单片机的其他项目
  • 尾声

资料

我用的是绿深电子技术的模块,资料也挺齐全的。也有相关例程。

SYN6288模块原理图

语音合成命令

接线

如何接线

接线其实很简单。

51单片机 SYN6288语音合成
TX RX
VCC VCC
GND GND

实现原理

51单片机 串口接收数据,根据不同的数据 通过串口的形式发送给 SYN6288,从而控制SYN6288语音播报。

程序代码

我用的是STC89C52

main.c

#include <reg52.h>
#include "syn6288.h"
#include "delay.h"
#include "uart.h"/**************芯片设置命令*********************/
unsigned char SYN_StopCom[] = {0xFD, 0X00, 0X02, 0X02, 0XFD}; //停止合成
unsigned char SYN_SuspendCom[] = {0XFD, 0X00, 0X02, 0X03, 0XFC}; //暂停合成
unsigned char SYN_RecoverCom[] = {0XFD, 0X00, 0X02, 0X04, 0XFB}; //恢复合成
unsigned char SYN_ChackCom[] = {0XFD, 0X00, 0X02, 0X21, 0XDE}; //状态查询
unsigned char SYN_PowerDownCom[] = {0XFD, 0X00, 0X02, 0X88, 0X77}; //进入POWER DOWN 状态命令unsigned char receive_ok = 0;  //接收标志位
unsigned char command;      //接收串口来的数据//串口1初始化
void UART1_Init(void)
{SCON = 0x50;      //8位数据,可变波特率TMOD |= 0x20;      //设定定时器1为8位自动重装方式TL1 = 0xFD;       //设定定时初值TH1 = 0xFD;        //设定定时器重装值ET1 = 0;     //禁止定时器1中断TR1 = 1;     //启动定时器1ES = 1;EA = 1;RI = 0;TI = 0;
}void  main(void)
{UART1_Init();SYN_FrameInfo(0, "[v3][t5]大家好"); //喇叭说 你好delay(2000);receive_ok = 1;while(1){//选择背景音乐2。(0:无背景音乐  1-15:背景音乐可选)//m[0~16]:0背景音乐为静音,16背景音乐音量最大//v[0~16]:0朗读音量为静音,16朗读音量最大//t[0~5]:0朗读语速最慢,5朗读语速最快//其他不常用功能请参考数据手册/*判断指令*/switch(command){case '1':       //如果是 1receive_ok = 0;SYN_FrameInfo(0, "[v3][t5]你好");  //喇叭说 你好delay(2000);command = 0;receive_ok = 1;break;case 'G':         //如果你 G  喇叭说 这个是干垃圾receive_ok = 0;     //禁止接收串口数据SYN_FrameInfo(0, "[v3][t5]这个是干垃圾");delay(2000);command = 0;receive_ok = 1;        //允许接收串口数据break;default :receive_ok = 1;break;}        //暂停合成,此时没有用到,用于展示函数用法//YS_SYN_Set(SYN_SuspendCom);}}//串口1中断
void Uart1_Isr() interrupt 4
{if(receive_ok == 1)  //如果可以接收数据了{command = SBUF;    //接收数据while(!RI);RI=0;receive_ok = 0; }   }

syn6288.c

#include <reg52.h>
#include <string.h>
#include "uart.h"
#include "syn6288.h"/**************芯片设置命令*********************/
/*外部声明*/
extern unsigned char SYN_StopCom[];
extern unsigned char SYN_SuspendCom[];
extern unsigned char SYN_RecoverCom[];
extern unsigned char SYN_ChackCom[];
extern unsigned char SYN_PowerDownCom[];//Music:  0:无背景音乐  1~15:选择背景音乐
void SYN_FrameInfo(unsigned char Music, unsigned char *HZdata)
{/****************需要发送的文本**********************************/unsigned char  Frame_Info[50];unsigned char  HZ_Length;unsigned char  ecc  = 0;            //定义校验字节unsigned int i = 0;HZ_Length = strlen((char*)HZdata);             //需要发送文本的长度/*****************帧固定配置信息**************************************/Frame_Info[0] = 0xFD ;          //构造帧头FDFrame_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;UART1_SendString(Frame_Info, 5 + HZ_Length + 1);
}

uart.c

#include <reg52.h>
#include "uart.h"/*串口发送一字节数据*/
void UART1_SendByte(unsigned char DAT)
{SBUF = DAT;while(TI == 0);TI=0;
}/*串口发送字符串数据*/
void UART1_SendString(unsigned char *DAT, unsigned char len)
{unsigned char i;for(i = 0; i < len; i++){UART1_SendByte(*DAT++);}
}

delay.c

#include <reg52.h>
#include "delay.h"//软件延时1ms
void  delay(unsigned int uldata)
{unsigned int j  =  0;unsigned int g  =  0;for (j = 0; j < uldata; j++)for (g = 0; g < 110; g++);
}

基于 51单片机的其他项目

基于51单片机+遥控灯
基于51单片机+LCD1602显示
基于51单片机+红外遥控解码+LCD1602显示
基于51单片机+DHT11温湿度+LCD1602显示
基于51单片机+DS18B20温度测温器+LCD1602显示
基于51单片机+LD3320语音模块+SYN6288语音合成——语音识别智能分类垃圾桶

尾声

如果觉得这篇文章对你有用。欢迎大家点赞、评论哈哈

需要 整个SYN6288工程源码 和 资料 ,欢迎大家打赏,评论区留上你的邮箱 or vx or qq。o( ̄︶ ̄)o

继续加油!

基于51单片机+SYN6288语音播报相关推荐

  1. 24、基于51单片机公交车语音播报加时间显示系统设计

    摘 要 随着国民经济的快速发展,我国城市人口高度集中并大幅增长, 交通需求不断扩大导致城市道路交通拥挤,乘坐公交车出行是解决我国城市交通发展问题和实践低碳环保绿色出行的有效途径,随着近年来城市公交事业 ...

  2. 51单片机LCD12864语音播报电子书语音听书TTS串口语音

    实践制作DIY- GC0082-语音播报电子书 一.功能说明: 基于51单片机设计-语音播报电子书 功能介绍: 基于STC89C52(AT89C51/52)单片机,LCD12864,TTS串口语音模块 ...

  3. 51单片机温度语音播报系统TTS播报DS18B20温度LCD1602显示

    实践制作DIY- GC0023-温度语音播报系统 一.功能说明: 基于51单片机设计-温度语音播报系统 功能介绍: 1.STC89C52单片机(STC89C51/52 AT89C51/52 任选其一) ...

  4. 基于51单片机的语音采集系统设计(录音笔选择方案)

    功能: 基于51单片机的语音实时采集系统 系统由STC89C52单片机+ISD4004录音芯片+LM386功放模块+小喇叭+LCD1602+按键+指示灯+电源构成 具体实现功能: (1)可通过按键随时 ...

  5. 基于51单片机的语音控制GSM短信报警密码锁proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.输入密码正确,屏幕提示OK:输入密码错误,蜂鸣器LED声光报警 2.连续三次输入密码错误,屏幕提示LOCK锁住,并通过GSM发送报警短信 3. ...

  6. 基于STM32单片机的语音播报超声波测距系统【ISD1820录放模块继电器蜂鸣器扬声器】

    系统功能 使用STM32开发板,先用红外测试是否有遮挡,如果有,则使用超声波测距.如果是0-80cm之间,则打开蜂鸣器.灯.喇叭播放"当心车门开启",震动马达震动(以上持续1分钟) ...

  7. 51单片机声控语音PWM风扇可自动温控定时调速风扇转速显示

    实践制作DIY- GC0017-声控语音PWM风扇 一.功能说明: 基于51单片机设计-声控语音PWM风扇 功能介绍: 1.基于51(AT89C52.STC89C52)单片机,DS18B20温度传感器 ...

  8. 51单片机智能语音温控摇头电风扇落地扇可红外遥控可PWM调速定时温度显示

    实践制作DIY- GC0073-智能语音温控摇头电风扇 一.功能说明: 基于51单片机设计-智能语音温控摇头电风扇 功能介绍: 硬件组成:STC89C52单片机+语音识别模块+DS18B20温度传感器 ...

  9. 基于51单片机的多功能智能语音循迹避障小车

    目录 一.功能介绍及硬件准备 二.电机控制及调速 三.小车循迹方案 四.跟随功能实现 五.测速功能实现 六.OLED显示车速 七.摇头避障功能实现 八.SU-03T语音模块介绍 九.语音切换小车模式+ ...

  10. B47 - 基于51单片机的RFID停车计费系统

    任务摘要 当今社会,交通压力不断增加,智能停车场管理系统是人们对便捷高效交通的一种追求.本智能停车场管理系统运用RFID技术,采用STC8H8K64U单片机.RC522.串口屏.光电传感器实现系统设计 ...

最新文章

  1. ipa 打包遇到的坑
  2. IDEA一直卡在Resolving Maven dependency的解决办法
  3. 避免App沦为“僵尸”的12个秘诀
  4. python 旋转图像
  5. java类型比较_Java数据类型的比较
  6. android手机连接无线路由器上网设置,怎样用手机设置无线路由器上网?
  7. ubuntu搭建lnmp+Yaf+Redis环境
  8. Web应用安全————多点登录互斥
  9. Intel Haswell/Broadwell架构/微架构/流水线 (2)-流水线前端
  10. TextView滚动功能的实现
  11. CCF201709试题
  12. 如何远程linux服务器桌面,LINUX操作系统如何远程登录桌面
  13. 1.PHP核心技术与最佳实践 --- 面向对象思想的核心概念
  14. android 气泡尖角边框,如何使用CSS实现一个带尖角的气泡框?
  15. CCIE实验笔记之---第1章WAN协议(HDLC)
  16. 人生路上前进的方向----有几条线贯穿自己的人生
  17. 获取电商网站主图和详情图的浏览器插件
  18. 查看表空间和表的使用率
  19. css画三角形、梯形
  20. 五款开源图像处理软件

热门文章

  1. QQ音乐自定义音效通用设置
  2. RFC2544优化步长测试——信而泰网络测试仪实操
  3. HexCompare比较任意Bin/Hex/Srec/s19/elf文件
  4. 红米6pro刷Android原生,红米6 Pro 魔趣OS 安卓9 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
  5. 动态规划——状态转移方程
  6. 冗余代码检查工具Simian
  7. Python爬虫 - 01.实现贴吧一键签到
  8. 技嘉主板bios设置内存图解
  9. html 设置origin,background-origin属性怎么用
  10. 人工智能表格票据识别-要素信息自动识别提取