《基于单片机的简易计算器(优秀论文).docx》由会员分享,可在线阅读,更多相关《基于单片机的简易计算器(优秀论文).docx(27页珍藏版)》请在优知文库上搜索。
1、本科毕业论文题目:基于单片机的简易计算器学院:物理与电子信息学院专业:电子信息工程年级:10电子信息工程姓名:覃海洋指导教师:丛梦龙完成日期:2023.4.15目录摘要3Abstract错误!未定义书签。弓I言错误!未定义书签。一、系统总体设计61设计概述61.2系统整体模块图61. 3实现方案6二、硬件系统设计72. 1AT89S52单片机72. 2单片机复位电路82 .3单片机的外接晶振电路93 .44x4矩阵健盘91. 5八段LED数码管92.651单片机最小系统15三、程序调试与系统仿真113. 1程序调试113. 2程序流程图262. 3系统仿真27结语28主要参考文献29致谢23摘
2、要近十年来,随着科学技术的提高,电子行业开展迅速,各种电子产品应运而生,其中基于单片机的各类器件更新尤其显著。在日常的生活中,电子产品无处不在,所涉及的领域十分广泛。计算器是人们日常生活的重要工具,其帮助人们快捷地完成一些繁琐的计算,因此一款好的计算器可以给人们的生活带来极大的便易。根据以上背景,本设计旨在研究一款简单便捷的计算器,方便人们的日常生活。同时,本设计的大致思想为-设计以AT89S52单片机作为主控芯片,采用4x4矩阵键盘做为输入,以4位八段数码管做显示,可以进行无符整数的加、减、乘、除运算,具有清零复位功能,并带有溢出提示。这样的一款计算器可以满足人们日常的计算需求。同时,考虑到
3、时代环境的要求,本设计的所有程序均采用C语言编写,这样不仅可以降低程序的编写难道,而且可以便于日后程序的移植、修改、升级。设计中用以两片8位三态锁存器74HC573D来对数码管的地址和数据进行锁存,同时用蜂鸣器来作为溢出报警提示。单片机的晶振电路和复位电路均采用常规电路。关键词:AT89S52;计算器:矩阵键盘;数码管AbstractOverthepastdecade,withtheimprovementofscienceandtechnology,theelectronicsindustrydevelopedrapidly,avarietyofelectronicroductsemerged
4、,andvarioustypesofmicrocontroller-baseddeviceupdateareparticularlysignificant.Ineole,sdailylife,electronicproductsareinawiderangeofareas.Calculatorisanimportanttoolforpeoplesdailylife,whichhelpspeoplequicklycompleteSometediouscalculations,soHgoodcalculatorCanbringtoeolegreatlyeasy.Thisstudydesigneda
5、simpleandConvenientcalculatortofacilitatepeopledailylife.Meanwhile,thegeneralideaofthisdesignis-AT89S52microcontrollerasthemasterchip,using4x4matrixkeyboardasinputto8eightdigitaltubetodo,itcandoanUnsignedintegeradd,subtract,multiply,anddivideoperation.Inaddition,ithasclearandresetfunction,andwithOve
6、rflowpromptseSuchacalculatorcanmcetpeople,scomputingneeds.Atthesametime,takingintoaccountIheenvironmentalrequirementsofthetimes,allProgramsaredesignedbytheCIanguage9SOitcanreducetheworkofwritingprograms,andcanfacilitatefuturetransplantprocedures,modifications,upgrades.Thecalculatoruseseight-bitetri-
7、state74HC573Dtolatchtheaddressandthedataof(hedigital,andusebuzzerasanoverflowalarm.Single-chipcystaloscillatorcircuitandresetCircuitareusedbytheconventionalcircuit.Keywords:AT89S52;CalCUIator;MatriXkeyboard;8digitaltube引言随着科技的提高,人们对于电子产品的需求日益增强,一款好的电子产品不仅要物美价廉,而且应该简单易懂。生活中,计算无处不在,小到日常的小计算,大到科技尖端的开展。
8、日常生活中计算器的种类繁多,有些计算器的功能过于强大,甚至涉及到按键的复用,这样一来反而不便于老人及小孩的使用,在浪费了资源同时,也有可能给人们带来不舒心的体验。因此,需要一款设计旨在制作一款简单易操作的计算器,能够完成对无符号整数加、减、乘、除计算即可,这样已经可以满足人们在日常生活中对一些简单数据的运算,以方便人们的日常生活,提高其生活质量。同时,要尽可能地运用易得的器件,这也是产品设计的一个出发点,故本设计采用市场上常见的AT89S52单片机作为核心芯片,以4x4矩阵键盘做输入,以8段LED数码管的动态扫描来做输出显示,其中用8位三态锁存器74HC573D来对数码管的地址和数据进行锁存,
9、用蜂鸣器来进行溢出提示,对单片机的外围晶振和复位均采用常规电路。其中,用C语言来完成对程序各个局部的编写,这样不仅可以减小编程的难度,而且易于以后对程序的移植、修改和升级。通过完成此次设计,可以进一步加强对单片机理论的学习,有利于掌握其它电子模块如数码管,矩阵键盘等,而且能够熟悉并掌握单片机开发常用的软件如:PROTEUS,KEIL,STC-ISP等,进一步提高自身的实际动手能力,深化而系统地理解嵌入式的软硬设计思路。这样,有利于日后更高层次的学习,丰富单片机产品的开发经验,能够更加快速的融入这一行业,为以后工作或深造打下良好的根底。一、系统总体设计1. 1设计概述根据毕业设计要求,目的是要设
10、计一款简单易操作的计算器。本设计以大学本科期间所学的AT89S52单片机为核心芯片,采用4x4矩阵键盘输入,以8位八段数码管动态扫描做输出显示,可以进行无符号整数的加、减、乘、除运算,具有清零功能,并带有溢出提示。2. 2系统整体模块图图1系统整体模块图FigurelOverallsystemblockdiagram3. 3实现方案经过综合考虑,最终决定实现方案如下:a)使用AT89S52单片机为主控芯片;b)显示模块使用4位八段数码管;C)输入使用4x4矩阵键盘作为输入模块;d)使用8位三态锁存器74HC573D来对数码管的地址和数据进行锁存;e)用蜂鸣器来做溢出提示;f)其中的晶振电路和复
11、位电路均采使常规电路;二、硬件系统设计2.1 AT89S52单片机(1)芯片简介AT89S52单片机是ATMEL公司生产的是一款CMOS工艺的8位单片机。它带有8KB的可在线编程的Flash存储器,该单片机与80C51系列单片机的指令系统及引脚完全兼容,具有较高的性能价格比,使其在嵌入式开发中仍有着广泛的应用。AT89S52单片机为40引脚芯片,具有PDIP,PLCC和TQFP3钟封装形式。各引脚的功能如下: PO口8位、开漏极、双向I/O口。PO可作为通用I/O口,每个引脚可驱动8个TTL负载;当做输入时,每个端口首先置1。 P1口8位、双向I/O口,内含上拉电阻。Pl口为用户使用的通用I/
12、O口,每个引脚可驱动4个TTL负载。当用做输入时,每个端口首先置1。Pl.0和Pl.1引脚也是定时器2的外部计数输入(PI.0/T2)和触发器输入(Pl.1T2DX) P2口8位、双向I/O口,内部具有上拉电阻。P2口可用做通用I/O,可以驱动4个TTL负载。对P2口各位写入1,可作为输入。每个引脚由外部负载拉为低电平时,经由内部上拉电阻向外输出电流。 P3口8位、双向I/O口,内部含有上拉电阻。P3口可用做通用I/O口,可驱动4个TTL负载。当用做输入时,要先将P3口各位置如外部负载将P3口拉低,那么经过上拉电阻向外输出电流。 RST-单片机复位输入端,当对其连续作用两个机器周期以上高电平时
13、,单片机自动复位。 XTALl和XTAL2-XTALl是片内振荡器反相放大器和时钟发生器的输入端,XTAL2是片内振荡器反相放大器的输出端。(2) AT89S52的PIDP封装引脚排列图及实物图图2AT89S52的PIDP封装引脚排列图及实物图Figure2AT89S52ofPlDPpackagepinoutdiagramandphysicalmap2.2单片机复位电路图3单片机复位电路Figure3 MCUresetcircuit复位电路即是使单片机复位的电路,就是利用它将单片机恢复到其实状态。如图2.2所示,VCC上电时,电容Cl充电,电流从电阻R2流过,在电阻R2上出现高电压,从而使单片
14、机复位。几个毫秒后,Cl充满电,流过R2的电流为零,从而其上的电压也为零,单片机进入工作状态。工作期间,按下按钮,电容Cl放电,松开按钮,电容Cl充电,继而又会在电阻R2上产生高电压,几个毫秒后,单片机再次进入工作状态。注:当AT89S52单片机的复位引脚上有持续两个机器周期以上的高电平时,单片机复位。2.3单片机的外接晶振电路图4单片机的外接晶振电路Figure4 McUexternaIcrystaIoscillatorcircuitAT89S52单片机内部虽然己有震荡电路,但为了提高其时间精准度与稳定度,故采用外接时钟晶振。外接晶体引脚:XTALl是片内振荡器的反相放大器输入端,XTAL2
15、那么是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。1. 44x4矩阵键盘图54x4矩阵键盘电路图Figure54x4matrixkeyboardschematics图6矩阵键盘输入功能图Figure6Matrixkeyboardinputfunctionchart在本设计中我采用了4x4矩阵键盘来作为输入,用单片机的P3口与其对接,实现计算器的输入功能,具体如下:以第一行扫描为例,其余行数以此类推,先给P3.0口一低电平其余全为高电平,即P3口此时为IIIIII10,然后去取出其高四位,通过去判断其高四位的值的变换来得到相应的键入值,如当P3为11101110时那么T被按下;当为11011110时2被按下;当为10111110时3被按下;当为01111110+被按下。以此类推。键盘第一行扫描程序如下:/第一行扫描/P3=0xfellllIllO让P/O输出低tem=P3;temp=tempxfllll0000位与操作屏蔽低四位if(temp!=OxfO)delay(10);延迟来判断是否是干扰ternp=P3;temp=temp&OxfO;ifCtempl=OxfO)temp=P3;switch(temp)case