语音芯片大家都不陌生,最早的像门铃,生日快乐歌等等,虽然它的设计原理我们不清楚,但是我们能够自己设计自己的语音内容。 昨天我们介绍了如何把一段语音文件转换成单片机编程用的头文件,今天我们就用它来设计一个简单的语言播放小板,也就是“单片机说人话”。我们可以用它来做很多事情,而且成本非常低廉。 谁在说话?——正文配图 前面我们制作“电子琴”的时候做了一个小板,今天我们把它稍微改一下,用来播放语音。 改动三个地方:
“电子琴”电路改装图 电路改好后,需要编写程序。 前面我们说过,wav文件记录的两个重要内容,一是采样率,我们选的8000Hz;二是电平值,我们已经制作成表格文件; 那么下来,我们主要是按照一定的时间还原这些电平。 最方便的方式无疑是PWM方式输出波形。由于时间有限,关于PWM的原理今天我们不去讨论,况且相关资料也是非常多。今天我们直接给大家介绍程序的编写。 前面我们制作的板子采用的是STC15W408AS芯片,因为想利用焊接好的端口(P2.6),不想过多改动,那么先看器件手册关于端口的设置: 器件手册局部截图 运气还好,刚好可以设置为P2.6端口输出,需要用到CPP1_3。 增加0.1uF电容是为了把PWM输出的高频脉冲滤波,平滑波形。为什么不用无源蜂鸣器呢?因为蜂鸣器声音频域太窄,影响音质,我们既然播放语音,就要音质好一些,所以建议用耳机或小功放还原声音。(注:蜂鸣器也可以清楚的辨析语音内容。) c51源代码: 由于编译好的代码较大(语音表格原因),头条平台不方便下载,所以需要自己建立工程,新建c文件和昨天介绍的头文件。 注意事项:
下面是c51程序(如果需要,可以自己添加按键控制): 《单片机说话》c51源程序截图 下面是头文件(制作方法请参考前面文章): 《单片机说话》c51头文件源程序截图 制作完成后,用耳机听音质满意,用功放播放低音较重,下面是小功放播放录音: |
|