《毕业设计-简易计算器的制作.doc》由会员分享,可在线阅读,更多相关《毕业设计-简易计算器的制作.doc(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 存档编号 XX水利水电大学 毕 业 设 计题目 简易计算器的制作 学 院 信息工程学院 专 业 通信工程 姓 名 学 号 指导教师 XX 完成时间 2014.5.14 教务处制独立完成与诚信声明本人郑重声明:所提交的毕业设计(论文)是本人在指导教师的指导下,独立工作所取得的成果并撰写完成的,郑重确认没有剽窃、抄袭等违反学术道德、学术规范的侵权行为。文中除已经标注引用的内容外,不包含其他人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确的说明并表示了谢意。本人完全意识到本声明的法律后果由本人承担。毕业设计(论文)作者签名: 指导导师签名: 签字日期:
2、签字日期:毕业设计(论文)版权使用授权书本人完全了解华北水利水电大学有关保管、使用毕业设计(论文)的规定。特授权华北水利水电大学可以将毕业设计(论文)的全部或部分内容公开和编入有关数据库提供检索,并采用影印、缩印或扫描等复制手段复制、保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交毕业设计(论文)原件或复印件和电子文档(涉密的成果在解密后应遵守此规定)。毕业设计(论文)作者签名: 导师签名:签字日期: 签字日期:目 录摘 要1Abstract2第一章绪论31.1 开发背景31.2 设计目的4第二章方案论证与设计52.1设计指标52.2方案论证与设计5第三章硬件模块介绍83.1主控及运
3、算模块83.2显示模块133.3输入模块16第四章软件设计184.1主程序的设计184.2键盘扫描的程序设计194.3显示模块程序设计214.4运算模块程序设计23第五章仿真及调试24结束语25致 谢26参考文献27附录一:硬件实物图28附录二:系统程序29附录三:任务书40附录四:开题报告42附录五:外文原文与外文译文47基于AT89C51单片机的简易计算器的设计摘 要计算器在人们的日常生活中是较为常见的电子产品之一。初期的计算器仅仅能实现简单的加减乘除运算,而现在人们所广泛使用的科学计算器功能已不再停留于此,除了加减乘除运算外,它还能进行乘方,开方,指数,对数,三角函数,反三角函数等的存储
4、和运算。而且计算器的种类和模式也在逐渐多样化,如使用太阳能电池的计算器,使用ASIC制作的计算器,使用纯软件设计的计算器和被集成到手机、平板电脑等电子产品中的计算器。可以说计算器还正在发展之中而且还将有很大的发展空间,未来必将出现功能更加强大的计算器。基于这样的理念,本设计以AT89C51单片机为核心,以软硬件结合的方式设计了一个简易计算器。该计算器以4*4矩阵键盘为输入方式,可以进行4位带符号数的加减乘除运算,并在LCD1602液晶显示器上显示操作过程。该论文详细介绍了整个系统的硬件组成结构、工作原理和软件设计思想与流程。关键词: 计算器 AT89C51 LCD1602 矩阵键盘Simple
5、 calculator designed based on AT89C51Abstract The calculator in Peoples Daily life is one of the most common electronic products. Early computing calculator can only implement simple addition, subtraction, multiplication, and division, but now the scientific calculator which widely used by peoples f
6、unctions are no longer stay, operation besides addition, subtraction, multiplication, and division, it can also power, prescribe, index, logarithmic, trigonometric function, inverse trigonometric function such as storage and computation. And the types of the calculator and pattern has also been grad
7、ually diversified, such as using solar calculator, using ASIC production calculator, using pure software design of the calculator and be integrated into mobile phones, tablets, and other electronic products in the calculator. We can say that calculators are under development and will also have very
8、big development space, the future will appear more powerful calculators. Based on this idea, I design a simple calculator which use AT89C51 single-chip microcomputer as the core, and use the way that combine the hardware and software. The calculator use 4 * 4 matrix keyboard as input mode, it can ca
9、rry out four signed several operations of addition,subtraction, multiplication, and division, and it display operation process on the LCD1602 . The paper introduces in detail the system structure, working principle of the hardware and the software design idea and process.key words: calculator AT89C5
10、1 LCD1602 matrix keyboard55华北水利水电大学毕业设计第一章 绪论1.1 开发背景计算器是日常生活中比较常见的电子产品之一,它已在数十年间遍布千家万户。计算器(calculator ;counter)一般是指“电子计算器”,该名词由日文传入中国。它是能进行数学运算的手持机器,拥有集成电路芯片,但结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑),且功能也较弱,但较为方便与廉价,可广泛运用于商业交易中,是必备的办公用品之一。除显示计算结果外,还常有溢出指示、错误指示等。对于计算器的百年历史,1946年2月15日,在美国宾夕法尼亚大学,世界上第一台电子计算
11、器ENIAC正式投入了运行。在隆重的揭幕仪式上,ENIAC表演了它的“绝招”:在1秒钟内进行5000次加法运算;在1秒钟内进行500次乘法运算。这比当时最快的电器计算器的运算速度要快1000多倍。全场起立欢呼,欢呼科学技术进入了一个新的历史发展时期。电子计算器不仅是一种工具,它与其它的工具都不相同:电子计算器是人脑的一个侧面的延伸。因为电子计算器不仅具有非凡的计算能力,速度之快令人望尘莫及,而且还能够仿真人的某些思维功能,按照一定的规则进行逻辑判和逻辑推理,代替人的部分脑力劳动。1976年,数学家凭借电子计算器去证明四色定理,“依靠机器完成了人没有能够完成的事情”,轰动了整个国际数学界。随着社
12、会的发展和科学技术的进步,电子产品变得越来越先进,功能变得越来越强大,集成化程度也变得越来越高,其更新速度令人吃惊。对于计算器人们也在不断地对它进行改进,然而技术的进步是无止境的,如何让计算器技术更加的成熟,充分利用现有的软件和硬件条件,制作出更加好用的计算器,让我们更方便的使用它,让它更好的为我们的生活服务,始终是当今电子领域的重要研究课题。而另一方面,近年来,单片机以其体积小、价格廉、面向控制等诸多优点,在各种工业控制、仪器仪表、产品、设备的自动化、智能化方面获得了极为广泛的应用。与此同时,单片机系统的可靠性成为人们越来越关注的重要课题。影响系统可靠性的因素是多方面的,如构成系统的各种元器
13、件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中抗干扰性能是系统可靠性的重要指标。本设计采用AT89C51芯片和LCD1602液晶显示器,实现了利用单片机来设计一个简易计算器的目的。该计算器允许对四位输入数据进行带符号加减乘除运算,用C语言编写程序驱动整个系统的运行,便于移植和升级。如果所要设计的对象是更为复杂的计算器系统,其实际原理和实现方法与本设计基本相同。本设计关键在于必须非常熟悉单片机的原理与结构,并能熟练的运用51C语言来编写程序,同时还要对整个系统的设计流程有很好的把握,从而将单片机和其他模块完整的衔接。在现今的日常生活中,计算器毫无疑问是人们的最重要工具之一,它的身影遍布
14、在社会的各个角落,例如商店,学校等等。所以设计一款简单但却极其实用的计算器具有很大的实际意义,而本文中利用单片机和LCD1602液晶结合设计的计算器充分利用了以上所讲的单片机的诸多优点,具有很好的实用价值。1.2 设计目的本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。第二章 方案论证与设计2.1 设计指标本次设计的简易计算器的基本性能如下:1、 能够进行4位整数
15、的加减乘除运算(除法的结果中可以有小数)。2、 能够将计算结果输出到LCD1602液晶显示屏中以便于观察。3、 能够实现清除数据的功能。4、 能够进行错误提示(比如当输入数据除数为0时会在LCD1602上显示error)。2.2 方案论证与设计根据功能和以上对设计指标的描述,本系统采用AT89C51单片机为控制芯片,LCD1602为显示芯片,辅以其他电路所需基本器件,完成对简易计算器的设计。具体的设计考虑如下:1、 由于本次所要设计的是一个简易计算器, 要求能够进行4位整数的加减乘除运算,功能较为简单,所编写程序不会太长,故使用AT89C51单片机即可满足需求。2、 由于LCD1602液晶显示
16、器相比于8段数码管而言,拥有更大的显示量,更好的显示效果,更全面的显示字符类型,因此这里选用LCD1602液晶显示器作为显示模块。3、 根据计算器的功能要求,键盘包括数字键(0-9)、符号键(+、*、)、清除键(CE)和等号键,故需要16个按键(4*4键盘)。系统模块图如图2.1所示:4*4矩阵键盘(输入模块)LCD1602液晶显示器(显示模块)AT89C51单片机运算模块(编程实现)图2.1 系统模块图为了更好的实现系统的功能,硬件电路的设计应该遵循以下原则:1、优化硬件电路采用软件设计与硬件设计相结合的方法;尽管采用软件来实现硬件系统的功能时,也许响应时间会比单纯使用硬件时长,而且还要占用
17、微处理器(MCU)的时间;但是,用软件实现硬件的功能可以简化硬件结构,提高电路的可靠性。所以,在设计本系统得时候,在满足可靠性和实时性的前提下,尽可能的通过软件来实现硬件功能。2、可靠性及抗干扰设计根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长。而且,所用芯片数量越少,地址和数据总线在电路板上受干扰的可能性也就越小。因此,系统的设计思想是在满足功能的情况下力争使用较少数量的芯片。3、灵活的功能扩展功能扩展是否灵活是衡量一个系统优劣的重要指标。一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善以及进行功能升级。进行功能扩展时,应该在原有设计的基础上,通过修改软件程序和
18、少量硬件完成。对于本系统而言,就是要求在系统硬件不变的情况下,能够通过修改软件程序,完成功能的升级和扩展。而在软件方面根据设计需要我们可以采用自上而下的程序设计方法,这种方法先从主程序开始设计,之后再编制各从属程序和子程序,层层细化逐步求精,最后完成一个复杂程序的设计。这种设计方法比较符合人们的日常思维,但是缺点是一级的程序错误将会对整个程序产生影响。计算器的程序流程图如图2.2所示:结束(断开电源)是否按下CE键输入数据LCD显示按下功能键计算结果LCD显示是否结束按下功能键LCD显示输入数据LCD显示初始值启动计算器(接通电源)图2.2 程序流程图第三章 硬件模块介绍33.1 主控及运算模
19、块 AT89C51单片机是将微处理器(CPU),数据存储器(RAM)、程序存储器(4KB Flash ROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)这些一台计算机所需要的基本功能部件集成在了一块芯片上,它靠程序运行,并可以修改程序以通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过单片机及其程序可以实现高智能,高效率,以及高可靠性!所以设计采用单片机作为该计算器的主控及运算模块,可以很好的实现控制和运算功能。AT89C51单片机引脚图如图3.1,其实际外观图如图3.2:图3.1 AT89C51单片机引脚图图3.2 AT89C51单片机实际外观图
20、其各引脚功能如下:一、 电源引脚1、 Vcc: 正电源脚,接+5V电源。2、 GND: 接地端。二、 外接晶体引脚外接晶体引脚图如图3.3所示:图3.3 外接晶体管引脚1、 XTAL1:片内振荡器反相放大器和时钟发生器电路的输入端。使用片内振荡器时,该引脚连接外部石英晶体和微调电容。2、 XTAL2:片内振荡器反相放大器和时钟发生器电路的输出端,当使用片内振荡器时,该引脚连接外部石英晶体和微调电容。当采用外部时钟源时,引脚XTAL1接收外部时钟振荡器的信号,XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,比如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内
21、选择,而电容则取30PF左右。型号同样是AT89C51的芯片,在其后面还会有频率编号,有12,16,20,24MHz可选,在购买和选用时需注意。比如AT89C51 24PC就是最高振荡频率24MHz,40P封装的普通商用芯片。三、 控制引脚1、 RST复位信号输入端,高电平有效。当单片机运行时,在此引脚加上持续时间大于2个机器周期(24个时钟振荡周期)的高电平时,就可以对单片机完成复位操作且只要这个脚保持高电平,51芯片便循环复位。在单片机复位后P0P3口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当RST脚电平由高变低时,单片机开始从ROM的0000H处开始运行程序。
22、在单片机正常工作时,此引脚应为=data_b)data_c=data_a-data_b; /* - S=2 */减 elsedata_c=data_b-data_a;W_lcd(5,1,-); /负数符号 break; case 3:data_c=(data_a*data_b);break; /* * S=3 */乘case4:if(data_b=0)LCD_Write_String(0,1,Error !);elsedata_c=(data_a*10000)/data_b;break; /* / S=4 */除/溢出时显示错误case 0:break; 第五章 仿真及调试在本设计中使用kei
23、l C软件对程序进行编译,然后再将其编译连接后所生成的执行文件放入已搭建好的proteus仿真图中的AT89C51单片机上进行仿真。其仿真图如图5.1所示:图5.1 简易计算器仿真图 首先输入第一个数据,然后再输入功能键(+,-,*,/)和另一个数据,最后按等号键就可以看到LCD显示屏的第二行显示出相应的结果。如上图中输入“222/5=”,就在第二行显示出结果“44.4000”,从这个结果可以看出,当计算结果为小数时,计算器能够显示小数,小数位为四位。另外,在计算除法时,如果输入除数为0,可以看到LCD的第二行显示出“Error 0.0000”的字样。结束语在硬件的制作过程中我走了好多的弯路,
24、主要是在系统还没有设计很有把握就开始动手制作了。后来发现与设计的要求还有偏差,反复的改过了几次,浪费了大量的时间和体力。感受到设计人员要有耐心,要认真的从要求开始研究。软件的编写过程中费了很大的力气,因为软件的编写要求很高,要很细心,一不小心就会调用错误,很深刻的体会到作为软件编程人员是绝不能粗心大意的。一个程序的完成的速度和质量高低与细心与否有着很大联系。编程时,我充分使用了结构化的思想。这样因为语句较少,程序调试比较方便,功能模块可以逐一的调试,充分体现了结构化编程的优势。当每个模块都完成时,将其功能加到一起就完成了整体的设计。致 谢本次毕业设计得到导师张帆老师的热心指导,在这里对张帆老师
25、表示最衷心的感谢。张帆老师平易近人,对学生的设计进度和学习很关心。在毕业设计的前期,首先给我们介绍了不少有用的资料和书籍;在硬件设计等方面给予悉心的指导;在调试的过程中张帆老师给每个出现的问题给予及时的指导。在写毕业设计论文的阶段,张帆老师让我们提前给他评审,不论内容字体,还是格式上的问题都一一指出。待人平和、工作认真、治学严谨他的给我留下很深刻的印象。更重要的是,他善于与学生沟通,不仅在毕业设计上给我及时的指导,更为我大学最后阶段的学习提出了许多宝贵的意见。这一切都在潜移默化地影响着我,为我以后进入工作岗位树立了良好的榜样。最后向所有帮助和关心过我的人表示衷心感谢!参考文献1 张毅刚 彭喜元
26、. 单片机原理与应用设计M. 北京:电子工业出版社2 张义和 王敏男 许宏昌等. 例说51单片机(第3版)M. 北京:人民邮电出版 3 恰汗合孜尔. C语言程序设计(第三版)M. 北京:中国铁道出版社,2010年第三版4 陈雷. C51单片机应用实训M. 北京:中国电力出版社,2011年第一版5 张欣 孙宏昌 尹霞. 单片机原理与C51程序设计基础教程M. 北京:清华大学出版社,2010年第一版6 王巧芝 郑锋 刘瑞国等. 51单片机开发应用从入门到精通M. 北京:中国铁道出版社7 张靖武 周灵杉.单片机系统的PROTEUS设计与仿真M.北京:北京电子工业出版社8 靳达 求是科技.单片机应用系统开发实例导航M.:人民邮电出版社,20069 刘守义. 单片机应用技术M.:西安电子科技大学出版社,200110 林志琦.基于PROTEUS的单片机可视化软硬件仿真M.北京:北京航空航天大学出版社,200611 胡汉才.单片机原理及接口技术.清华大学出版社,199612 徐江海.单片机实用教程M.北京:机械工业出版社,2007.13 肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.814 夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 200115 谭浩强. C语言程序