基于AT89C51的电子计算器设计 毕业设计.docx
《基于AT89C51的电子计算器设计 毕业设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C51的电子计算器设计 毕业设计.docx(51页珍藏版)》请在冰豆网上搜索。
基于AT89C51的电子计算器设计毕业设计
毕业设计说明书
基于AT89C51的电子计算器设计
专业
电子信息工程
学生姓名
**ping
班级
MZ电子101
学号
指导教师
完成日期
2014年5月30日
基于AT89C51的电子计算器设计
摘要:
当今时代,是一个高新科技研究层出不穷的新时代。
以电子领域的应用为例,尤其以电子领域的自动化智能控制应用领域作为观察点,单片机的智能化控制已是快速替代这传统的数字逻辑电路或者是以分立元件构成的控制系统。
也可称单片机为单片微控制器,它集成一个计算机系统到一个芯片上,是计算机的最小系统,较之于计算机它又缺少外围设备。
控制器、运算器以及各种寄存器相互配合是的单片机工作,它们是单片机必要的几个组成成分。
单片机集体积小、成本低、质量轻、应用广泛等众多优点于一体,是学习与工业开发的最佳选择。
本设计是一个基于AT89C51单片机控制的十进制电子计算器系统的设计。
可实现结果为九位数范围内的乘、除法运算和加减数为九位,结果为十位数范围内的加、减法运算。
硬件设计方面,单片机选择成本低、内部存储资源丰富的AT89C51单片机,输入数据时采用行列式按键中的4*4矩阵型按键作为输入设备,并在LCD1602上显示出对应的运算结果。
软件方面选择C语言来完成,C语言兼备着高级语言特点与汇编语言的特点,实为上选。
并且最后采用proteus仿真。
关键词:
AT89C51;矩阵键盘;LCD1602;计算器
DesignofelectroniccalculatorbasedonAT89C51
Abstract:
Inmoderntimes,itisanewerawhenhighandnewtechnologyisdevelopingendlessly.Fromtheelectronicfieldofview,especiallyinthefieldofautomatedintelligentcontrol,intelligentcontrolsystemisrapidlyreplacingthecontrolsystemcomposedofdiscretecomponentsordigitallogiccircuit.Themicro-controllerchipasthemicrocontroller,whichintegratesacomputersystemtoachip,isthesmallestcomputersystem.Comparedwiththecomputer,itlackstheperipheralequipment.Controller,logicunit,registersandthesinglechipcomputerworkwitheachother,andtheyarenecessaryforcomponentsofsinglechipmicrocomputer.Singlechipsethastheadvantagesofsmallvolume,lowcost,lightweightandwideapplication,servingasthebestchoiceforlearningandthedevelopmentofindustry.
Inthispaper,decimalelectroniccalculatorsystemwasdesignedbasedon8051singlechip,whichachievedtheresultsofmultiplicationanddivisionwithinthescopeofninedigits,andadditionandsubtractionwithinthescopeoftendigits.Intermsofhardwaredesign,AT89C51oflowcostandrichinternalstorageresourceswasadopted.Duringinputdata,keydeterminantofthe4*4matrixtypebuttonwasusedasaninputdevice,andtheresultswereshowedonLCD1602.Intermsofsoftware,Clanguagewasused,withadvancedlanguageandassemblylanguage.Finally,Proteussimulationwasused.
Keywords:
AT89C51;Matrixkeyboard;LCD1602;Calculator
基于AT89C51的电子计算器设计
1概述
1.1课题的来源
在生活中,做实验、买东西、记账、看时间等活动要计算,工厂统计产品、老师清点人数、学校记录成绩也要计算······这么说来,在做任何事情的时候人们都必须应心中有个数的概念,扩大解释,就是计算。
于是计算这个概念非常重要。
而随着三次工业革命的发展,远古的计算方式完全不能够适应社会的发展。
因此,计算机便是应运而生。
伴随着工作种类的激增,很大一部分人处于常年出差的状态,这种情况下,起先科学家们发明制造出来的大型计算器是没办法使用,并且造价也是非常之昂贵。
综上种种原因所述,便携计算器的出世便是显得很理所当然,而且其受欢迎程度也是那么的理所当然。
1.2课题研究的背景
最早的中国人绝大多数采用一种叫“筹策”的计算工具来进行各种数数和计算,又有人将之称为算筹。
算筹大多数是使用竹子、木头等作为材料做成,一般地都是270枚作为1束。
而当今社会,算筹几乎绝迹,可与算筹同一时期的另一种计算工具“珠算盘”却是一直在使用。
随着社会的发展,到了十七世纪初期,当“算筹”和“珠算盘”都不能满足学者们需求之时,英国的著名数学家纳皮尔以及牧师奥却德分别发明了“纳皮尔算筹”和“对数计算尺”来适应社会需求。
这些计算工具为现如今使用最为广泛的便携式计算器的发展打下了坚实的基础。
在法国伟大的帕斯卡科学家的不断试验中,世界上第一部机械式的计算器就在1642年被发明出来,这部机械式计算器也是引用了算盘的原理。
据了解对于这部计算器的使用,人们可以向拨电话一样的输入数据,而在另一个窗口中计算结果会自动出现。
很明显对于之前的“算筹”和“珠算盘”,这样的机械式计算器已经是非常的先进。
然而这部计算器的局限性在于它只能用于加减的计算。
这对于普通人来说或许就是满足需求的高科技,然而对于从事研究研发的知识分子而言还是远远不够。
在需求的膨胀下,继帕斯卡之后,于1694年布莱尼兹在德国将之改进成可以进行加减、乘、除四则运算的计算器。
三次工业革命的推动下,科学家们不断的研究创新与不断的发明与改进中,终于到1950年末,电子计算器诞生了。
电子计算器是在电子计算机的基础上发展而来的,起初的电子计算器体积很是庞大,操作很是复杂,并且所耗器材也是繁多。
并不是每一个人都可以使用的。
更加不能随身携带。
近年来,随着微型计算机技术、电力电子技术、微电子技术、传感器技术等各种技术的发展,电子计算器也是以新的面貌吸引大众的眼球。
当今的电子计算器体积小可随身携带、价格低、操作简单、计算准确度高。
要按照这种标准将电子计算器一直发展下去。
对于算盘和计算器,人们更是倾向于后者。
因为人们肯定了计算器的操作方便与计算精确。
计算器可以帮助人们从事各种很复杂的计算,极大的节约了时间,减少了错误,给生产生活都带来极大的便利。
在一个面向现代化的社会生存,速度与准确度非常重要。
因此,也是越来越受大众的欢迎了。
本课题就是设计一个AT89C51单片机控制的电子计算器,以单片机为主控制器,扩展必要的外部电路,设计制作一个电子计算器。
研究和设计出基于AT89C51单片机控制的计算器有一定的可行性和实用价值,设计出满足市场和社会需求相应的装置。
1.3课题研究的目的和意义
计算器广泛应用于生产生活等各个方面,于生活的各个角落,都如影随形。
目前市场上的计算器已经基本能够满足各种生活生产需求,但这还不够,要在发展中进步,于进步中再发展,研究出操作更加简单,计算结果更加精确的新型计算器来适应不断发展的大社会。
通过对本课题的研究,将四年中所学的知识融会贯通,同时温故而知新,能对电子计算器的设计有一个深刻的了解,在原来的基础上不断创新,增加扩展功能,推动对电子设计过程的熟悉,将电子方面的知识加以综合,为能够以后工作岗位上遇到的各种实际问题的处理打下扎实的基础。
这次研究和设计出基于51单片机控制的计算器,需要对单片机熟练的掌握,对单片机的原理、编程知识有一个深度掌握。
通过设计加深对单片机的认识和兴趣的同时,也初步掌握有关于计算器的硬软件设计、编写、调试和仿真,充分提高动手能力和排除故障的能力,发挥自己的动手和创新能力。
2方案的选择和论证
2.1单片机型号的选择
近年来,集成技术发展的速度令人咋舌。
品种繁多,且集成度高,不仅仅的,外部扩展功能也是越来越强悍的。
以MCS-51系列的8051单片机为代表,集低价、量轻、功能强等众多优点于一身,本次的设计就选用8051单片机中的AT89C51单片机作为主控芯片,AT89C51单片机是科研最常用的单片机之一,针对数字电子计算器的设计,选择此芯片最佳。
2.2键盘的选择
键盘是微型计算机最常用的输入设备之一,也是现实中最主要的输入设备。
用户可以通过键盘向各种设备中输入指令、地址、数据。
键盘的广泛应用和对健康生活的追求,人们对键盘的要求越来越高。
携带是否方便、手感是否舒适,这些都是用户选择键盘首先考虑的内容。
键盘多种多样、种数极多,就连分类方法也是很复杂。
从编码的角度来分,通常熟悉的编码键盘和非编码键盘就是从能否编码的监督区分的,一个按键直接使用可称为独立式键盘,排成矩阵形式使用的情况下又被成为行列式键盘。
一般在做基于单片机的电子产品设计中采用非编码键盘的居多。
非编码键盘也是集结构简单、使用灵活等众优点于一身的。
设计中采用的4*4矩阵键盘就是非编码键盘的一员,矩阵键盘拥有所有非编码键盘的优点。
2.3显示器的选择
如果说键盘是最常用最普遍的输入设备,那最常用的输出设备就非显示器莫属了。
生活中最常见的荧屏显示主要就是LED和LCD两种。
LCD后来才有的,性能各方面优于LED这是毫无疑问的。
为了更方便的显示运行结果,本次设计中的显示设备计划选用LCD1602,较LED而言,这种液晶显示器不仅显示清晰,而且反应快,用于数字计算器的设计最为合适了。
3数字计算器的设计原理和方法
3.1总体设计概述
为了实现对此数字计算器的设计,本系统选用8051单片机为主控机。
再在单片机的外围添加各种外围设备来帮助实现计算器的运行。
具体设计思路如下:
a)尽管是简单的计算器的设计,但是为了让显示更加清晰,看起来更加舒服,采用LCD1602液晶比LED显示数据和结果更加人性化。
b)键盘包除了0-9等数字键、还有有加(+)、减(-)、乘(*)、除(/)四个符号键、清除键(AC)和“=”键,故共需要16个按键即可,设计中采用4*4矩阵键盘最是合适。
c)执行程序:
先把电源通电,通电成功是显示器亮,但并不现实任何字符。
等待键盘向单片机输入数据、指令,当输入的是0~9数字时,显示器显示所输入的数字;当输入+、-、*、/运算符时,不仅显示器LCD会显示运算符,在单片机内部同时还会执行数值的转换和存储工作,并等待再次输入数值;按下“=”键后就能够在显示器LCD上读出之前的运算结果和等号。
d)错误提示:
当输入的数值位数或者计算完的结果的数值位数超出计算器的显示范围时,在LCD上就会提示溢出。
显示一串凌乱的数字,是错误的结果;
当输入的除数为0时,在LCD显示器上将会提示错误,显示出等号和除号;
不输入加数时,按等号键时可以显示被加数;不输入除数就直接按等号键时,不能显示被除数,显示乱码;
若是软件设计部分也就是单片机的执行程序出现问题,也是会在LCD上显示相应的提示。
3.2系统总体设计框图
如图3-1所示,计算器的设计主要由控制器,输入模块,输出模块等组成。
图3-1系统总体设计框图
3.3系统硬件电路设计
硬件系统,顾名思义就是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机是最简单的计算机,在实际应用中,构成一个真正的单片机应用系统,必须要单片机辅助于各种外部扩展设备和电路,因为凭借一个单片机一般很难与被控对象直接进行电气连接。
本设计计划选用MCS-51系列中的AT89C51单片机作为电子计算器的主控单元。
按键部分:
采用4*4键盘。
显示部分:
采用LCD液晶静态显示。
电子计算器设计的硬件电路原理图见附录3。
3.3.1AT89C51单片机简介
AT89C51是ATMEL公司生产的一种单片机。
采用了公司的高密度存储技术生产,具有低电压、高性能与非易失性等优点。
片内有只读程序存储器(ROM)以及随机存取数据存储器两种。
单片机内部置有通用的中央处理器(CPU)(8位)和闪存Flash。
AT89C51单片机的功能非常强大,在许多场合都被采用,因为它的性价比很高,所以在各个控制领域都能见到,尤其可体现在电子研究领域。
AT89C51单片机价格低、性能高令之受到极大的欢迎。
AT89C51单片机采用40引脚双列直插封装(DIP)方式。
AT89C51芯片引脚图如图3-2所示。
图3-2AT89C51芯片引脚图
a)主要性能参数
AT89C51为MCS-51一员,完全兼容MCS-51产品指令系统;
一个8位的CPU;
4Kbytes可反复擦写ROM;
Flash闪速存储器;
0HZ-24MHZ的全静态操作;
128*8bytes的内部RAM;
32个可编程输入/输出接口线(P0~P3共四个8位并行I/O端口);
两个定时/计数器,均是16位的;
中断源6个;
一个全双工串行口;
可编程串行UART通道;
三级加密程序存储器;
低功耗CMOS空闲;
特有的掉电模式。
b)功能特性概述
AT89C51提供的标准功能如下:
4K字节的Flash闪速存储器;128字节内部RAM;两个16位定时/计数器;32个I/O线;全双工串行通信接口一个;片内振荡器;5个中断源之中含两级嵌套的中断结构;时钟电路;包括0HZ及以上的静态逻辑操作;两种软件可选其一工作的节电工作模式;空闲方式停止CPU工作;掉电方式保存RAM中的内容。
AT89C51单片机的结构框图如图3-3所示。
图3-3AT89C51单片机结构框图
c)引脚定义及功能
本设计选用AT89C51高性能单片机,将会用到P0口、P1口、部分P2口、XTAL1、XTAL2、RST以及\E\A\口,当然还有电源接口。
因为引脚数量少的缘故,所以会有不少的引脚有两种使用功能。
这些引脚接下来一一介绍。
主电源引脚Vss和Vcc:
Vss(20脚):
接地。
Vcc(40脚):
接+5V的主电源。
输入/输出引脚P0、P1、P2和P3:
P0.0~P0.7(32~39脚):
P0口一般地作为8位双向的I/O端口使用,在其他情况下也可以作为数据/地址总线使用。
在CPU访问片外存储器之时,P0口分时运行,先作低8位地址总线,后作双向数据总线,这时就不能再将P0口视为一般的I/O端口了。
P0能驱动8个LSTTL输入端。
P1.0~P1.7(1~8脚):
P1口就作为一般的8位准双向I/O端口使用。
在对EPROM编程时,它输入低八位地址。
在验证程序时与在EPROM编程时相同。
P1只能驱动3个LSTTL输入端。
P2.0~P2.7(21~28脚):
不同于P1的地方是,它在对EPROM编程与在验证程序时,它是输出高8位地址的,这与P1端口恰恰是完全相反的。
而相同的是,P2口的引脚也只能够驱动3个LSTTL输入端。
P3.0~P3.7(10~17脚):
P3口的8个引脚除了可以作为I/O端口使用外,这8个引脚全都具备专门的第二功能,见表3-1。
表3-1P3各口线的第二功能表
口线
第二功能
P3.0
RXD(串行口的输入端)
P3.1
TXD(串行口的输出端)
P3.2
\I\N\T\0\(外部中断输入口)
P3.3
\I\N\T\1\(外部中断输出口)
P3.4
T0(可完成定时器0的外部输入)
P3.5
T1(可完成定时器1的外部输入)
P3.6
\W\R\(片外数据存储器的写选通控制输出)
P3.7
\R\D\(片外数据存储器的读选通控制输出)
控制信号引脚RST/VPD和\E\A\/VPP
RST/Vpd(9脚):
此引脚为复位信号输入引脚也可作备用电源输入引脚使用。
若是RST引脚通过22uF电容接到Vcc上并且同时通过10kΩ下拉电阻接地,就可获得上电自动复位的结果。
除此之外,该引荐还具有掉电保护功能,此时只要将Vpd接+5V备用电源,一旦芯片在使用Vcc中电压突然下降或者断电(成掉电或失电),能保护片内RAM中信息不回丢失,使得恢复电源供电后能够继续正常的运行。
\E\A\/VPP(31脚):
当向\E\A\端口输入高电平时,CPU就执行程序,在低4KB地址范围内是访问片内程序存储器。
但是当访问范围超出4KB地址时,将会自动跳转去访问片外程序存储器。
若是向\E\A\输入低电平的话,CPU就仅访问片外程序存储器。
由此可见8031的\E\A\端应接上低电平。
此外,该引脚又是编程电压输入信号的引脚。
时钟电路引脚XTAL1和XTAL2:
XTAL1(19脚):
接外部晶体的一端。
在采用外部时钟时,该引脚必须要与地相连接。
XTAL2(18脚):
与外部晶体的另一端相连接。
采用外部时钟电路的情况,该引脚则应当接外部时钟的输入端口。
d)数据传送结构
在整个微机系统中,CPU通过外部总线与存储器和输入/输出接口电路交换信息,输入输出接口则通过各个端口与外围设备。
其数据传送结构如图3-4所示,现在分别加以说明:
图3-48051数据传送结构图
e)中央处理器
中央处理器(CPU)是整个单片机的核心部件,是计算机的控制指挥中心。
与微型计算机类似,AT89C51单片机内部CPU由算术/逻辑运算器(ALU)和控制器两部分组成。
算术运算/逻辑运算单元为核心的运算器是由暂存器、累加器寄存器B以及程序状态寄存器PSW等几部分组成的。
主要工作是完成包括算术运算、逻辑运算等各种运算和数据传送等操作,操作结果就保存到PSW中即可。
而控制器是由程序计数器、指令译码器、堆栈指针以及数据指针等控制电路组合而成,主要是用于指挥和协调单片机的工作。
CPU的操作过程如下:
按程序计数器PC的内容,将指定的存储地址放在地址总线上;
通过数据总线从存储器中取出指令,并且对指令译码;
按指令的地址码,取出指令所需的操作数;
执行指令所规定的操作数;
提供表示状态的标志信号、控制信号和定时信号,以供微机系统使用;
有实时中断处理的能力。
f)程序存储器(ROM)
AT89C51程序存储器ROM主要用于存放程序、表格或者一些常数。
8051片内有4KB的掩膜ROM,片外用16位地址线最多可以扩展64KBROM,片内与片外的ROM是统一编址的。
AT89C51的\E\A\引脚为选择内部或者外部ROM控制端,当\E\A\端接高电平,80C51的程序计数器PC在0000H~0FFFH地址范围内(前4KB地址)是执行片内ROM中的程序。
当PC值超过0FFFH时,PC将自动跳转去执行片1000H~FFFFH地址范围ROM中的程序。
当\E\A\端保持低电平时,8051的所有取指令操作均在片外程序存储器中进行,这时片外存储器可以从0000H开始编址。
g)数据存储器(RAM)
AT89C51片内有256字节RAM,片外最多可扩充64K字节RAM,构成两个地址空间。
就片外数据存储器可采用的寻址方式是间接寻址方式,R0、R1和DPTR都可以作为间址寄存器使用。
前者是8位地址指针,寻址范围仅为256个字节,而DPTR是16位地址指针,寻址范围可达64K字节。
片内数据存储器采用8位地址,最大可寻址256个单元。
片内低128字节的地址区域设置了片内RAM,对其访问可采用直接寻址和间接寻址方式。
高128字节地址区域RAM(即80H~FFH)为专用寄存器区,只能采用寄存器间接寻址方式。
需要注意的是,该区域的地址范围与特殊功能寄存器区域相重叠,区别在于访问特殊功能寄存器区是采用直接寻址方式。
如表3-2所示为工作寄存器地址表。
表3-2工作寄存器地址表
组
0
1
2
3
RS1
RS0
0
0
0
1
1
0
1
1
R0
00H
08H
10H
18H
R1
01H
09H
11H
19H
R2
02H
0AH
12H
1AH
R3
03H
0BH
13H
1BH
R4
04H
0CH
14H
1CH
R5
05H
0DH
15H
1DH
续表3-2
R6
06H
0EH
16H
1EH
R7
07H
0FH
17H
1FH
h)定时/计数器
16位的定时器/计数器简言之就是一个加一的加法计数器,既能够做定时器用,又可以做计数器使用。
当定时/计数器设置为定时器使用时,振荡器每隔12分频信号产生时计数器便会自动加上1,也就是一个机器周期,就相当于计数器可以自动加1,到计满溢出才会停止加1。
由于机器周期是定值精度高,因此计数值乘机器周期就是定时,如晶振为12MHz,则计数值100相当于定时100us。
当定时器/计数器设置为计数的工作方式时,加法计数器的初始值可以是由程序的确定而设定的,设置的初值不同,那么计数值或定时时间就不相同。
AT89C51单片机定时/计数器的结构图如图3-5所示。
图3-5AT89C51单片机定时/计数器的结构图
i)并行输入/输出(I/O)口
AT89C51共有4组8位并行I/O双向端口,称为P0、P1、P2和P3口,每个端口都各有8条I/O端口线,并且每条端口线都可以独立的用作输入或输出。
每个端口都包含一个锁存器、一个输出驱动器和输入缓冲器。
P1口至P3口的输出极接有内部上拉电阻,它们每一位都可驱动4个TTL门电路。
并行输入/输出(I/O)双向端口用于在外设之间传输数据的场合居多。
j)全双工串行口
全双工串行通信口就是数据可以在发送的同时进行接受的传输工作。
该串行口首先可以用作异步通信的信号收发器(UART)进行数据的串化、反串化和格式信息的插入、滤除,其次也可以当同步移位器使用。
作为同步移位器使用时,一次性发送的数据量大。
传输方向如图3-6所示。
图3-6全双工传输方向
k)中断系统
AT89C51具备较为完善的中断功能。
中断处理过程一般首先是中断响应,即CPU对中断源的中断请求,而CPU并不是时刻都会响应发来的中断请求,而是满足条件的才会响应请求。
其次是中断处理,就是处理中断源传送过来的中断请求,最后还有一个恢复现场的步