

相连,采用中断方式读取A/D转换结果,并启动下一次A/D转换。也可定时启动A/D转换,并读取上次转换结果。2.4 声音编码存储电路 在采样时每一采样点都会产生1字节的数字编码信号,由于采样的频率为8 kHz,若录音15 min,则所需的存储空间为7.031 25 MB,故系统选用8 MB的Flash存储器K9F6408U0A,由于该存储器的地址线和数据线可复用,这样可节省I/O接口。K9F6408UOA的最大优点在于其命令、数据和地址均可通过8条I/O接口线与主控制器进行通信,大大简化了系统的连线,增强了系统的稳定性。除8条I/O接口线外,K9F6408 UOA还包括以下控制线,1)CLE:命令锁存使能端,高电平有效。在
信号的上升沿,命令信号可通过I/O口锁入命令寄存器;2)ALE:地址锁存使能端,高电平有效。在
信号的上升沿,地址信号可通过I/O口锁入地址寄存器;3)
:片选线,低电平有效。在页编程或块擦除操作期间或器件处于忙状态时,
高电平将被忽略,4)
:写使能口,命令、地址和数据在
信号的上升沿被锁定;5)
:读使能口,在该口的下降沿将数据送到I/0口线上,并使内部列地址寄存器加1;6)WP:写保护口,低电平有效,当其为低时,编程擦除操作禁止;7)R/B:操作状态指示信号。为低时,表示正在编程、擦除或读操作,操作结束后变高。利用上述控制线,从而方便实现系统主控制器对K9F6 408U0A的控制。AT89S52单片机与K9F6408UOA存储接口电路如图3所示。




产生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功能可为单片机的应用增加语音功能。对声音采样数据的存储方式是用直接的、原始的采样数据。在具体的实际应用中,可选用内嵌A/D转换器的STC12C5A08AD,可省去外扩ADC0809,使电路更简洁。创新之处在于不使用专用的语音芯片,实现使单片机应用系统语音的存储与回放。
| 欢迎光临 DIY编程器网 (http://diybcq.com/) | Powered by Discuz! X3.2 |