当前位置:文档之家› 简易计算器毕业论文

简易计算器毕业论文

引言计算器(Calculator)是微型电子计算机的一种特殊类型。

它与一般通用计算机的主要区别在于程序输入方式的不同。

计算器的程序一般都已经固定,只需按键输入数据和运算符号就会得出结果,很容易就能掌握。

而一般计算机的程序可以根据需要随时改动,或重新输入新的程序。

简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算(有的还带有数据总加、求平均值等统计运算)。

现代电子计算器首次问世是1963年。

那时的计算器是台式的,在美国波士顿的电子博览会上展出过。

与计算机相比,它小巧玲珑,计算迅捷,一般问题不必事先编写复杂的程序。

随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。

随着社会需求,计算器也从原有单一的数字加减计算演变为复杂的多种运算。

现在不在单一的在某一方面而是涉及到生活的方方面面.由于我对知识掌握的不够熟练,重点不够清楚,导致在重点与非重点处花费的时间不成比例,进度缓慢,这是设计没能全部完成的部分原因。

目前只做到按键与显示的结合(即在显示器上可以显示数字键还有命令键+-*/ =清零);加法子程序已经编写成功并严整无误,但在整体调试中未能圆满实现,本部分正在调试中。

等调试成功后,其它运算子程序的问题将迎刃而解。

1.简易计算器的设计方案1.1硬件部分设计方案1 单片机部分单片机以AT89C51来做为核心元器件。

2 按键部分设计思路:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键。

但是这种方式采用了大量的I/O口线。

3 显示部分在单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)、LCD液晶显示器以及CRT接口。

思路:使用液晶显示器来显示。

液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的混浊固态。

在电的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的。

LCD还具有以下几个优点(1)低压、微功耗(2)显示信息量大(3)长寿命(4)无辐射,无污染。

1.2软件部分设计软件部分的设计思路是将整个程序划分为键盘扫描部分,显示部分,运算程序部分,清屏显示部分。

对于其中的键盘扫描部分在编写时又分为动态扫描和静态扫描;运算程序部分包括加、减、乘、除四个子程序。

软件流程大致如下:开始,然后是系统的初始化,进行键盘扫描,对扫描的键值进行判断(分为数字键和功能键),如果是数字键,执行数字键处理子程序,即显示数字并将数值存储;如果是命令键,即先判断是否为清屏,如为清屏键,则执行清屏子程序,若为+-*/运算键则显示相应的符号并存储结果,若都不是则为=键,即要先判断上个符号位,然后调用对应的运算子程序运算,就可以得到需要的结果。

1.3 硬件设计原理图计算器大致分为:单片机、液晶显示、键盘三大部分。

因此,总的电路设计方案以单片机AT89s51来做为核心元器件,外围采用4*4行列式键盘作为输入,采用LCD1602液晶显示器来做输出显示图 1.1 硬件设计框图2. 简易计算器部分电路设计1 单片机的复位:电路如图2.2所示.RST:复位输入,在RESET(图中表示为RST )输入端出现高电平时实现复位和初始化.。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

22(a) (b)图2.2 复位电路在振荡运行的情况下,要实现复位操作,必须使RES 引脚至少保持两个机器周期(24个振荡器周期)的高电平。

CPU在第二个机器周期内执行内部复位操作,以后每一个机器周期重复一次,直至RES端电平变低。

复位期间不产生ALE及PSEN信号。

内部复位操作使堆栈指示器SP为07H,各端口都为1(P0-P3口的内容均匀0FFH),特殊功能寄存器都复位为0,但不影响RAM的状态。

当RES引脚返回低电平以后,CPU从0地址开始执行程序。

图2.2(a)为加电自动复位电路。

加电瞬间,RES 端的电位与Vcc相同,随着RC 电路充电电流的减小RES的电位下降,只要RST 端保持10毫秒以上的高电平就能使MCS-51单片机有效地复位,复位电路中的RC 参数通常由实验调整。

当振荡频率选用6MHz时,C选22uF,R选1K,便能可靠地实现加电自动复位,若采用RC电路接斯密特电路的输入端,斯密特电路输出端接MCS-51和外围电路的复位端,能使系统可靠地同步复位。

图2.2(b)为人工复位电路。

2.振荡器特性:XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

2.2 显示及显示接口2.2.1单片机引脚及常用命令简介:本次设计在显示部分采用的是LCM1602B,它是一个双行显示的液晶显示器。

其采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW 共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。

第15~16脚:分别为背光灯正负极,A接正极, K接负极。

它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

(说明:1为高电平、0为低电平)图2.3计算器电路在显示部分,先设计了LCD初始化的程序,其次完成了显示程序的设计。

