011109030109计算器毕业设计论文.docx

上传人:b****6 文档编号:3306103 上传时间:2022-11-21 格式:DOCX 页数:19 大小:621.87KB
下载 相关 举报
011109030109计算器毕业设计论文.docx_第1页
第1页 / 共19页
011109030109计算器毕业设计论文.docx_第2页
第2页 / 共19页
011109030109计算器毕业设计论文.docx_第3页
第3页 / 共19页
011109030109计算器毕业设计论文.docx_第4页
第4页 / 共19页
011109030109计算器毕业设计论文.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

011109030109计算器毕业设计论文.docx

《011109030109计算器毕业设计论文.docx》由会员分享,可在线阅读,更多相关《011109030109计算器毕业设计论文.docx(19页珍藏版)》请在冰豆网上搜索。

011109030109计算器毕业设计论文.docx

011109030109计算器毕业设计论文

引言

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

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

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

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

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

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

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

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

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

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

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

现在不在单一的在某一方面而是涉及到生活的方方面面.

由于我对知识掌握的不够熟练,重点不够清楚,导致在重点与非重点处花费的时间不成比例,进度缓慢,这是设计没能全部完成的部分原因。

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

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

 

目录

引言1

目录2

1.简易计算器的设计方案3

1.1硬件部分设计方案3

1.2软件部分设计3

1.3硬件设计原理图4

2.简易计算器部分电路设计5

2.1AT89C51常用指令5

2.2显示及显示接口11

2.3键盘、液晶显示的组合接口18

2.4算术逻辑运算处理21

3.总设计电路及调试24

致谢30

参考文献31

 

1.简易计算器的设计方案

1.1硬件部分设计方案

1单片机部分

单片机以AT89C51来做为核心元器件。

2按键部分

方案一:

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

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

方案二:

采用独立式按键。

独立式按键接口电路配置灵活,软件结构简单.

但是在本实验中根据实际的需要19个按键,所以我们采用方案二。

3显示部分

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

方案一:

使用8位LED数码管来做显示。

LED显示器是是由发光二极管显示字段组成的显示器件,在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极和共阳极两种,它具有成本低廉、配置灵活和单片机接口方便等特点。

方案二:

使用液晶显示器来显示。

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

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

LCD还具有以下几个优点

(1)低压、微功耗

(2)显示信息量大(3)长寿命(4)无辐射,无污染。

1.2软件部分设计

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

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

软件流程大致如下:

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

1.3硬件设计原理图

简易计算器大致分为:

单片机、液晶显示、键盘三大部分。

因此,总的电路设计方案以单片机AT89C—51来做为核心元器件,外围采用4*4行列式键盘作为输入,采用LCM1602液晶显示器来做输出

 

图1.1硬件设计框图

 

 

2.简易计算器部分电路设计

2.1AT89C51常用指令

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1主要特性:

·与MCS-51兼容

·4K字节可编程闪烁存储器,寿命:

1000写/擦循环,数据保留时间:

10年。

·全静态工作:

0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

·两个16位定时器/计数器

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路

2管脚说明:

如图2.1

 VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下所示:

P3口管脚备选功能:

P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

 

图2.1AT89C51芯片管脚图

3.单片机的复位:

电路如图2.2所示.RST:

复位输入,在RESET(图中表示为RST)输入端出现高电平时实现复位和初始化.。

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

+5V+5V

 

图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)为人工复位电路。

   ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

   /PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

   /EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

4.振荡器特性:

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

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

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

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

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

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

芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

   此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

5.特殊功能寄存器

MCS-51单片机内的锁存器、定时器、串行口数据缓冲器以及各种控制寄存和状态寄存器都是以特殊功能寄存器的形式出现的,它们分散地分布在内部RAM地址空间范围,

(1)累加器A

最常用的特殊功能寄存器,大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数取自累加器。

加、减、乘、除算术运算指令的运算结果都存放在累加器A或A、B寄存器对中。

指令系统中用A作为累加器的助记符。

(2)B寄存器

B寄存器是乘除法指令中常用的寄存器。

乘法指令的两个操作数分别取自A和B,其结果存放在AB寄存器对中。

除法指令中,被除数取自A,除数取自B,商数存在放于A,余数存放于B。

在其它指令中,B寄存器可作为RAM中的一个单元来使用。

