找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何将这个程序中的按键去掉也能让语音播报

[复制链接]
跳转到指定楼层
楼主
ID:135098 发表于 2016-8-14 10:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    如题,我写了个程序,如果把独立按键去掉语音播报就播报不了。求教各位大神如何将语音播报中的独立按键去掉也能让语音正常播报。
#include <reg51.h>
#include <stdio.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
#define KEY          P0  //P1用于键扫描
#define BUFLEN      32  //文字缓冲区的长度
#define HEADLEN       5  //数据包头的长度
#define LEN_OFFSET    2  //长度字节的偏移量(本例中长度不超过255字节,因此只使用1字节长度)
//数据包头(0xFD + 2字节长度 + 1字节命令字 + 1字节命令参数)
uchar head[HEADLEN] = {0xfd,0x00,0x00,0x01,0x00};
//文字(中间有需要变化的内容可在发送前修改)
uchar text[BUFLEN] = {"机油温度         度"};
//延时1ms
void Delay1ms(uchar n)
{
    uchar i=112;
while(n--)
{
  while(i--);
}
}
//串口初始化
void UART_InitBaud(void)
{
SCON=0xD8 ;  //晶振为11.059MHZ时,设定串口波特率为9600bit/s,方式3  
TMOD=0x20 ;
PCON=0x00 ;
TH1=0xFD ;
TR1=1;
}
//串口发送数据
void UART_Trans(uchar n)
{
SBUF = n;   
while(TI==0);  //发送数据   
TI=0;
}   
//发声程序
void Speech(uchar *buf, uchar len)
{
uchar i = 0;          //循环计数变量
uchar xor = 0x00;     //校验码初始化
   
head[LEN_OFFSET] = len + 3;  //计算正文长度(1命令字 + 1命令参数 + 文字长度 + 1校验位)
//发送数据包头(0xFD + 2字节长度 + 1字节命令字 + 1字节命令参数)
for(i = 0; i < HEADLEN; i++)
{
  xor ^= head[i];
  UART_Trans(head[i]);
  Delay1ms(2);
    }
//发送文字内容
for(i = 0; i < len; i++)
{
  xor ^= buf[i];
  UART_Trans(buf[i]);
  Delay1ms(2);
}
UART_Trans(xor);        //发送校验位
}

//主函数
void main()
{
uchar xor = 0;    //校验码(正文内容的异或)
uchar i = 0;      //循环计数变量
float num = 123.45;  //测试值,可以由用户程序自动生成
uchar numbuf[10];
memset(numbuf,0,sizeof numbuf);


UART_InitBaud();  //初始化串口为 9600bps
while(1)
{
  if(KEY != 0xff)
  {
   Delay1ms(10);
   if(KEY != 0xff)
   {
       sprintf(text + 10,"%6.2f",num);  //将浮点数 num 转为字符串,
                                    //并追加到数组text[]的第6字节后
            //(前6字节为字符串“当前值”)
            //参见库函数sprintf()的用法
    num -= 0.43;
    Speech(text,20);   //调用发声函数,读出指定长度数据
   }
  }
  Delay1ms(100); //延时
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:135098 发表于 2016-8-14 10:11 | 只看该作者
我的语音模块用的是SYN6288
回复

使用道具 举报

板凳
ID:245836 发表于 2018-5-7 19:09 | 只看该作者
播报软件是什么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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