微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 如何将独立按键去掉也能实现语音播报

如何将独立按键去掉也能实现语音播报

时间:10-02 整理:3721RD 点击:
如题,我写了个程序,如果把独立按键去掉语音播报就播报不了。求教各位大神如何将语音播报中的独立按键去掉也能让语音正常播报。
#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); //延时
}
}

语音芯片用的是SYN6288

首先,你要明白独立按键的作用是什么?他是怎么触发这个条件,这个信号是怎么去实现播报的,然后将其去掉即可,取而代之一个定时自动触发的信号量

不太懂啊,做了一个星期了没做出来

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top