欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    毕业设计多功能计算器的设计.docx

    • 资源ID:11358078       资源大小:731.58KB        全文页数:50页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计多功能计算器的设计.docx

    1、毕业设计多功能计算器的设计 2013 届毕业设计(论文) 题 目: 多功能计算器的设计 学 院: 浦江学院 专 业: 电子信息工程 班 级: 姓 名: 指导教师: 起讫时间: 2012-11-012013-06-10 2013年6月 多功能计算器的设计 摘要本设计就是利用单片机的原理来进行多功能计算器的设计的,设计过程中的主控制器选用了AT89C52单片机,采用TC1602液晶显示器,输入按键为44矩阵键盘,通过软硬件相结合,来实现整数的“加”、“减”、“乘”、“除”运算。在计算器基本功能顺利完成的基础上,对系统进行了简单的扩展,增加了电子表功能,达到预期的要求,系统功能也更加完善。本计算器系

    2、统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。关键词:计算器,运算,扩展 Design of multi-function calculatorABSTRACT This design principle is the use of single-chip design for multi-function calculator, the design process of the main controller selects the AT89C52 microcontroller, using TC1602 LCD monitors, input keys for

    3、 the 4 4 matrix keyboard, through a combination of hardware and software to achieve integer plus, minus, multiply, in addition to operation. The successful completion of the basic functions of the calculator, based on a simple extension of the system, increasing the spreadsheet functions, to achieve

    4、 the desired requirements, the system functions more perfect. This calculator system is simple, practical, low cost, easy maintenance, software features strong, stable and reliable.Key Words:Calculator , Operation , Expand第一章 绪论1.1引言当今社会,随着科技的不断发展与进步,人民生活水平和物质水平的不断提高,多种多样的电子产品走进了千家万户,给我们的生活、学习、工作、娱乐

    5、提供了很多的便利。在这当中,计算器作为一种简单,快捷的操作,正确率高,被广泛用于便携式计算工具,已经成为人类生活中不可或缺的助手。单片机是计算机、自动控制和大规模集成电路技术相结合的产物,融计算机结构和控制功能于一体,因此除单片机外它还有其他名称,例如“嵌入式微处理器”、“微控制器”、“嵌入式微控制器”等。如今,单片机凭借其微小的体积和低廉的成本在各个领域被广泛使用,例如用于家用电器、工业控制等,所以许多大学里都开设了单片机原理与应用这方面的课程。这是一门结合了技术性和实践性的学科,学习及研究它不论对我们自身还是社会的发展都是及其有意义的。计算器就是利用单片机制作的产物,所以本设计的主控制器选

    6、用了AT89C52单片机,采用TC1602液晶显示器,输入按键为44矩阵键盘,通过软硬件相结合,来实现整数的“加”、“减”、“乘”、“除”运算。在此基础上还加入了DS1302实时时钟电路的设计,使其本省还具有了电子表的功能。1.2设计任务这次设计主要是通过单片机的原理和应用,在电子技术基础的基本理论的指导下,我采用Protues仿真软件和eil编程软件来进行设计计算器,然后制作实物。它的主要设计任务有以下几个部分,首先是硬件系统的设计,然后运用keil进行软件系统部分的设计。利用protues仿真平台,进行软件部分调试及仿真;对照设计好的仿真图进行计算器实物的焊接。在将软件程序放入硬件之后,对

    7、整体电路进行调试与测试,看是否存在问题。 1.3. 论文结构 本文共由六章组成,第二章为基础理论部分,介绍单片机的发展现状、AT89Cxx系列单片机的简介,计算器系统简介计算器的总体功能描述,;第三章为计算器的硬件系统设计,从结构上分析计算器的硬件系统框架,最小系统的设计,键盘接口电路的设计,显示电路的设计及DS1302实时时钟电路的设计;第四章介绍计算器的软件系统设计,主要介绍主模块程序的设计,键盘扫描模块程序的设计,运算模块程序的设计,显示模块程序的设计以及DS1302实时时钟模块程序的设计;第五章为计算器系统的组装与调试,对系统的软硬件分别进行了调试;第六章为论文总结,对本次毕业设计做了

    8、相关小结并提出了下一步要做的工作。 第二章 课题背景2.1 AT89Cxx系列单片机的简介 MCS-51系列单片机具有性能优越,技术成熟,可靠性高,成本效益的优点,所以其迅速占领了工业测量和控制及自动化工程的主要市场,成为主流的芯片应用。由于其卓越的性能和完美的结构,导致后来许多微控制器制造商多遵循参考它的架构。和爱特梅尔公司一样,飞利浦,达拉斯和其他领先的半导体公司已经推出与MCS-51单片机产品兼容。这些知名厂商加入51系列获得了突飞猛进的发展,进一步丰富和发展的51系列,产品性能有了很大的提高。其主要特性有:1、80C51核心处理单元。2、64/32/16/8B片内Flash ROM,具

    9、有在应用可编程(IAP)、在系统可编程(ISP)的功能,可实现远程软件升级,无需编程器。3、1K字节RAM; 4、双DPTR数据指针;5、支持6时钟或12时钟模式;6、4个8位I/O口, P1口、P2口、P3口可直接驱动LED;7、SPI和增强型UAPT;8、有PCA(可编程计数器阵列),具有PWM的捕获/比较功能;9、3个16位定时器/计数器;10、可编程看门狗定时器;11、低EMI方式(ALE禁止);12、兼容TTL和COMS逻辑电平;13、掉电模式和低功耗模式等;14、全静态操作0Hz24Hz;图2-1为AT89Cxx系列单片机的引脚排列图:图2-1 AT89Cxx系列单片机引脚排列图

    10、2.2计算器系统简介计算器的组成包括运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备。低级计算器运算器,控制器由数字逻辑电路简单的串行操作,随机存取存储器是只有一个或两个细胞,用于累加存储。高级计算器和只读存储器由微处理器来实现各种复杂的计算程序,有更多的随机存取记忆体单元来存储程序和数据输入。键盘是计算机输入成员,一般的接触或传感器类型。为了减少计算器的大小,一键常常有多种功能。计算机显示输出部件,发光二极管显示器,液晶显示器等。除了显示的结果,但也经常会有溢出指示,错误指示。计算器的电源使用AC电源适配器或电池,电池或太阳能供电的AC转换器转换器充电

    11、。为了节约能源,计算器生产大规模集成电路采用CMOS工艺(互补型金属 - 氧化物 - 半导体集成电路),内部配备掉电定时器电路不自动操作。计算器可选外设,微型打印机,盒式磁带驱动器和磁机。2.3计算器的总体功能描述这次设计是多功能计算器的设计,所以它实现的不仅仅是简单的运算,还添加了电子表的功能,其主要实现功能如下所述:1、本设计为基于单片机的多功能计算器的设计,它的基本功能是进行四则运算“加”、“减”、“乘”、“除”;2、进行基本的四则运算,键盘由16个键组成,其中包含数字键09,符号键“+”、“-”、“*”、“/”、“=”和清零键;3、设计运算的过程中的数字和符号在显示器上都需要显示,按下

    12、“=”号键时,计算结果自动显示出来;4、可以连续多次的运算,也就是说前面计算所得的结果还可以作为后面运算的第一个值; 5、错误提示,例如除数为0,或者运算结果超过了计算器本身设定的范围时(溢出),可以在显示器上提示错误并内部归零;6、附加功能:在以上几点完成的情况下对系统进行下一步的扩展,增加了时钟芯片,这样系统既可以作为计算器,也可作为电子表,电子表具有调时。第三章 计算器的硬件系统设计3.1计算器的硬件系统框架计算器的硬件系统框架如图3-1所示:单片机按键及键扫电路显示电路复位、晶振电路实时时钟电路电源系统图3-1 计算器的硬件系统框架图3.2最小系统的设计单片机最小系统一般由单片机,复位

    13、电路和晶振电路组成,我们在设计中总是喜欢把按键输入、显示输出等加到上述电路中。1、单片机的选择在前面我们已经介绍了AT89C系列的单片机,本设计中我们采用AT89C52单片机,它的性能好,价格低。其引脚图如图3-2所示。图3-2 AT89C52引脚图2、晶振电路的设计本次设计的系统对于时间要求不是很高,只要按图来进行设计就可以使系统可靠起振并运行的稳定。但是由于图中的电容C2、C3的作用是对系统时钟频率的微调和稳定,所以在这次计算器系统的实际应用中一定要注意正确选择参数(本设计采用30pF),振荡频率范围是1.2MHz12MHz,这里采用11.0592MHz是因为可以准确地得到9600波特率和

    14、19200波特率,便于和计算机进行串口通讯。晶振电路的设计如下图3-3所示。 图3-3 晶振电路3、复位电路的设计本次设计对复位电路部分的考虑还是蛮周到的,因为复位电路对这次设计来说是很重要的。当程序运行出错或操作错误导致系统死锁状态时,为了让系统化险为夷,需要按复位键重新启动单片机。复位操作包过加电复位和手动复位,其中,按键手动复位分为电平方式和脉冲方式两种。这次设计中,手动复位明显比加电复位更适合,所以在这里采用按键手动复位中的按键电平复位,电路设计如图3-4所示。 图3-4 按键电平复位电路3.3键盘接口电路的设计这次设计是基于单片机的计算器的设计,并没有要求进行复杂的运算,因此,采用4

    15、4矩阵式键盘16个键来实现基本的“加” 、“减” 、“乘” 、“除”运算即可。矩阵式键盘的硬件结构比较简单,有行输出口和列输出口构成行列式键盘,按键设置在行、列的交点上。44矩阵式键盘具体按键安排如表3-1:表3-1 44矩阵式键盘 第0列第1列第2列 第3列第0行01 23第1行4567第2行89+-第3行*/=复位 电路设计如图3-5所示,图中1.、2、3、4分别接单片机的P10P13口,5、6、7、8分别接P14P17口。 图3-5 键盘接口电路3.4显示电路的设计单片机应用系统中常用的LED显示器件有LED数码管显示器和LED液晶显示器两种。液晶显示器和LED数码管显示器对比来说虽然价

    16、格贵点,但是它的显示功能强大,体积小、功耗低、界面清晰,便于观察。这次设计进行的是计算器设计,如果用液晶作为显示器,两行就足够了,一行显示算式,一行显示结果,所以这次设计选择TC1602字符型液晶模块进行显示。TC1602的工作原理:TC1602显示模块采用点阵图形来显示字符,显示分为2行、每行16个字符或1行16个字符两种模式,常用模式为2行16个字符。它包含16个引脚,引脚功能如下表3-2:表3-2 TC1602显示模块第1脚GND电源地第2脚Vcc接+5V电源第3脚VL液晶显示器调整对比度端第4脚RS寄存器选择信号线。高电平时进行读操作,低电平时选择指令寄存器第5脚RW读写信号线第6脚E

    17、使能端,当E端由高电平跳变成低电平时,可以写入数据第714脚8位双向数据线D0D7第15脚BLA背光电源正极输入端第16脚BLK背光电源负极输入端。BLA接正,BLK接负便会点亮背光灯TC1602引脚电路图如图3-6所示:图3-6 TC1602电路图图中714脚接单片机的P0口。TC1602液晶显示模块内置有字符发生ROM,字符发生RAM和字符显示RAM,字符发生存储器已经存储了192个不同的点阵字符图形,每一个字符都有固定的代码,可以通过查表找出所需要显示的字符的地址让其在液晶中显示出来。3.5 DS1302实时时钟电路的设计在这次设计中,DS1302时钟电路是系统扩展的一个模块,属于附加功

    18、能,它跟计算器是不属于一个部分的,在上学期创新设计的基础上,我多添加了这个模块,这样我的计算器除了计算功能外,还多了一项电子表的功能,使系统功能完善了许多。我设计的计算器和电子表两种模式可以用一个独立按键来进行切换,而且是在同一块液晶屏上显示。实时时钟电路DS1302的主要特点是采用串行数据传输,可以为电源提供可编程的充电功能,并且还可以关闭充电功能,采用普通32.768kHz晶振,工作电压为2.5V5.5V。它可以对年、月、日、周、日、时、分、秒进行计时,还具有闰年补偿等多种功能。但是这次设计,我设计的只是电子表,所以只需要时、分、秒,很多功能不可以体现出来,我准备在以后对系统进一步扩展,比

    19、如可以做个万年历,这样时钟芯片就可以得到充分的利用。其引脚功能如表3-3所示:表3-3 DS1602引脚功能第1脚Vcc2第1脚Vcc2第2脚X1和第3脚X2振荡源,外接32.768HZ的晶振第4脚GND地线第5脚复位/片选线第6脚I/O串行数据输入/输出端(双向)第7脚SCLK串行时钟输入第8脚Vcc1后背电源DS1302引脚电路图如图3-7所示: 图3-7 DS1302电路图在对该模块进行设计时,我选用了4个独立式按键,它们的功能分别是:“设置” 、“确认” 、“+” 、“-” ,用来准确的设置时间。设置方法如下:首先按设置键1下,可按“+”、“-”对“小时”进行设置,设置完毕按确认键退出

    20、;和前面一样,按设置键2下对“分”进行设置,按设置键3下对“秒”进行设置。第四章 计算器的软件系统设计这次设计需单片机硬件电路及软件编程相结合,在单片机的应用系统程序设计时,一般选用汇编语言和C语言。通过4.1的概述,这次设计我选择用C语言进行编程。4.1 汇编语言和C语言的特点及选择这次设计我用的是硬件电路和软件编程相结合的设计方案,所以选择合适的编程语言是很重要。在进行单片机的应用系统程序设计时,常见的有汇编语言和C语言两种。C语言虽然执行效率没有汇编语言高,但是它语言简单,便于操作,运算丰富,表达化类型多种多样,数据结构类型也很丰富,可以大大提高大大提高单片机应用系统研制开发的效率,而且

    21、它的易移植性也有助于打破不同单片机系列之间的界限。如今单片机的发展水平已经达到了一定高度,内部资源相当丰富,CPU的处理速度非常快。我觉得这次设计用C语言来控制单片机是一个不错的选择。所以在这次设计中我选择C语言来编写程序代码。主函数设计:/*函数声明*/#include #include #define uchar unsigned charuchar key;uchar rrr=0xff;uchar alldata12=0;uchar love14;uchar exit=0,yes=0,kind=0,fu=0,pfu=0,position1=0,position2=0;unsigned l

    22、ong data1=0,data2=0,data3=0,ddata=0;uchar keyscan(void);void display(uchar);void prodis(void);void clear(void);void datapc(void);void remove0(void);void data3dis(void);void main()init();while(1) key=keyscan(); delay(); if(exit=1) display(key); 4.2主模块程序的设计 主模块是可以说是本次设计的主框架。在进行结构化程序设计时经常会用到“从上到下”和“从下到

    23、上”两种方式,而“从上到下”法的核心便于主框架的构建。它的好坏直接影响到程序最终功能的实现。本设计的主要目的是实现计算功能,而不是电子表,仅在计算器功能的基础上,成功完成附加功能的电子表格,所以时间的优先级的设计,该系统应被引导到一种计算模式,而不是电子表格模式,设计完成后我可以根据需要在两者之间切换,主模块的程序流程图如图4-1所示。开始初始化液晶屏、DS1302及相关变量计算模式判断模式切换键是否按下 N Y电子表模式 判断模式切换键是否按下 N返回 Y 图4-1 主模块程序流程图 4.3键盘扫描模块程序的设计矩阵按键扫描程序是用来节省I/O口的,它可以根据按键数目的多少来节省对应的I/O

    24、口。键盘扫描模块程序的流程图如图4.2所示。键盘扫描子程序应具有以下功能:(1)如果键有按下,就计算键值。它的方法为:行输出口输出全为0,读列输入口信息,如果列输入值全为1,没有键按下;如果不是为全1,有键按下,对应的计算键值。(2)去除按键抖动。在按键操作过程中,按键受到弹性的影响会导致按键的机械触电在闭合及断开的瞬间发生抖动的现象,导致按键不能马上实现完全闭合或断开,并使输入电压信号也会出现抖动现象,抖动时间的长短根据按键的机械特性决定。在实际应用中,应大于20ms,否则,就会发生按一次做多次处理的情况,从而程序不能正常执行。开始是否有键按下 N 消抖 Y 确实有键按下 N 判断并计算键号

    25、,执行相应命令 Y 按键是否释放 N 返回 Y图4-2 键盘扫描模块程序流程图 (3)判断按键是否释放。首先要计算出闭合键的键值,然后对按键判断是否释放。如果按键释放就等待;如果键已经释放,那么就再延时消抖。(4)命令处理。输入闭合键的键值后,程序自动实现该键已经设定的功能。4.4运算模块程序的设计在这个模块中,我要实现“加”、“减”、“乘”、“除”四种整数的运算,需要定义三个数:x、y、z ,类型为长整型(-2147485648+2147485647);其中x为第一个数,y为第二个数,z为两数运算的结果。这次设计还要求可以根据需要进行连续多次的运算,即把c的值赋给x,输入运算符,再输入y,按

    26、下“=”号,再得到z,再赋给x,以此反复执行。在运算中x的值有可能是负数,而y必定是正数,所以我在进行“加”、“减”、“乘”三种运算时都可能会有溢出,都需要进行报错;在除法运算时,若除数为0,也需要报错。设d=+2147485647,e=-2147485648,判断溢出的方法是:(1)加法:当0xd-y,则溢出;(2)减法:当exx-e,则溢出;(3)乘法:当0xd/x,则溢出; 当exe/x,则溢出;这次需要当心的地方就是在设计过程中除法运算时为了保留四位小数需对z转化为float型并进行10000的操作,可以想象当z +214748.5647时,z扩大一万倍就不再属于长整型的范围了,这就产

    27、生了溢出错误。为了阻止这种情况的发生,这次设计规定了当z +214748.3645或z-214748.5648时,结果显示不保留小数;当z-214748.5648时,结果显示保留四位小数。运算模块程序流程图如图4-3所示。开始判断是哪个运算符乘减除加除数是否为0 N错误信息送显示缓冲区运算结果是否溢出Y Y 数值送显示缓冲区 N 图4-3 运算模块程序流程图4.5显示模块程序的设计在这次设计中,显示器上只需要显示数字和符号,不需要显示图形或者汉字,而且需要显示的数字和符号都有在TC1602液晶模块内置的字符发生存储器里,在编程时,通过查表就可得到相应字符的代码。显示程序的流程图如图4-4所示。

    28、开显示液晶初始化 判断是否显示字符 N 相应功能的设置 Y Y送地址 送数据 判断是否显示完 N 返回 Y 图4-4 显示程序流程图在这个模块中,我们需要了解液晶的基本操作时序写指令和写数据。写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲;输出:无。写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲;输出:无。4.6 DS1302实时时钟模块程序的设计从前面已经了解到了时钟芯片的功能很强大,设计这部分程序前,我必须对DS1302有关日历、时间的寄存器进行深入的了解。在本设计中,我只用到了时间,所以我在这里就只对时间寄存器进行解释,时(85H、84H)、分(83H、82

    29、H)、秒(81H、82H)寄存器及控制寄存器(8FH、8EH)介绍如表4-1所示。表4-1 时、分、秒、控制寄存器介绍读寄存器写寄存器bit7 bit6bit5bit4bit3bit2bit1bit0 范围81H80HCH10秒秒005983H82H10分分005985H84H 0 020时10时 时0238FH8EH WP 0000000从表中,可以很明了的知道以上寄存器的功能和使用方法,需要说明的是控制寄存器的位7(WP)是写保护位,其他七位都为0,在对任何时钟和RAM进行写操作前,WP必须为0。当WP为1时,禁止对任一寄存器进行写操作,也就是说在电路上电的初始态WP为1,必须先将它置为0,才可进行写操作。还有秒寄存器的位7位定义为时钟暂停标志(CH)位置为1时,时钟振荡器停止,DS1302时钟芯片处于低功耗状态;为0时,时钟开始运行。例如,执行以下语句,就在时钟芯片中写入了时间11:20:05。write_ds1302(0x8e,0x00); /去保护write_ds1302(0x84,0x12); /写小时,11时write_ds1302(0x82,0x30); /写分钟,20分write_ds1302(0x80,0x01); /写秒钟,05秒write_ds1302(0x8e,0x80); /写完后,上保护DS1302时钟程序流程图如图4-5所示。


    注意事项

    本文(毕业设计多功能计算器的设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开