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

北京联合大学 毕业设计

2 系统方案设计

2.1 功能介绍

2.1.1 基本功能

根据所学知识,自行设计一个计算器,要求自行设计供电电源,该计算器能够实现加减乘除四则混合运算,能够实现连续计算。 2.1.2 扩展功能

(1)该计算器能够实现精确到小数点三位的运算。 (2)该计算器可显示负数。

(3)该计算器带有DIY语音系统,可自定义录/放音。

2.2 方案论证与比较

2.2.1 控制部分的设计方案论证与选择

根据设计要求,控制器主要用于红外信号的接收和辨认、控制步进电机的动作,控制显示步进电机的转速等。控制器主要用于数据的接收和发送、数据的运算,控制显示液晶屏等,针对这些要求,对于控制器的选择有以下三种方案。 方案一:采用计算器专用芯片实现。

用计算器专用芯片进行设计并编程实现。这种设计方案计算效率高、速度快、而且成本也相对较低,是厂家做计算器的最佳方案。但是本人对计算器专用芯片掌握的不够,还不足以实现设计计算器,所以这个方案不可去可取。 方案二:采用FPGA(现场可编程门阵列)作为系统的控制器。

FPGA将所有器件集成到一块芯片上,体积小,节省空间,提高了稳定性;直接面向用户,具有极大的灵活性和通用性,使用方便,硬件测试和实现快捷,开发效率高,工作可靠性好。可以实现各种复杂的逻辑功能,规模大,密度高,采用并行的输入输出方式,系统处理速度高,适合作为大规模实时系统的控制核心。由FPGA内部编程实现计算器功能,本设计对数据处理速度的要求不是很高,FPGA的高速处理的优势得不到充分的体现,由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物电路板布线复杂,加重了电路设计和实际焊接的工作。并且FPGA的价格相对较高,性价比太低,所以这个方案不考虑。 方案三、用单片机实现。

由于单片机集成了运算器电路、控制电路、存储器、中断系统、定时器/计数器以及输入/输出口电路等,所以用单片机设计控制电路省去了很多分立元器件。由于

3

北京联合大学 毕业设计

单片机是可编程芯片,并且它可以运用C语言编写,对于一些复杂的计算功能,可以调用C语言库函数。使编写程序变得非常简单。所以该课题用单片机实现,不仅功能易于实现,而且精确度高,稳定性好,抗干扰能力强。并且由于其成本低、体积小、技术成熟和功耗小等优点,且技术比较成熟。性价比也相当高。更重要的是本人经过几年的学习,对单片机已有深刻的理解,并且可以灵活运用。

综上所述,并通过各个方面综合比较为达到最佳效果。我们采用方案三利用单片机控制器。

2.2.2 显示电路的设计方案论证与选择 方案一:数码管显示方案。

数码管显示使用两个四位一体动态数码管显示方案,采用动态数码管显示,具有程序简单,对外界环境要求低,易于维护,同时其精度比较高,精确可靠,操作简单。显示直观的特点。但只能显示数字和一些代码,不能显示汉字及一些常用的符号,且硬件设计比较复杂。

方案二:采用AT1602型液晶显示。 (一)基本特性 显示特性

1、+5V电压,对比可调度; 2、内含复位电路;

3、提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能; 4、有80字节显示数据存储器DDRAM;

5、内建有160个5X7点阵的字型的字符发生器CGROM; 6、8个可由用户自定义的5X7的字符发生器CGRAM。 (二)接口定义

AT1602接口定义如图2.1所示:

4

北京联合大学 毕业设计

图2.1 接口定义图

综上所叙,AT1602的显示效果好、功能齐全,所以我们选用AT1602液晶显示。该液晶有16个引脚,它能显示32个字符,并且硬件电路设计简单,显示美观。 2.2.3 键盘设计方案与选择 方案一:独立键盘。

独立键盘为一端接地,另一端接I/O口,并且要接上拉电阻。这种键盘的硬件都很容易实现,但每一个按键就要用一个I/O口,非常的浪费单片机的I/O口资源,不适合本次设计。

方案二:自制编码键盘。

编码键盘编程简单,占用资源少,但其硬件比较复杂,要用很多的二极管,不是很理想。

方案三:4*4矩阵式键盘。

这种键盘的硬件简单,使用的I/O口比独立键盘减少一半,而且这种键盘的编程

5

北京联合大学 毕业设计

方法已很成熟。所以本次设计采用这种矩阵式键盘。

2.3 系统组成

本设计采用MCS-51系列单片机AT89C51来设计计算器。通过扩展必要的外围接口电路,实现对计算器的设计。由键盘输入数值,再通过8051单片机输入到系统,并由I/O口输出送到LCD显示屏;最后由1602LCD显示输入数值和输出结果,还可以通过语音模块可以达到语音播报实现录放音的功能效果。其中,设计以单片机为核心,包括开关模块、扩展模块、运算模块、语音模块和显示模块。系统框图如下图所示: 开关模块

运算模块 AT89C51扩展模块 主控器 显示模块 语音模块

图2.2 系统框图

硬件电路是采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。

硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使所设计的系统实用性强、操作简单。软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系列单片机,因此使用Keil C语言进行开发,Proteus仿真软件进行仿真。此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过Keil调试后,达到设计功能要求,并在Proteus中仿真。

在设计中采用AT89C51单片机作为微处理器,低电压、高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)

6