微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于AT89S52和K9F6408UOA的语音数字系统

基于AT89S52和K9F6408UOA的语音数字系统

时间:01-11 来源:互联网 点击:

  2.5 PWM输出电路

  本设计采用单片机输出PWM信号驱动音频放大电路,PWM输出电路如图4所示。PWM是一种利用微处理器的数字输出控制模拟电路的有效技术,对一系列脉冲的宽度进行调制,等效获得所需波形,并且由于没有使用D/A转换器,系统成本减少很多。PWM的优点是从处理器到被控系统信号都是数字形式的,无需进行D/A转换。让信号保持为数字形式可将噪声影响降到最小。此外PWM信号很容易通过MCU的软件进行控制,即使电路稍微有些系统误差,易于通过软件进行校正。

  图4中,利用单片机的P1.7引脚输出一定宽度的PWM信号,通过三极管整形后,作用在惯性环节上,得到的输出信号PWMOUT将作用在音频功放电路上,还原为声音。

  2.6 音频功率放大电路

  为了使系统有足够大的输出,驱动扬声器发声,便于调节音量,在PWM输出电路后使用了音频信号功率放大器LM386构建功率放大电路,如图5所示。

  LM386型音频功率放大器主要应用于低电压消费类产品。为使外围元件最少,电压增益内置为20。但在其引脚1和8之间外接电阻和电容,便可将电压增益调为任意值,直至200。输入端以地位参考,同时输出端被自动偏置到电源电压的一半,在6 V电源电压下,其静态功耗仅为24 mW,使得LM386特别适用于电池供电的场合。PWMOUT为PWM输出电路的输出,扬声器为8 Ω,0.5 W。经过调试发现将电源+5 V用10μF和0.1μF的电容滤波后,会减小很多噪声,效果较好。

  3 系统软件设计

  系统具有录音、放音、暂停、清除存储内容等功能,各种功能由按键来选择,系统首先扫描各个按键的状态,如果有按键按下,就转往相应的处理程序,系统程序流程如图6所示。

  3.1 系统初始化程序

  系统初始化程序主要对单片机中断、定时器、LCD初始化、键盘、PWM、K9F6408UOA存储接口,以及ADC0809地址、程序中要用到的各个变量进行设置。

  3.2 按键扫描程序

  由于录音和暂停是由和外部中断引脚相连的2个按键来设置,一旦按键按下就进入录音或放音程序,所以按键扫描程序用于扫描放音键和清除键是否按下。

  3.3 录音程序

  与外部中断O相连的按键按下,则进入录音程序。

  录音过程实质上是启动ADC0809对模拟音频信号进行采样,并将A/D转换结果存储到外围数据存储器中的过程,故其主要包含对ADC0809进行读取,对外围数据存储器进行写入两个部分。

  提取声音数据时,要注意采样频率、采样位数、存储容量与存储时间的关系,通常8 kHz的采样频率和8位的采样位数可获得清晰的语音以及较好的音乐声,并且占有较少的存储空间。

[next]

  以8 kHz的采样频率启动ADC0809,并读取上次采样结果,写到外扩Flash存储器的代码片段如下:

  3.4 放音程序

  若P1.O按下,则执行放音程序。放音过程实质上是读取外围数据存储器中的数据,将其转化为一定宽度的PWM波,进行输出的过程。读取K9F6408UOA的子函数如下:

  产生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 结束语

利用K9F6408UOA 8 MB NAND Flash存储器和单片机PWM功能可为单片机的应用增加语音功能。对

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

网站地图

Top