(3)程序状态字PSW

程序状态字是一个8位寄存器,它包含了程序状态信息。

此寄存器各位的含义参见图2-8,其中PSW·1未用。

其它各位说明如下:

表2.1寄存器各位含义

CY

AC

F0

RS1

RS0

OV

-

P

①CY(PSW·7)进位标志

在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。

在布尔处理机中它被认为是位累加器,其重要性相当于一般中央处理机中的累加器A。

②AC(PSW·6)辅助进位标志

当进行加法或减法操作而产生由低4位数(BCD码一位)向高4位数进位或借位时,AC将被硬件置位,否则就被清零。

AC被用于BCD码调整。

详见DAA指令。

③F0(PSW·5)用户标志位

F0是用户定义的一个状态标记,用软件来使它置位或清零。

该标志位状态一经设定,可由软件测试F0,以控制程序的流向。

④RS1,RS0(PSW·4,PSW·3)寄存器区选择控制位

可以用软件来置位或清零以确定工作寄存器区。

RS1,RS0与寄存器区的对应关系见表2-3。

⑤OV(PSW·2)溢出标志:

当执行算术指令时,由硬件置位或清零,以指示溢出状态。

当执行加法指令ADD时,位6向位7有进位而位7不向CY进位时,或位6不向位7进位而位7向CY进位时,溢出标志OV置位,否则清零。

溢出标志常用于ADD和SUBB指令对带符号数作加减运算时,OV=1表示加减运算的结果超出了目的寄存器A所能表示的带符号数(2的补码)的范围(-128-+127),在MCS-51中,无符号数乘法指令MUL的执行结果也会影响溢出标志。

若置于累加器A和寄存器B的两个数的乘积超过255时,OV=1,否则OV=0。

此积的高8位放在B内,低8位放在A内。

因此,OV=0意味着只要从A中取得乘积即可,否则要从BA寄存器对中取得乘积。

除法指令DIV也会影响溢出标志。

当除数为0时,OV=1,否则OV=0。

⑥P(PSW.0)奇偶标志

每个指令周期都由硬件来置位或清“0”,以表示累加器A中1的位数的奇偶数。

若1的位数为奇数,P置“1”,否则P清“0”。

P标志位对串行通信中的数据传输有重要的意义,在串行通信中常用奇偶校验的办法来检验数据传输的可靠性。

在发送端可根据P的值对数据的奇偶置位或清零。

通信协议中规定采用奇校验的办法,则P=0时,应对数据(假定由A取得)的奇偶位置位,否则就清0。

(4)栈指针

栈指针SP是一个8位特殊功能寄存器。

它指示出堆栈顶部在内部RAM中的位置。

系统复位后,SP初始化为07H,使得堆栈事实上由08H单元开始。

考虑到08H-1FH单元分属于工作寄存器区1-3,若程序设计中要用到这些区,则最好把SP值改置为1FH或更大的值,SP的初始值越小,堆栈深度就可以越深,堆栈指针的值可以由软件改变,因此堆栈在内部RAM中的位置比较灵活。

除用软件直接改变SP值外,在执行PUSH,POP指令,各种子程序调用,中断响应,子程序返回(RET)和中断返回(RETI)等指令时,SP值将自动调整。

(5)数据指针

数据指针DPTR是一个16位特殊功能寄存器,其高位字节寄存器用DPH表示,低位字节寄器用DPL表示,既可以作为一个16位寄存器DPTR来处理,也可以作为两个独立的8位寄存器DPL和DPL来处理。

DPTR主要用来存放16位地址,当对64KB外部存储器寻址时,可作为间址寄存器用。

可以用下列两条传送指令:

MOVXA,@DPTR和MOVX@DPTR,A。

在访问程序存储器时,DPTR可用作基址寄存器,有一条采用基址+变址寻址方式的指令MOVCA,@A+DPTR,常用于读取存放在程序存储器内的表格常数。

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接负极。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,

如表3-1所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,

表2.2点阵字符图形表

高位

低位

0000

0010

0011

0100

0101

0110

0111

0000

CGRAM

(1)

0

P

\

p

0001

(2)

1

A

Q

a

q

0010

(3)

2

B

R

b

r

0011

(4)

#

3

C

S

c

s

0100

(5)

$

4

D

