简易计算器毕业论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言
计算器(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显示过程中用到的个子程序