简要的介绍LCD显示过程中用到的个子程序2.3 键盘、液晶显示的组合接口在单片机应用系统中为了控制系统的工作状态,以及向系统输入数据,应用系统有按键或键盘`。

例如复位用的复位键,功能转换用的功能键以及数据输入用的数字键盘等。

按键或键盘中的每一个键都赋予特定的功能,他们通过借口电路与单片机相连。

通过软件了解按键的状态及键信息的输入,并转去执行该功能键的功能处理程序,键盘的接口方法有多种,但键输入过程软件结构基本是一样的。

对键盘上的每一个键,都有一个编号,(即键号),CPU可采用中断方式或查询方式了解有无按键按下,并检查是哪一个按键按下,确定键号,将该键号送如累加器A,然后通过散转指令转入执行该键的功能程序。

最后返回到原处。

2.3.1 键盘接口和键输入软件中应解决的几个问题1.消除键抖动按键的合断都存在一个抖动的暂态过程,。

这种抖动的暂态过程约经过5—10MS的时间,人发肉眼是觉察不到的,但对高速的CPU是有反应的,可能差生误差处理,为了按键的动作一次,仅做一次处理,必须采取措施一消除抖动。

消除抖动的措施有两种:硬件消抖和软件消抖。

硬件消除抖动可用简单的R-S触发器或单稳态电路构成,软件消除抖动是用延时来躲过暂态抖动过程,执行一段大于10MS的延时程序后,再读取稳定的键状态。

2.键编码及键值一组案件或键盘都要通过I/O口线查询按键的开关状态。

根据键盘结构不同,采用不同的编码方法。

但无论有无编码,以及采用什么编码,最后都要转换成为与累加器中的数值相对应的键值,以实现案件功能程序的散转。

顺序排列键编码。

如图:采用此种方法,键值的形成要根据I/O线的状态来做相应处理。

键码可按下式形成:键码= 行首键号 + 列号3.键盘的检测方法对于计算机应用系统,键盘扫描只是CPU工作的一部分,键盘处理只是在有键按下时才有意义。

对是否有键按下的信息输入方式有中断方式与查询方式两种。

2.3.2 行列式键盘工作原理行列式键盘又称矩阵式键盘。

用I/O线组成行、列结构,按键设置行列的交点上,例如4*4的行列结构可组成16个键的键盘。

因此在案件数量较多时,可节省I/O口线。

(1)行列式键盘的接口行列式键盘的接口方法有许多,,例如直接接口与单片机的I/O上;用扩展的并行I/O接口;用串行口扩展并行I/O接口;利用一种可编程的键盘、显示接口芯片进行接口等。

其中,利用扩展的并行I/O接口方法方便灵活,在单片机应用系统中比较常用。

(2)键盘工作原理按键设置在行、列线的交点上,行、列线分别连接到按键开关的两端。

行线通过上拉电阻接+5V,被置位在高电平状态。

对键盘的工作过程可分为两步:第一步是CPU首先检测键盘上是否有键按下;第二步是识别是哪一个键按下。

检测键盘上有无按键按下可采用查询工作方式、定时扫描方式和中断工作方式。

查询工作方式:键盘中有无键按下是有列线送如入全扫描字,读入行线状态来判别的。

其方法是:所有列线置低电平,然后将行线电平状态读入累加器A中。

如果有键按下,总会有一根行线电平被拉低至低电平,从而使行输入状态不全为“1”。

键盘中哪一个键按下是又列线逐列置低电平后,检查行输入状态,称为逐列扫描。

方法是:置对应的列线为低电平,然后读入行线状态,如果全为“1”,则所按下之键不在此列;如果不全为“1”,则所按下之键必在此列,而且是与0电平行线相交的交点上的那个键。

为求取键码,在逐列扫描时,可用计数器纪录当前列的列号,然后用行线值为“0”的行首键码加列号的办法计算。

键盘扫描子程序如下:将简易计算器的主程序划分为以下几个部分:(1)系统初始化致谢在论文完成之际,我要特别感谢我的指导老师郭老师的热情关怀和悉心指导。

在我做毕业设计的整个过程中,郭辛老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我很受感动,在此对郭辛老师表示我深深的谢意。

在论文的写作过程中,也得到了许多同学的宝贵建议,同时还到许多在工作过程中许多同事的支持和帮助,在此一并致以诚挚的谢意。

感谢所有关心、支持、帮助过我的良师益友。

参考文献[1]丁元杰.单片微机原理及应用(第三版).北京:机械工业出版社,2005.7[2]李建忠. 单片机原理及应用(第一版). 西安电子科技大学出版社,2002[3]李维绨.郭强.液晶显示与应用技术。

相关主题