基于51单片机的语音计算器设计 下载本文

北京联合大学 毕业设计

图5.4 ISD2560语音芯片录音时序图

5.4.1 分段录放音

2500系列最多可分为600段,只要在分段录/放操作前(不少于300纳秒),给地址A0-A9赋值,录音及放音功能均从设定的起始地址开始,录音结束由停止键操作决定,芯片内部自动在该段的结束位置插入结束标志(EOM);而放音芯片遇到EOM标志即自动停止放音。

2500系列地址空间是这样分配的:地址0-599作为分段用

表 5.5 ISD2560 地址空间分配图

5.4.2 程序流程图

本设计主要通过单片机对ISD2560的控制实现指定地址入口的录音和循环播放。程序要实现下面的过程:

“开始”键按下后,即系统上电后,系统初始化,然后判断开始键是否按下,如果按下则单片机控制PD,P/R引脚低电平,并指向录音地址,启动录音过程。调用录音函数,录音函数为:

27

北京联合大学 毕业设计

Void record(void) {

CE = 0; //片选有效 PD = 0; //非节电模式 PR = 0 ; //录音 }

当CE=0 时芯片使能输入引脚,使能所有的的录音操作。 当PD=0 时使芯片开始工作,而进入非节电模式。

当PR=0 时开始录音,录音时,由地址线提供起始地址,直到录音持续到CE或PD变高,或自动溢出。语音播报系统总流程如图5.6所示:

图5.6 语音播报系统总流程图

28

北京联合大学 毕业设计

在预先设定的时间内,(小于60s)结束录音,松开“开始”键单片机控制P/R引脚回到高电平,即完成一段语音的录制。之后打开外部中断1,指定放音地址,启动放音程序,其放音函数为:

Void playback(void)

{ CE = 0; // 片选有效 PD = 0; // 非节电模式 PR = 1; } // 放音 当CE=0 时芯片使能输入引脚,使能所有的的录音操作。 当PD=0 时使芯片开始工作,而进入非节电模式。

当 PR=1时为高电平,这时选择放音,这时由地址输入提供起始地址,放音持续到EOM位标志。

每次放音结束时,EOM输出会触发单片机的外部中断1,经过适当的延时后,重新启动第二次放音,这样重复三次后关闭外部中断1,流程结束,等待下一次录音。外部中断服务子程序流程图如图5.7所示: 外部中断 服务子程序 关闭外部中断 如果count<2

Count++

延时

打开外部中断

调用播放函数

图 5.7 外部中断服务子程序流程图

29

北京联合大学 毕业设计

5.5 仿真与调试

下面用KEIL uVision与 porteus仿真软件实现简易计算器的仿真与调试。 5.5.1 KEIL uVision调试

Keil是目前进行51单片机开发最常用的编译软件,操作如下:

图5.8 3.6 Keil软件主界面

首先点击Project->New Project…(Project->Open Project…为打开一个已经存在的工程),如图5.8所示。

图5.8 Keil软件打开新工程界面

点开后,在出现的对话框中选择工程存在路径,单击“保存”后,出现(如图5.9所示)界面。在此界面上选择电路板上所用的单片机型号,单击“确定”。

30