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

北京联合大学 毕业设计

显示位置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 地址(H) 第一行 第二行 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 功能:0x31(数字1的代码)并不能显示1出来。原因就是如果你要想在DDRAM的00H地址处显示数据,则必须将00H加上80H,即80H,若要在DDRAM的01H处显示数据,则必须将01H加上80H即80H+01H。依次类推。 5.3 计算器软件设计

现实生活中人们熟知的计算器,其功能主要如下:

1、 2、 3、 4、 1、 2、 3、 4、

键盘输入; 数值显示;

加、减、乘、除四则运算; 对错误的控制及提示; 键盘输入检测模块 算术运算模 块LCD显示模块 错误处理及提示模块。

针对上述功能,计算器软件程序要完成以下模块的设计:

5.3.1 系统总流程图

23

北京联合大学 毕业设计

图5.1 系统总流程图

5.3.2 算术运算程序设计

算术运算程序的过程为:先判断输入的运算符是+、-、*、/ 中的哪一个,输入数值是否溢出,若溢出规定范围,则显示错误信息,若是/,则要先判断除数是否为零,为零就显示错误信息,不为零则显示运算结果,结果可显示小数点后3位,若是-,则直接显示运算结果,可显示负数。其流程图如图5.2所示。

24

北京联合大学 毕业设计

图5.2运算流程图

5.3.3 按键程序设计

有键按下时,单片机响应外部中断0,转入外部中断0中断处理函数,在中断处理函数中完成对按键的判断,以进行下一步的程序处理。 5.3.4 显示程序设计

利用LCD静态显示,通过程序向LCD写指令字或数据使LCD完成不同功能或显示相应数据。

5.3.5 错误处理及提示程序设计

25

北京联合大学 毕业设计

当计算器执行过程中有错误时,会在LCD上显示相应的提示,如当除数为0或数值超出范围时,计算器会在LCD上提示错误。

5.4 语音播报软件设计

录音时,按下录音键,单片机通过口线设置语音段的起始地址,再使PD端、P /R端和CE端为低电平启动录音;结束时,松开按键,单片机又让CE端回到高电平,完成一段语音的录制。同样的方法可录取第二段、第三段??。特别值得注意的是,录音时间不能超过预先设定的每段语音的时间。放音时,根据需播放的语音内容,找到相应的语音段起始地址,并通过口线送出。再将P /R端设为高电平,PD端设为低电平,并让CE端产生一负脉冲启动放音,这时单片机只需等待ISD2560的信息结束信号,即EOM的产生。信号为一负脉冲,在负脉冲的上升沿,该段语音才播放结束,所以单片机必须要检测到EOM的上升沿才能播放第二段,否则播放的语音就不连续,而且会产生啪啪声。具体的软件设计和录放音时序图见表5.3、图5.4和图5.5所示。

表5.3 ISD2560软件设计地址表

图5.3 ISD2560语音芯片放音时序图

26