您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 4位数加法计算器要点
安庆师范大学2014级单片机原理与应用课程设计报告课题名称4位数加法计算器的设计姓名吴昊天、伍浩然、王鹏、万吉学号070814018、070814008、070814005、070814001院、系、部计算机学院物联网工程专业物联网工程指导教师汪文明2016年6月6日1一、设计任务及要求:设计任务:1、通过4*4矩阵键盘输入数字及运算符;2、可以进行4位十进制数以内的加法预算。如果计算结果超出四位数,则全部显示“E”;3、可以进行加减乘除所有运算;4、添加其他功能。要求:首先进行预设计,根据设计的任务要求,先确定设计的硬件电路方案,然后进行硬件电路的初步设计,在计算机上画出硬件电路图,在老师的指导下进行修正硬件电路图,并对所涉及的参数进行计算。在确定硬件的基础上,要进行软件的总体设计,包括软件主流程的设计以及各子程序的设计,同时,要写出详细的操作说明,如时间的调整方法,显示窗口的时间切换等,以配合软件的设计。然后进入硬件的调试及编程工作,设计组内的同学可根据任务分工,有调试硬件各功能模块的,如键盘子程序、显示子程序等,有进行整体程序的编制的,各模块的编制过程中要注意资源的衔接。最后进入联机调试,联机调试的原则也要采用分步走的原则,各个功能模块要逐步套入,通过一个再增加一项功能,从而达到设计的总体要求,不要上来编制个最大的程序,最后无法查找错误。最后写出设计报告。指导教师签名:2016年6月6日三、成绩指导教师签名:年月日2目录一、绪言…………………………………………………………………………………………1二、系统设计………………………………………………………………………………………12.1设计任务………………………………………………………………………………12.2方案比较与论证………………………………………………………………………12.2.1系统整体流程图……………………………………………………………………22.2.2单片机的选择方案论证………………………………………………………………22.2.3键盘选择方案论证……………………………………………………………22.2.4显示模块的选择方案论证…………………………………………………………22.2.5蜂鸣器的选择方案论证………………………………………………………………2三、硬件电路设计………………………………………………………………………………23.1计算器的控制电路图……………………………………………………………………23.2矩阵键盘的设计……………………………………………………………………33.3LCD1602显示电路的设计………………………………………………………………33.4蜂鸣器驱动电路的设计…………………………………………………………………43.5主要元器件选择…………………………………………………………………………4四、程序流程图…………………………………………………………………………………5五、c语言程序设计………………………………………………………………………………5六、计算器的仿真………………………………………………………………………………196.1Keil调试………………………………………………………………………………196.2Proteus调试……………………………………………………………………………19七、结束语………………………………………………………………………………………20八、参考文献……………………………………………………………………………………213一、绪言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。本设计采用AT89C52单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。二、系统设计2.1设计任务1、通过4*4矩阵键盘输入数字及运算符;2、可以进行4位十进制数以内的加法预算。如果计算结果超出四位数,则全部显示“E”;3、可以进行加减乘除所有运算;4、添加其他功能。2.2方案比较与论证2.2.1系统整体流程图图1系统整体流程图2.2.2计算器的控制方案论证用4*4的矩阵键盘组成0-9数字键及加、减、乘、除、等于、清零按键,LCD屏幕实时显键盘接口显示电路软件控制程序电源电路单片机控制电路4示输入的数字和运算符号,每按下一个按键都有蜂鸣器发出的响声。从矩阵键盘输入一个数字,选择运算符,再输入一个数字,然后按下“等于”键,最后的计算结果会呈现在LCD屏幕上。2.2.3单片机的选择方案论证方案一:采用可编程逻辑期间CPLD作为控制器。CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高,且从使用及经济的角度考虑我们放弃了此方案方案二:采用Atmel公司的AT89C52单片机作为控制器。AT89C52是一个低功耗,高性能的51内核的CMOS8位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM),32个双向I/O口,2个16位可编程定时计数器。综合考虑,选择方案二,采用Atmel公司的AT89C52单片机作为控制器。2.2.4键盘选择方案论证方案一:采用独立式键盘。由于各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。此种键盘适用于按键较少或操作速度较高的场合。但本题发挥部分要求16个功能键,按键数目较多,这就需要较多的输入口线,而且电路结构复杂。故此方案不可取。方案二:采用矩阵键盘。它由行和列组成,按键位于行列的交叉点上,行线信号和列线信号分别通过两个接口和CPU相连,通过行列扫描法判定按键的位置,此方案适用于按键较多的场合。通过对4位数加法计算器题目的分析,采用4*4行列式键盘。2.2.5显示模块的选择方案论证方案一:采用带字库LCD模块显示。能显示复杂的信息,具有质量轻,体积小,功耗低,指令功能强,接口简单,可靠性强等优点,显示内容丰富,图形美观,易于人机交流。但是价格昂贵。方案二:采用LED数码管显示。数码管能显示数字和符号,但是占用I/O口资源较多,对于简单的电路可以选用此方案。计算器,需要较为强大的人机交互界面,故选用方案一,显示所需信息。2.2.6蜂鸣器的选择方案论证5方案一:采用有源蜂鸣器。有源蜂鸣器内部带震荡源,只要一通电就会发出响声。方案二:采用无源蜂鸣器。无源蜂鸣器内部不带震荡源,所以用直流信号无法令其鸣叫,必须用2K~5K的方波去驱动它。综合考虑,为了程序控制的方便,选用了方案一。三硬件电路设计3.1计算器控制电路图图2计算器控制线路图3.2矩阵式键盘的设计键盘电路如图3所示。设计数字键0~9的键号依次为0~9,运算符号分别为“+”、“-”、“*”、“/”,以及“=”和清零“C”,通过逐行扫描函数来确定按下的键位。6图3键盘电路3.3LCD1602显示电路的设计LCD1602液晶屏采用LM016L型号元件,其电路如图3所示。图4LCD1602显示电路3.4蜂鸣器驱动电路的设计蜂鸣器的驱动采用PNP三极管来驱动,低电平有效。其电路如图5所示。7图5蜂鸣器电路图3.5主要元器件选择主要元器件选用型号和数量如表1所示:序号材料名称规格型号数量元件代号1单片机AT89C521U12晶振12MHz1X13三级管MJE3501Q14键盘4*4165LCD1602LM016L1LCD16026蜂鸣器1BEEP7电阻1k1R1表1主要元器件清单8四、程序流程图五C语言程序设计#includereg51.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintsbitlcden=P2^1;//定义E口sbitlcdrs=P2^0;//定义RS口sbitbeep=P2^2;//定义蜂鸣器ucharcodetable[]={'0','1','2','3','4','5','6',//创建键位数组,数字,运算符号,等于号,清零(小数点)'7','8','9','+','-','*','/','=','.'};9ucharkey,flag1,js,k1,k2;uchara[20],b[20];floatjieguo=0;voiddelay(ucharz)//延迟函数{ucharx,y;for(x=z;x0;x--)for(y=110;y0;y--);}voidwrite_cmd(ucharcmd)//写命令函数{lcdrs=0;P1=cmd;delay(5);lcden=1;delay(4);lcden=0;}voidwrite_data(uchardate)//写数据函数{lcdrs=1;P1=date;delay(5);lcden=1;delay(5);lcden=0;}voidinit()//LCD初始化函数{lcden=0;write_cmd(0x38);//设置16x2显示,8位数据接口write_cmd(0x0c);//设置开显示,不显示光标(关显示是0x08)write_cmd(0x06);//写一个字符后地址指针加1write_cmd(0x01);//清屏}voidkeyscan(){uchartemp,uu=0xf7;uinti;for(i=0;i4;i++){uu=_crol_(uu,1);//左移P3=uu;temp=P3;temp=temp&0x0f;10if(temp!=0x0f){delay(10);temp=P3;temp=temp&0x0f;if(temp!=0x0f){temp=P3;switch(temp){case0xee:key=1;beep=0;delay(200);beep=1;break;//延迟200响声case0xde:key=2;beep=0;delay(200);beep=1;break;case0xbe:key=3;beep=0;delay(200);beep=1;break;case0x7e:key=10;beep=0;delay(200);beep=1;break;case0xed:key=4;beep=0;delay(200);beep=1;break;case0xdd:key=5;beep=0;delay(200);beep=1;break;case0xbd:key=6;beep=0;delay(200);beep=1;break;case0x7d:key=11;beep=0;delay(200);beep=1;break;case0xeb:key=7;beep=0;delay(200);beep=1;break;case0xdb:key=8;beep=0;delay(200);beep=1;break;case0xbb:key=9;beep=0;delay(200);beep=1;break;case0x7b:key=12;beep=0;delay(200);beep=1;break;case0xe7:key=0;beep=0;delay(200);beep=
本文标题:4位数加法计算器要点
链接地址:https://www.777doc.com/doc-6321522 .html