I计算器模拟系统设计学生:XXX指导教师:XXX内容摘要:本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和74lS164,输入用4×4矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil软件用汇编语言进行编程,并用proteus仿真。关键词:LED计算器AT89C51芯片74LS164IICalculatorsimulationsystemdesignAbstract:Thedesignisasimplecalculatorbasedon51seriesmicrocontrollersystemdesign,tocompletethecalculatorkeyboardinput,add,subtract,multiply,andinadditiontothreeunsignednumericsimplefouroperations,andthecorrespondingresultwillbedisplayedontheLED.Thedesignprocessofhardwareandsoftwareaspectsofthesynchronousdesign.HardwarechooseAT89C51microcontrollerand74ls164--enterthe4×4matrixkeyboard.Staticdisplaywithfive7-segmentcommoncathodeLEDdisplay.Softwarecalculatorfunctionfromtheanalysis,flowcharts,design,andthenprogramthepreparationofsystemdesign.SelectedtocompilethemostefficientKeilsoftwareinassemblylanguageprogramming,andwithproteussimulation.Keywords:LEDcalculatorAT89C51chip74LS164III目录前言.....................................................................11设计任务和要求........................................................11.1设计要求.........................................................11.2设计方案的确定...................................................22单片机简要原理........................................................22.1AT89c51介绍.....................................................22.2芯片74LS164介绍.................................................53硬件设计..............................................................63.1键盘电路的设计...................................................63.2显示电路的设计...................................................73.3其他电路设计.....................................................73.3.1复位、时钟电路设计.........................................73.3.2多位数码管电路显示的驱动电路...............................84软件设计..............................................................94.1主程序的设计.....................................................94.2显示、读键模块的设计............................................104.3其他内容说明....................................................114.3.1定时查键的程序设计........................................114.3.2软件的可靠性设计..........................................124.4源程序代码(见附录)............................................125调试与仿真...........................................................125.1KeilC51单片机软件开发系统...................................125.2proteus的操作..................................................125.2.1硬件电路图的接法操作......................................125.2.2单片机系统PROTEUS设计与仿真过程..........................136结束语...............................................................13附录:计算器程序代码....................................................15参考文献:..............................................................23IV1计算器模拟系统设计前言近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。本设计采用AT89C51芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LED显示。如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。另外,实例所设计的计算器是用LED数码管显示的,当然也可以用其他的器件显示,如LED显示屏,这样就可以显示出更多的字符,在此基础上,还可以编写更加完善的程序来实现更多的计算功能。设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,时学习查阅资料、参考资料的方1设计任务和要求1.1设计要求本次课程设计,我选择的课题是单片机数字计算器硬软件设计,设计任务为:◊扩展4*4键盘,其中10个数字,5个功能键,1个清零;◊使用五位数码管接口电路;◊完成十进制的四则运算(加、减、乘、除);◊实现低于三位小于255数字的连续运算;2◊使用keil软件编写程序;◊最后用ptoteus仿真;1.2设计方案的确定按照设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于实验箱的硬件电路已经固定,故选择串行静态显示和用P1口扩展4*4键盘,扩展的4*4键盘定义十个数字键,六个功能键,使用串行静态显示显示运算结果。主程序进行初始化,采用定时器0进行查键,每次按键后调用显示子程序。2单片机简要原理2.1AT89c51介绍图2.1-1AT89C51管脚图芯片AT89C51的外形结构和引脚图如2—1所示。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:◊8051CPU与MCS-51兼容3◊4K字节可编程FLASH存储器(寿命:1000写/擦循环)◊全静态工作:0Hz-24KHz◊三级程序存储器保密锁定◊128*8位内部RAM◊32条可编程I/O线◊两个16位定时器/计数器◊5个中断源◊可编程串行通道◊低功耗的闲置和掉电模式◊片内振荡器和时钟电路管脚说明◊VCC:供电电压(图中未画出)◊GND:接地。◊P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。◊P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。◊P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,4当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。◊P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。管脚备选功能◊P3.0RXD(串行输入口)◊P3.1TXD(串行输出口)◊P3.2/INT0(外部中断0)◊P3.3/INT1(外部中断1)◊P3.4T0(记时器0外部输入)◊P3.5T1(记时器1外部输入)◊P3.6/WR(外部数据存储器写选通)◊P3.7/RD(外部数据存储器读选通)◊P3口同时为闪烁编程和编程校验接收一些控制信号。◊RST:复位输入。当振荡器