《基于单片机的简易计算器(优秀论文).docx》由会员分享,可在线阅读,更多相关《基于单片机的简易计算器(优秀论文).docx(25页珍藏版)》请在第一文库网上搜索。
1、本科毕业论文题目:基于单片机的简易计算器学院:物理与电子信息学院专业:电子信息工程年级:10电子信息工程姓名:覃海洋指导教师:丛梦龙完成日期:2023415目录摘要3Abstract错误!未定义书签。引言错误!未定义书签。一系统总体设计61. 1设计概述612系统整体模块图61. 3实现方案6二、硬件系统设计72. 1AT89S52单片机72. 2单片机复位电路82. 3单片机的外接晶振电路92. 44x4矩阵键盘92. 5八段1ED数码管92.6 51单片机最小系统15三程序调试与系统仿真112.7 程序调试113. 2程序流程图263. 3系统仿真27结语28主要参考文献29致谢23摘要近
2、十年来,随着科学技术的提高,电子行业开展迅速,各种电子产品应运而生,其中基于单片机的各类器件更新尤其显著。在日常的生活中,电子产品无处不在,所涉及的领域十分广泛。计算器是人们日常生活的重要工具,其帮助人们快捷地完成一些繁琐的计算,因此一款好的计算器可以给人们的生活带来极大的便易。根据以上背景,本设计旨在研究一款简单便捷的计算器,方便人们的日常生活。同时,本设计的大致思想为-设计以AT89S52单片机作为主控芯片,采用4x4矩阵键盘做为输入,以4位八段数码管做显示,可以进行无符整数的加、减、乘、除运算,具有清零复位功能,并带有溢出提示。这样的一款计算器可以满足人们日常的计算需求。同时,考虑到时代
3、环境的要求,本设计的所有程序均采用C语言编写,这样不仅可以降低程序的编写难道,而且可以便于日后程序的移植、修改、升级。设计中用以两片8位三态锁存器74HC573D来对数码管的地址和数据进行锁存,同时用蜂鸣器来作为溢出报警提示。单片机的晶振电路和复位电路均采用常规电路。关键词:AT89S52;计算器;矩阵键盘;数码管AbstractOverthepastdecade,withtheimprovementofscienceandtechno1ogy,thee1ectronicsindustrydeve1opedrapid1y,avarietyofC1ectronicproductsemerged,
4、andvarioustypesofmicrocontro11er-baseddeviceupdateareparticu1ar1ysignificant.Inpeop1e,sdai1y1ife,e1ectronicproductsareinawiderangeofareas.Ca1cu1atorisanimportanttoo1forpeop1e,sdai1y1ife,whichhe1pspeop1equick1ycomp1eteSometediousca1cu1ations,soagoodca1cu1atorcanbringtopeop1egreat1yeasy.Thisstudydesig
5、nedasimp1eandConvenientca1cu1atortofaci1itatepeop1e,sdai1y1ife.Meanwhi1e,thegenera1ideaofthisdesignisAT89S52microcontro11erasthemasterchip,using4x4matrixkeyboardasinputto8eightdigita1tubetodo,itcandoanUnsignedintegeradd,subtract,mu1tip1y,anddivideoperation.Inaddition,ithasc1earandresetfunction,andwi
6、thoverf1owprompts.SUchaca1cu1atorcanmeetpeop1e,scomputingneeds.Atthesametime,takingintoaccounttheenvironmenta1requirementsofthetimes,a11ProgramsaredesignedbytheC1anguage9Soitcanreducetheworkofwritingprograms,andcanfaci1itatefuturetransp1antprocedures,modifications,upgrades.Theca1cu1atoruseseight-bit
7、etri-state74HC573Dto1atchtheaddressandthedataofthedigita1,andusebuzzerasanoverf1owa1arm.Sing1e-chipcrysta1osci11atorcircuitandresetcircuitareusedbytheconventiona1circuit.Keywords:AT89S52Ca1cu1ator;Matrixkeyboard;8digita1tube引言随着科技的提高,人们对于电子产品的需求日益增强,一款好的电子产品不仅要物美价廉,而且应该简单易懂。生活中,计算无处不在,小到日常的小计算,大到科技尖
8、端的开展。日常生活中计算器的种类繁多,有些计算器的功能过于强大,甚至涉及到按键的复用,这样一来反而不便于老人及小孩的使用,在浪费了资源同时,也有可能给人们带来不舒心的体验。因此,需要一款设计旨在制作一款简单易操作的计算器,能够完成对无符号整数加、减、乘、除计算即可,这样已经可以满足人们在日常生活中对一些简单数据的运算,以方便人们的日常生活,提高其生活质量。同时,要尽可能地运用易得的器件,这也是产品设计的一个出发点,故本设计采用市场上常见的AT89S52单片机作为核心芯片,以4x4矩阵键盘做输入,以8段1ED数码管的动态扫描来做输出显示,其中用8位三态锁存器74HC573D来对数码管的地址和数据
9、进行锁存,用蜂鸣器来进行溢出提示,对单片机的外围晶振和复位均采用常规电路。其中,用C语言来完成对程序各个局部的编写,这样不仅可以减小编程的难度,而且易于以后对程序的移植、修改和升级。通过完成此次设计,可以进一步加强对单片机理论的学习,有利于掌握其它电子模块如数码管,矩阵键盘等,而且能够熟悉并掌握单片机开发常用的软件如:PROTEUS,KEI1,STCTSP等,进一步提高自身的实际动手能力,深化而系统地理解嵌入式的软硬设计思路。这样,有利于日后更高层次的学习,丰富单片机产品的开发经验,能够更加快速的融入这一行业,为以后工作或深造打下良好的根底。一、系统总体设计11设计概述根据毕业设计要求,目的是
10、要设计一款简单易操作的计算器。本设计以大学本科期间所学的AT89S52单片机为核心芯片,采用4x4矩阵键盘输入,以8位八段数码管动态扫描做输出显示,可以进行无符号整数的加、减、乘、除运算,具有清零功能,并带有溢出提示。1. 2系统整体模块图图1系统整体模块图Figure1Overa11systemb1ockdiagram2. 3实现方案经过综合考虑,最终决定实现方案如下:a)使用AT89S52单片机为主控芯片;b)显示模块使用4位八段数码管;c)输入使用4x4矩阵键盘作为输入模块;d)使用8位三态锁存器74HC573D来对数码管的地址和数据进行锁存;e)用蜂鸣器来做溢出提示;f)其中的晶振电路
11、和复位电路均采使常规电路;二、硬件系统设计3. 1AT89S52单片机(1)芯片简介AT89S52单片机是ATME1公司生产的是一款CMOS工艺的8位单片机。它带有8KB的可在线编程的F1ash存储器,该单片机与80C51系列单片机的指令系统及引脚完全兼容,具有较高的性能价格比,使其在嵌入式开发中仍有着广泛的应用。AT89S52单片机为40引脚芯片,具有PDIP,P1CC和TQFP3钟封装形式。各引脚的功能如下: PO8位、开漏极、双向I/O口。PO可作为通用I/O口,每个引脚可驱动8个TT1负载;当做输入时,每个端口首先置1。 P1口8位、双向I/O口,内含上拉电阻。P1口为用户使用的通用I
12、/O0,每个引脚可驱动4个TT1负载。当用做输入时,每个端口首先置1。P1.0和P1.1引脚也是定时器2的外部计数输入(P10/T2)和触发器输入(P1.1T2DX)o P28位、双向I/O口,内部具有上拉电阻。P2口可用做通用I/O,可以驱动4个TT1负载。对P2口各位写入1,可作为输入。每个引脚由外部负载拉为低电平时,经由内部上拉电阻向外输出电流。 P3口8位、双向I/O口,内部含有上拉电阻。P3口可用做通用I/O口,可驱动4个TT1负载。当用做输入时,要先将P3口各位置如外部负载将P3口拉低,那么经过上拉电阻向外输出电流。 RST单片机复位输入端,当对其连续作用两个机器周期以上高电平时,
13、单片机自动复位。 XTA11和XTA12XTA11是片内振荡器反相放大器和时钟发生器的输入端,XTA12是片内振荡器反相放大器的输出端。2)AT89S52的P1DP封装引脚排列图及实物图图2AT89S52的PIDP封装引脚排列图及实物图Figure2AT89S52ofPIDPpackagepinoutdiagramandphysica1map2. 2单片机复位电路图3单片机复位电路Figure3 MCUresetcircuit复位电路即是使单片机复位的电路,就是利用它将单片机恢复到其实状态。如图2.2所示,VCC上电时,电容C1充电,电流从电阻R2流过,在电阻R2上出现高电压,从而使单片机复位
14、。几个毫秒后,C1充满电,流过R2的电流为零,从而其上的电压也为零,单片机进入工作状态。工作期间,按下按钮,电容C1放电,松开按钮,电容C1充电,继而又会在电阻R2上产生高电压,几个毫秒后,单片机再次进入工作状态。注:当AT89S52单片机的复位引脚上有持续两个机器周期以上的高电平时,单片机复位。2. 3单片机的外接晶振电路图4单片机的外接晶振电路Figure4 McUexterna1crysta1osci11atorcircuitAT89S52单片机内部虽然已有震荡电路,但为了提高其时间精准度与稳定度,故采用外接时钟晶振。外接晶体引脚:XTA11是片内振荡器的反相放大器输入端,XTA12那么
15、是输出端,使用外部振荡器时,外部振荡信号应直接加到XTA11,而XTA12悬空。2.44x4矩阵键盘图54x4矩阵键盘电路图Figure 5 x4matrixkeyboardschematics图6矩阵键盘输入功能图Figure 6 Matrixkeyboardinputfunctionchart在本设计中我采用了4x4矩阵键盘来作为输入,用单片机的P3口与其对接,实现计算器的输入功能,具体如下:以第一行扫描为例,其余行数以此类推,先给P3.0口一低电平其余全为高电平,即P3口此时为Innn0,然后去取出其高四位,通过去判断其高四位的值的变换来得到相应的键入值,如当P3为101110时那么1被按下;当为01InO时2被按下;当为IOn1110时3被按下;当为OnIn10+被按下。以此类推。键盘第一行扫描程序如下:/第一行扫描/P3=0xfe1111InO让P3.0输出低temp=P3;temp=tempfexf0;/1111OOOO位与操作屏蔽低四位if(temp!=OxfO)de1ay(10);/延迟来判断是否是干扰temp=P3;temp=tempfexf;if(temp!=OxfO)(temp=P3;switch(temp)(case