微机原理课程设计设计课题基于51单片机的计算器设计学院姓名学号专业班级指导教师设计时间南华大学-2-【摘要】当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且人脑比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器设计开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用4×4矩阵键盘再加上4个独立按键,可以进行加、减、乘、除7位带符号数字运算,同时支持括号的嵌套使用级浮点数的运算,并在LCD1602上显示操作过程。本次设计注重设计方法及流程,首先根据原理设计电路,利用keil编程,借助实验开发平台进行仿真实验,进而利用altiumdesigner制作PCB,最后到焊接元器件,直至调试成功。在设计的同时,特别注重keil软件和altiumdesigner软件的使用方法和技巧以及常用的LCD显示器和矩阵键盘的设计和使用方法。【关键词】计算器,STC89C52,矩阵键盘,1602液晶-3-目录1系统方案设计................................................................................................................-5-1.1设计目的及要求...................................................................................................-5-1.1.1设计目的....................................................................................................-5-1.1.2设计要求....................................................................................................-5-1.2方案论证及选择...................................................................................................-5-1.2.1方案一采用FPGA控制............................................................................-6-1.2.2方案二采用STC89C52...........................................................................-6-1.2.3方案比较及选择........................................................................................-6-2单元电路设计................................................................................................................-7-2.1工作原理.............................................................................................................-7-2.2硬件电路设计.....................................................................................................-8-2.2.1单片机电路设计......................................................................................-8-2.2.2键盘模块电路..........................................................................................-9-2.2.3蜂鸣器提示电路......................................................................................-9-2.2.4液晶显示电路........................................................................................-10-2.3软件设计.............................................................................................................-11-2.3.1键盘扫描..................................................................................................-11-2.3.2表达式的处理..........................................................................................-11-2.4altiumdesigner原理图设计及PCB制作.......................................................-13-2.4.1原理图设计............................................................................................-13-2.4.2PCB制作...............................................................................................-14-2.4.3设计结果...............................................................................................-15-3系统测试.........................................................................................................................-16--4-3.1整数运算.............................................................................................................-16-3.2浮点数运算.........................................................................................................-17-3.3输入出错的情况.................................................................................................-17-4结论与心得体会..........................................................................................................-19-5参考文献......................................................................................................................-20-附录1元器件清单.................................................................................................-21-附录2程序清单.....................................................................................................-22--5-1系统方案设计1.1设计目的及要求1.1.1设计目的通过本次课题设计,应用《单片机应用基础》、《数据结构》等所学相关知识及查阅资料,完成实用计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。1.1.2设计要求在本次课程设计中,主要完成如下方面的设计要求:1、掌握MCS-51系列某种产品(例如8051)的最小电路及外围扩展电路的设计方法;2、计算器能实现基本的加、减、乘、除四则运算;3、支持浮点数运算;4、支持括号运算,允许括号的多层正确嵌套;5、较为友好的界面显示,对输入实时显示,对计算结果输出显示;6、能够具备比较完善的报错系统1.2方案论证及选择基于设计要求,笨设计考虑了两种设计方案,他们均可以实现计算器的功能,但基于设计目的及微控制器的广泛运用,比较两种方案的优劣,最终选择基于51单片机的计算器设计。-6-1.2.1方案一采用FPGA控制FPGA是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以来,FPGA的集成密度和性能提高很快,其集成密度最高达500万门/片以上,系统性能可达200MHz。由于FPGA器件集成度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。但是而基于SRAM编程的FPGA,其编程信息需存放在外部存储器上,需外部存储器芯片,且使用方法复杂,保密性差,而其对于一个简单的计算器而言,实用FPGA有点大材小用,成本太高。1.2.2方案二采用STC89C52单片机是单片微型机的简称,故又称为微控制器MCU(MicroControlUnit)。通常由单块集成电路芯片组成,内部包含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机广泛用于智能产品,智能仪表,测控技术,智能接口等,具有操作简单,实用方便,价格便宜等优点,而其中AT89S52以MCS-51为内核,是单片机中最典型的代表,应用于各种控制领域。1.2.3方案比较及选择通过以上两种方案论证和比较,从设计的实用性,方便性和成本出发,选择了以STC89C52单片机作为中央处理单元进行计算器的设计,这样设计能够实现对六位浮点数的加减和三位浮点数的乘除运算。-7-2单元电路设计2.1工作原理利用矩阵键盘进行按键的输入,通过对矩阵键盘的扫描,获取用户的输入,并实时的显示在1602液晶上,每次获取到输入时,根