T

d

t

0101

(6)

%

5

E

U

e

u

0110

(7)

6

F

V

f

v

0111

(8)

>

7

G

W

g

w

1000

(1)

8

H

X

h

x

1001

(2)

9

I

Y

i

y

1010

(3)

*

J

Z

j

z

1011

(4)

+

K

[

k

{

1100

(5)

^

<

L

 

l

|

1101

(6)

=

M

m

}

1110

(7)

.

>

N

n

1111

(8)

/

?

O

o

每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

1602液晶模块内部的控制器共有11条控制指令,如表3-2所示,

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

(说明:

1为高电平、0为低电平)

指令1:

清显示,指令码01H,光标复位到地址00H位置。

指令2:

光标复位,光标返回到地址00H。

指令3:

光标和显示模式设置I/D:

光标移动方向,高电平右移,低电平左移S:

屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平则无效。

指令4:

显示开关控制。

D:

控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:

控制光标的开与关,高电平表示有光标,低电平表示无光标B:

控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:

光标或显示移位S/C:

高电平时移动显示的文字,低电平时移动光标。

指令6:

功能设置命令DL:

高电平时为4位总线,低电平时为8位总线N:

低电平时为单行显示,高电平时双行显示F:

低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符(有些模块是DL:

高电平时为8位总线,低电平时为4位总线)。

指令7:

字符发生器RAM地址设置。

指令8:

DDRAM地址设置。

指令9:

读忙信号和光标地址BF:

为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:

写数据。

指令11:

读数据。

 

表2.3液晶控制指令表

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

清显示

0

0

0

0

0

1

光标返回

0

0

0

0

1

*

置输入模式

0

0

0

1

I/D

S

显示开/关控制

0

0

1

D

C

B

光标或字符移位

0

1

S/C

R/L

*

*

置功能

1

DL

N

F

*

*

置字符发生存贮器地址

字符发生存贮器地址(AGG)

置数据存贮器地址

显示数据存贮器地址(ADD)

读忙标志或地址

BF

计数器地址(AC)

写数到CGRAM或DDRAM

要写的数

从CGRAM或DDRAM读数

读出的数据

2液晶显示模块与单片机的连接方式

单片机AT89C51与LCD模块(LCM)的接口方式有两种

1.直接访问方式的接口电路是将液晶显示模块LCM挂接在AT89C51的总线上,通过对数据总线的读写实现对LCD的控制。

2.间接控制方式

可分为4位总线和8位总线两种方式,4位数据传输时需传输两遍,相对比较麻烦,本设计采用间接连接方式,在此重点讨论8位总线方式。

其电路图如图2-4所示。

对应与2.3图,LCD的8位数据总线与AT89C51的P1口相连,三个控制端口RS、R/W和E分别接AT89C51的P3.0、P3.1、P3.3管脚,根据程序设计的不同也可选用P3口的其它管脚。

VL是LCD的对比度调节端,接正电源时对比度最弱,接地时对比度最高,本电路使用1K的电位器来调整对比度,也可直接串接一个电阻到地。

单片机要写入指令时RS为低电平;单片机要写入数据时RS为高电平;R/W为高电平时读取数据,R/W为低电平时写入数据。

需要背光时,BLA串接一个限流电阻接VDD,BLK接地。

9管脚的复位端分别接10uf极性电容和10K电阻,电容接电源,电阻接地,同时复位端通过按键接电源,当按键按下时单片机复位。

LCD初始化是必需的,包括清除显示,设置工作方式、光标闪烁设置等。

工作方式设置为:

DL=1,为8位数据长度接口;N=1,为两行显示;F=0,为5*7点阵字符。

图2.3LCD1602与单片机的间接连接电路

在显示部分,先设计了LCD初始化的程序,其次完成了显示程序的设计。

简要的介绍LCD显示过程中用到的个子程序

(1)系统初始化(单片机定义、LCD初始化)

}

 

2.3键盘、液晶显示的组合接口

在单片机应用系统中为了控制系统的工作状态,以及向系统输入数据,应用系统有按键或键盘`。

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

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

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

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

最后返回到原处。

2.3.1键盘接口和键输入软件中应解决的几个问题

1.消除键抖动

按键的合断都存在一个抖动的暂态过程,。

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

消除抖动的措施有两种

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1