新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于AT89S52 和K9F6408U0A 的语音数字系统设计

基于AT89S52 和K9F6408U0A 的语音数字系统设计

作者: 时间:2011-01-20 来源:网络 收藏


3 系统软件设计

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

系统流程图
系统流程图
图6 系统流程图。

3.1 系统初始化程序

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

3.2 按键扫描程序

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

3.3 录音程序

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

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

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

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




3.4 放音程序

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

// 函数名称: READBYTE


关键词: 单片机

评论


相关推荐

技术专区

关闭