分享

初学单片机,听见说话不见人,设计电路存语音

 xpxys99 2017-10-16

语音芯片大家都不陌生,最早的像门铃,生日快乐歌等等,虽然它的设计原理我们不清楚,但是我们能够自己设计自己的语音内容。

昨天我们介绍了如何把一段语音文件转换成单片机编程用的头文件,今天我们就用它来设计一个简单的语言播放小板,也就是“单片机说人话”。我们可以用它来做很多事情,而且成本非常低廉。

初学单片机,听见说话不见人,设计电路存语音

谁在说话?——正文配图

前面我们制作“电子琴”的时候做了一个小板,今天我们把它稍微改一下,用来播放语音。

改动三个地方:

  1. 把原来的三极管基极断开;

  2. 对地加一只0.1uF的电容,接到原来连接三极管的电阻上;

  3. 在电容两端接上插座,或者直接引线出来,接耳机,或者小功放输入端。

    如下图所示:

初学单片机,听见说话不见人,设计电路存语音

“电子琴”电路改装图

电路改好后,需要编写程序。

前面我们说过,wav文件记录的两个重要内容,一是采样率,我们选的8000Hz;二是电平值,我们已经制作成表格文件;

那么下来,我们主要是按照一定的时间还原这些电平。

最方便的方式无疑是PWM方式输出波形。由于时间有限,关于PWM的原理今天我们不去讨论,况且相关资料也是非常多。今天我们直接给大家介绍程序的编写。

前面我们制作的板子采用的是STC15W408AS芯片,因为想利用焊接好的端口(P2.6),不想过多改动,那么先看器件手册关于端口的设置:

初学单片机,听见说话不见人,设计电路存语音

器件手册局部截图

运气还好,刚好可以设置为P2.6端口输出,需要用到CPP1_3。

增加0.1uF电容是为了把PWM输出的高频脉冲滤波,平滑波形。为什么不用无源蜂鸣器呢?因为蜂鸣器声音频域太窄,影响音质,我们既然播放语音,就要音质好一些,所以建议用耳机或小功放还原声音。(注:蜂鸣器也可以清楚的辨析语音内容。)

c51源代码:

由于编译好的代码较大(语音表格原因),头条平台不方便下载,所以需要自己建立工程,新建c文件和昨天介绍的头文件。

注意事项:

  1. 下载时选择内部时钟为12.288MHz;

  2. h文件也要添加到工程;

  3. 制作的音频文件不要大与芯片容量;

  4. 制作中单片机的分频设置不正常(当然没有影响到正常使用),如果您采用别的系列试验,欢迎反馈设置情况。

下面是c51程序(如果需要,可以自己添加按键控制):

初学单片机,听见说话不见人,设计电路存语音

《单片机说话》c51源程序截图

下面是头文件(制作方法请参考前面文章):

初学单片机,听见说话不见人,设计电路存语音

《单片机说话》c51头文件源程序截图

制作完成后,用耳机听音质满意,用功放播放低音较重,下面是小功放播放录音:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多