基于AT89S52 和K9F6408U0A 的语音数字系统设计
产生PWM 波形的步骤:1)设置定时器,产生定时中断,若采样率为11.025 kHz, 则设置定时器的定时中断频率为11.025 kHz;2)初始化PWM 模块,产生11.025 kHz 的PWM波形;3)等待定时器中断,在中断处理程序中取采样数据,并设置PWM 占空比寄存器,判断声音是否播放完成。若完成,则关定时器中断,并停止PWM 输出。
3.5 暂停程序
在录音过程中,如果需要暂时停止录音可以按下暂停键进入暂停状态, 再次按下暂停键可以返回暂停以前的状态。
程序中设置了一个变量来指示现在是应该暂停还是恢复。
3.6 存储器内容清除程序
当存储器内容已满,而又需要录音时,可以按下清除按键,清除一定容量的内容,供用户再次使用。
擦除:以块为单位进行擦除。代码片段如下。


4 调试注意事项
系统进行调试时,应注意以下方面:
1)由于在PCM(Pulse Code Modulation)编码及DPCM 编码模式下都要采用8 kHz 的采样率,所以,每次压缩中断服务程序必须在不超过125 μs 的时间内完成,因此,压缩录音处理程序的代码必须进行最大可能的优化,以减少程序执行时间,以免采样和数据处理或信息显示发生冲突,也可避免在中断采样时造成采样点的丢失。
2)在选择ADC0809 的时钟时,经典选择是640 kHz 左右,最初选择将单片机的ALE 端4 分频后作为ADC0809 的时钟信号,但发现影响了LCD 的输出显示。将ALE 改为2 分频后(用1 M 触发)作为ADC0809 的时钟信号,问题得到解决。
3)使用MAX813L 复位芯片替代RC 复位电路,使电路可靠复位,结合软件监控实现看门狗功能。
4)当采样频率为8 kHz,字长为8 位时,存储语言时长超过15 min,回放语音质量良好。
5 结束语
利用K9F6408U0A 8 MB NAND Flash 存储器和单片机PWM 功能可为单片机的应用增加语音功能。对声音采样数据的存储方式是用直接的、原始的采样数据。在具体的实际应用中,可选用内嵌A/D 转换器的STC12C5A08AD,可省去外扩ADC0809,使电路更简洁。创新之处在于不使用专用的语音芯片,实现使单片机应用系统语音的存储与回放。本文引用地址:https://www.eepw.com.cn/article/173009.htm
评论