基于单片机的简易计算器设计.doc

上传人:b****2 文档编号:1260972 上传时间:2022-10-19 格式:DOC 页数:38 大小:1.35MB
下载 相关 举报
基于单片机的简易计算器设计.doc_第1页
第1页 / 共38页
基于单片机的简易计算器设计.doc_第2页
第2页 / 共38页
基于单片机的简易计算器设计.doc_第3页
第3页 / 共38页
基于单片机的简易计算器设计.doc_第4页
第4页 / 共38页
基于单片机的简易计算器设计.doc_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

基于单片机的简易计算器设计.doc

《基于单片机的简易计算器设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的简易计算器设计.doc(38页珍藏版)》请在冰豆网上搜索。

基于单片机的简易计算器设计.doc

内蒙古工业大学本科毕业设计说明书

目录

引言 1

第一章设计原理及要求 2

1.1设计方案的确定 2

1.2系统的设计方案 2

1.3系统的设计要求 2

第二章硬件模块设计 4

2.1单片机AT89C51 4

2.1.1AT89C51芯片的特点 5

2.1.2管脚说明 5

2.1.3振荡器特性 7

2.1.4芯片擦除 7

2.2键盘控制模块 7

2.2.1矩阵键盘的工作原理 8

2.2.2键盘电路主要器件介绍 8

2.3LCD显示模块 10

2.3.1显示电路 11

2.3.2LCD1602主要技术参数 11

2.3.3引脚功能说明 11

2.4运算模块(单片机控制) 12

第三章软件设计 14

3.1功能介绍 14

3.2系统流程图 14

3.3程序 16

第四章系统调试 17

4.1软件介绍 17

4.1.1KeiluVision2仿真软件简介 17

4.1.2protues简介 17

4.2软件调试 18

4.2.1软件分析及常见故障 19

4.2.2仿真结果演示 20

4.3硬件调试 21

结束语 23

参考文献 24

附录 25

致谢 36

引言

计算工具最早诞生于中国,中国古代最早采用的一种计算工具叫筹策,也被叫做算筹。

这种算筹多用竹子制成,也有用木头,兽骨充当材料的,约二百七十枚一束,放在布袋里可随身携带。

另外直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。

17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的“纳皮尔算筹”,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加、减、乘、除、乘方和开方运算,甚至可以计算三角函数、指数函数和对数函数。

这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。

1642年,年仅19岁的法国伟大科学家帕斯卡引用算盘的原理,发明了第一部机械式计算器,在他的计算器中有一些互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另一个窗口中,但是它只能做加减运算。

1694年,莱布尼兹在德国将其改进成可以进行乘除的计算。

此后,一直到20世纪50年代末才有电子计算器的出现。

第一章设计原理及要求

1.1设计方案的确定

本设计是以单片机AT89C51为核心的简易计算器设计,要通过芯片AT89C51实现计算器程序运行来完成加、减、乘和除的简单计算功能。

本设计运算模块由AT89C51实现,数据输入模块由4*4矩阵键盘电路实现,输出数据模块由LCD显示电路实现,再外加一个时钟电路和一个复位电路完成整个简易计算器的设计。

1.2系统的设计方案

本设计由以下几部分组成:

AT89C51单片机系统(运算模块)、键盘电路、显示电路、时钟电路和复位电路构成,计算器系统框图如图1-1所示。

图1-1计算器系统框图

1.3系统的设计要求

为了更好地实现系统的功能,硬件电路的设计应该遵循以下原则:

1、优化硬件电路

采用软件设计与硬件设计相结合的方法。

尽管采用软件来实现硬件系统的功能时,也许响应的时间会比单纯使用硬件时长,而且还要占用微处理器(MCU)的时间;但是,用软件实现硬件的功能可以简化硬件结构,提高电路的可靠性。

所以,在设计本系统的时候,在满足可靠性和实时性的前提下,尽可能地通过软件来实现硬件功能。

2、可靠性及抗干扰设计

根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长。

而且,所用芯片数量越少,地址和数据总线在电路板上受干扰的可能性也就越小。

因此,系统的设计思想是在满足功能的情况下争取较少数量的芯片。

3、灵活的功能扩展

功能扩展是否灵活是衡量一个系统优劣的重要指标之一。

一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善以及进行功能升级。

进行功能扩展时,应该在原有设计的基础上,通过修改软件程序和少量硬件完成。

对于本系统而言,就是要求在系统硬件不变的情况下,能够通过修改软件程序,完成功能的升级和扩展。

根据提出的系统设计方案,结合以上三条原则,确定了系统硬件的设计。

计算器主要由以下一些功能模块组成:

非编码键盘模块、运算模块(单片机内部)和LCD液晶显示模块等。

该系统的硬件设计采用了模块化的设计方法。

AT89C51单片机、LCD液晶显示屏显示电路和键盘电路是整个电路的核心,它们能实现系统的功能要求。

简易计算器主要包括:

键盘电路、运算电路和输出显示电路。

第二章硬件模块设计

在本设计中主要用到的硬件:

单片机AT89C51、液晶显示屏LCD1602、4*4矩阵键盘。

单片机AT89C51的硬件资源分配:

(1)P3口:

作为输入口,与键盘连接,实现数据的输入;

(2)P0、P2口:

作为输出口(P2口为高位,P0口为低位),控制LCD液晶显示屏显示数据的结果;

(3)P1口和部分P3口:

作为液晶显示屏LCD1602显示输出。

2.1单片机AT89C51

本设计所用单片机采用AT89C51单片机,它兼容于MCS-51系列单片机,而且具有1000次可擦写的FLASHMEMORY,方便于系统的开发以及参数的修改。

尽管它是8位机,但它的处理精度完全满足系统的设计要求。

该种单片机的最高频率可达到24MHz。

在12MHz时,其处理速度完全达到设计要求,AT89C51的实物图及引脚图如图2-1所示。

图2-1单片机AT89C51实物图及引脚图

2.1.1AT89C51芯片的特点

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

1、与MCS-51兼容

2、1000写/擦循环

3、4K字节可编程闪烁存储器

4、数据保留时间:

10年

5、全静态工作:

0Hz-24Hz

6、三级程序存储器锁定

7、128*8位内部RAM

8、32可编程I/O线

9、两个16位定时器/计数器

10、5个中断源

11、可编程串行通道

12、低功耗的闲置和掉电模式

13、片内振荡器和时钟电路

2.1.2管脚说明

VCC:

供电电压。

GND:

接地。

P0口:

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

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

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

在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,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口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

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

ALE/PROG:

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

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

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

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

然而要注意的是:

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

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

此时,ALE只有在执行MOVX时ALE才起作用。

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

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

/PSEN:

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

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

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

/EA/VPP:

当/EA保持低电平时,则在此期间只管外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器,注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此时只管内部程序存储器。

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

XTAL1:

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

XTAL2:

来自反向振荡器的输出。

2.1.3振荡器特性

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

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

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

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

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

2.1.4芯片擦除

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

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

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

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

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

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

2.2键盘控制模块

计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。

矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。

这样键盘上按键的个数就为4×4个。

这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。

2.2.1矩阵键盘的工作原理

键盘可分为两类:

编码键盘和非编码键盘。

编码键盘是较多按键(20个以上)和专用驱动芯片的组合;当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。

通用计算机使用的键盘就是编码键盘。

在智能仪器中,使用并行接口芯片8279或串行接口HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电

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

当前位置:首页 > 工程科技 > 材料科学

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

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