课程设计说明书课程设计名称:单片机课程设计课程设计题目:四位数加法计算器的设计学院名称:电气信息学院专业班级:学生学号:学生姓名:学生成绩:指导教师:课程设计时间:2017.10.30至2017.11.5格式说明(打印版格式,手写版不做要求)(1)任务书三项的内容用小四号宋体,1.5倍行距。(2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。(3)章的标题用四号黑体加粗(居中排)。(4)章以下的标题用小四号宋体加粗(顶格排)。(5)正文用小四号宋体,1.5倍行距;段落两端对齐,每个段落首行缩进两个字。(6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。(8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。(9)标题编号应统一,如:第一章,1,1.1,……;论文中的表、图和公式按章编号,如:表1.1、表1.2……;图1.2、图1.2……;公式(1.1)、公式(1.2)。1课程设计任务书一、课程设计的任务和基本要求(一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根据所选课题的具体设计要求来填写此栏)1.系统通过4x4的矩阵键盘输入数字及运算符。2.可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。3.可以进行加法以外的计算(乘、除、减)。4.创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。(二)基本要求1.有硬件结构图、电路图及文字说明;2.有程序设计的分析、思路说明;3.有程序流程框图、程序代码及注释说明;4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus软件中仿真模拟);5.有程序运行结果的截屏图片。2二、进度安排第9周,10.30~11.51)10.30题目分析,文献查阅2)10.31方案比较,确定设计方案3)10.31~11.1硬件电路设计4)11.2~11.4程序设计,程序调试,系统联调,系统改进5)11.5课程设计说明书撰写三、参考资料或参考文献1.林立,张俊亮.单片机原理及应用——基于Proteus和KeilC[M].北京:电子工业出版社,20132.张毅刚,彭喜元.单片机原理与应用设计[M].北京:电子工业出版社,20083.马忠梅.单片机的C语言应用程序设计(第5版)[M].北京:北京航空航天大学出版社,20134.楼然苗、李光飞.51系列单片机设计实例[M].北京:北京航空航天大学出版社,20033本科生课程设计成绩评定表姓名专业班级学号课程设计题目:课程设计答辩记录:(手写)成绩评定依据:项目得分比例考勤记录设计结果报告撰写答辩成绩备注:成绩评定依据的项目内容和项目分值比例可以由老师按指导的专业进行调整,但成绩评定依据的项目数不得少于3项。最终评定成绩:指导教师签名:年月日Ⅰ目录第一章设计论证...........................................................................................................................................11.1设计分析.................................................................................................................................................11.2设计方案.................................................................................................................................................1第二章硬件设计...........................................................................................................................................22.1硬件结构与工作原理.............................................................................................................................22.2单元电路设计.........................................................................................................................................2第三章软件设计...........................................................................................................................................73.1系统软件结构.........................................................................................................................................73.2主要功能子程序设计.............................................................................................................................9第四章系统调试与分析.............................................................................................................................134.1调试过程与结果...................................................................................................................................144.2结果分析...............................................................................................................................................16第五章设计小结.........................................................................................................................................17附录...............................................................................................................................................................181第一章设计论证1.1设计分析在方案设计过程中,我列出了两种不同的设计方案,分别对应于显示模块和单片机内部运算。显示模块在我的设计中有两种不同的显示方式,分别为数码管显示以及液晶屏显示。对于数码管显示来说,优点是使用简单,反应速度更快,由于LCD有众多的接口,以及指令,因此在软件上要比数码管复杂。数码管显示的缺点也比较明显,就是需要占用过多的单片机输出接口,同时,LCD的显示功能更多,也更直观,对于现实生活中的使用也更加舒适。在综合了以上几点的考虑后,我最终选择了LCD1602液晶显示芯片作为显示模块。在单片机内部运算方面,我的设想也有两种,即支持浮点数运算或只支持整数运算,若只支持整数运算,程序设计势必更加简单易懂,但是出于实用性的考虑,我最终决定了使计算器支持浮点数运算功能。同时,这也能更好地锻炼我的编程思维能力。1.2设计方案按照系统设计的功能的要求,初步确定设计系统由主控模块、显示模块、键盘扫描接口电路共四个模块组成。主控芯片使用8051系列的AT89C52单片机,其中带有非易失性Flash程序存储器,它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。显示模块采用LCD1602液晶显示器为主体构成。键盘电路采用4x4矩阵键盘电路。整个单片机的接口电路:P0用于显示输出或LCD1602信号输入,P1口用于键盘扫描输入,P2口用于LCD1602的控制信号输出。为了驱动系统的各个模块正常协调工作,在软件方面我设计了四大模块,分别为显示、键盘、运算、综合模块,通过综合模块的协调来使其它三大模块正常运行,使计算器能正确运算得出正确结果。2第二章硬件设计2.1硬件结构与工作原理图2.1硬件结构框图系统的主体部分由输入、运算、输出模块所组成,对应于图2.1中有,输入模块为键盘扫描输入,输出模块为LCD1602显示,运算模块为单片机。在系统上电后,单片机初始化,开始运行内部程序,在程序运行过程中,通过软件功能来实现按下键盘上特定按键后,执行不同的功能,例如加减乘除,并将数据输出至显示模块(LCD1602)显示。在运算过程中显示运算数据及符号,运算完成后显示运算结果。2.2单元电路设计2.2.1单片机最小系统单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。主控芯片选取AT89C52芯片,因其具有良好的性能及稳定性,价格便宜应用方便。晶振选取11.0592MHz,晶振旁电容选取20pF。采用按键复位电路,电阻分别选取100Ω和10K,电容选取10μF。以下为单片机最小系统硬件电路原理图(图2.2),仿真接线图(图2.3)。图2.2单片机最小系统硬件电路原理图AT89C52显示模块(LCD1602键盘扫描输入模块(4*4矩阵键盘)3图2.3单片机最小系统仿真接线图2.2.2键盘接口电路计算器所需按键有:数字键:’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’0’。功能键:’+’,’-‘,’*’,’/’,’=’,’C(清零、小数点)’共计16个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0~P1.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口的扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。在Proteus仿真中,我直接使用元件库所有的KEYPAD-SMALLCALC键盘,这种键盘直接实现了4*4键盘的功能,方便使用。如下图2.4所示。在按下其中一个键时,其对应的行与列将都会变成低电平,此时,即可通过判断P1口的值来确定输入的是哪一个按键,然后将所取得的按键通过软件来进行接下来的处理、运算等工作。P01P00P02P03P04P05P06P07D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7RSRWEXTAL218XTAL119ALE30EA31PSEN29RST