目录摘要......................................................................01总体任务................................................................11.1设计目的..............................................................11.2设计内容和要求.....................................................11.3设计思路..........................................................12设计原理分析............................................................22.1计算器的工作原理..................................................22.1.1计算器的工作流程............................................22.1.2编程实现控制................................................22.1.3功能拓展....................................................22.2单片机计算器的基本构成及原理......................................23硬件电路的设计..........................................................43.1系统硬件总电路构成及原理...........................................43.2硬件电路的部分组成元器件的简介.....................................43.2.1AT89C51单片机................................................43.2.2八段LED数码管...............................................43.2.3矩阵键盘.....................................................63.3元器件清单........................................................73.4电路原理图........................................................74系统程序的简单设计......................................................84.1程序方框图........................................................84.2计算器程序........................................................85系统的仿真调试.........................................................156课程设计总结...........................................................16参考文献.................................................................170摘要本文论述了单片机4位数加法计算器的设计,从对设计任务的分析到画电原理图到编程和最后的仿真调试,都进行了一个简单的描述。在设计过程中,采用Keil软件编写源程序,用Protues7professional的ISIS7professional软件画电原理图并且仿真,通过对编程时的编译和对仿真结果现象的观察,不断地对源程序以及电原理图的修改,最后成功设计出了一个能够进行4位数加法运算的计算器。该计算器通过4×4的矩阵键盘输入数字及运算符,若运算结果超过4位十进制数,则显示为E;另外,也能进行减法、乘法以及除法的运算,在进行减法运算时,若运算结果小于零,则显示其绝对值;进行除法运算时,若除数等于零,则显示E。关键词:计算器;单片机;数码管;矩阵键盘11总体任务1.1设计目的1.通过单片机课程设计,熟练掌握c语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。2.通过4位数加法计算器的设计,掌握c语言编程的基本语法,和简单程序的编写,最终提高我们的逻辑抽象能力。1.2设计内容和要求内容:设计一个4位数加法计算器要求:该计算器通过4×4的矩阵键盘输入数字和运算符,能进行4位十进制以内的正数的加、减、乘、除的运算,如果运算结果超过4位十进制数,4位数码管全部显示为E。1.3设计思路1.先熟悉实验原理,了解计算器的工作过程及其显示,了解计算器电原理图的组成元器件。2.了解各元器件的工作原理。3.在keil软件里编写程序,用Protues7professional的ISIS7professional软件绘制电原理图,并进行仿真,通过对仿真现象的观察,修改原理图或程序,直到满足设计要求为止。22设计原理分析2.1计算器的工作原理2.1.1计算器的工作流程计算器是对键盘输入的数字及运算符等信号进行分析和处理,最后通过数码管显示出结果的计算工具。当然,在输入数字的同时,数码管也是会显示出输入的数字的,其整个工作流程图如图2.1所示。外界输入数字或运算符微处理器处理并运算显示器显示结果图2.1计算器的工作流程图2.1.2编程实现控制通过编写程序,实现对输入信号的识别、输入数字的显示以及运算结果的显示。2.1.3功能拓展在进行减法运算时,若运算结果小于0,数码管显示其绝对值;在进行除法运算时,若除数等于0,数码管显示EEEE。2.2单片机计算器的基本构成及原理AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。它能进行简单的运算,通过编写程序,可以让它完成对输入信号的识别、处理以及显示等功能。它完全能满足4位加法计算器的要求,能够完成对键盘输入信号的识别、处理等功能。3据此,本设计系统以单片机位核心,连接成最小系统,由键盘输入模块和4位数码管输出模块等组成,系统放入总体方框图如图2.2所示。键盘输入最小系统外围接口电路单片机数码管显示图2.2系统的总体方框图键盘作为整个系统的输入端口,单片机是整个系统的核心,兼有识别信号和处理等功能,而数码管是整个系统的输出部分,用于显示输入的数字和运算后的结果。43硬件电路的设计3.1系统硬件总电路构成及原理实现本设计要求的具体功能,可以选用AT89C51单片机及外围器件构成最小控制系统,4×4的矩阵键盘和4位共阳极的数码管组成。其中4×4的矩阵键盘是用来输入信号的,而4位共阳极的数码管是用来显示输入的数字及运算结果的。3.2硬件电路的部分组成元器件的简介3.2.1AT89C51单片机AT89C51单片机是80C51类型中的一种,其基本型包含CPU系统、存储器系统和I/O口及其他功能单元。单片机的最小控制系统如图3.1所示。图3.1单片机及其最小控制系统3.2.2八段LED数码管LED显示屏作为大型显示设备的一种,具有亮度高、价格低、寿命长、维护简便等优点。LED数码管的结构简单,分为七段和八段两种形式,也有共阳极和共阴极之分。以八段共阳管为例,它有8个发光二极管(比七段多一个发光二极管,用来显示sP,即点),每个发光二极管的阳极连在一起。这样,一个LED数码管就有I根位选线和8根段选线,要想显示一个数值,就要分别对它们的高低电平来加以控制。为方便起见,本文主要讨论共阳极八段LED数码显示管,其他类形的显示管与其类似。图3.2即为八段数码管,下面的引脚从左至5右一次为a,b,c,d,e,f,g,dp和位选引脚。图3.2LED数码管数码管的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮而显示不同的字形,如a,b,c,d,e,f,g全亮是显示为8,其中共阳极连接的数码管的驱动代码如表3.1所示。表3.1共阳极数码管驱动代码显示数值dpgfedcba驱动代码(16进制)011000000C0111111001F9210100010A431010000B0410011001995100100109261000001082711111000F881000000080910010000904位八段数码显示管是由4个数码管组成,如图3.3所示,其左侧的a,b,c,d,e,f,g,dp6为数码管的驱动引脚,右侧的1,2,3,4为数码管的位选引脚。图3.34位数码显示管4位数码管显示计算数据的过程:如输入数字4136,当从键盘上输入4时,4位数码管第4位显示4,其他三位不亮;再次输入1时,数码管第3位显示4,同时第4位显示1,其他两位不亮;再次输入3时,数码管第2位显示4,同时第3位显示1,第2位显示3,第一位不亮;再次输入6时,数码管第1位显示4,同时第2位显示1,第3位显示3,第4位显示6。3.2.3矩阵键盘矩阵键盘是由16个按钮组成的,16个按钮按4行4列的顺序排列构成4×4的矩阵键盘,如图3.4所示,图3.4所示的键盘是Protues7professional的ISIS7professional软件中的一个元器件,其原理就是16个按钮按4行4列排列构成的。图3.4矩阵键盘在4位计算器的设计中,单片机识别矩阵键盘是通过按列扫描的方式进行的。其具体过程如下:对所有的列加以高电平,对第一行(A行)加以低电平,扫描列的电平变化,如列有高电平变为低电平,则能确定按下的键是哪一个;如第一列没有电平变化,依次对第二行(B行)、第三行(C行)和第四行(D行)加以低电平,分别对列进行扫描,看列7的电平变化,来确定按下的键。3.3元器件清单4位加法计算器的硬件电路图主要由表3.2所示的元器件组成表3.2元器件列表器件说明AT89C51单片机核心器件晶体51单片机工作的振荡源电阻对电流大小进行限制电容51单片机复位和振荡源工作的辅助器件矩阵键盘用于输入数字和运算符4位8段数码管用于显示输入的数字及运算结果3.4电路原理图图3.5系统电路原理图84系统程序的简单设计4.1程序方框图开始初始化显示0取第一个数取运算符取第二个数取等于号计算并显示结果结束图4.1计算器程序流程图4.2计算器程序#includereg51.h9sbitP3_0=P3^0;sbitP3_1=P3^1;sbitP3_2=P3^2;sbitP3_3=P3^3;unsignedcharsz[12],xs1[4],xs2[4],xs3[4],xs4[4],sj;inti,cs,bb,t1,t2,fh,s1,s2,k;voidchushihua()/*初始化程序*/{bb=1;xs1[0]=10;xs1[1]=10;xs1[2]=10;xs1[3]=10;xs2[0]=10;xs2[1]=10;xs2[2]=10;xs2[3]=10;xs3[0]=11;xs3[1]=11;xs3[2]=11;xs3[3]=11;xs4[0]=0;xs4[1]=10;xs4[2]=10;xs4[3]=10;t1=0;t2=0;s1=s2=0;fh=0;cs=1;}voidxianshi(unsignedcharxs[4])/*显示程序*/{inti,j;unsignedcharzy;zy=0xf1;for(i=0;i4;i++){P