简易计算器的制作.docx
- 文档编号:17215222
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:54
- 大小:866.42KB
简易计算器的制作.docx
《简易计算器的制作.docx》由会员分享,可在线阅读,更多相关《简易计算器的制作.docx(54页珍藏版)》请在冰点文库上搜索。
简易计算器的制作
存档编号
XX水利水电大学
毕业设计
题目简易计算器的制作
学院信息工程学院
专业通信工程
姓名
学号
指导教师XX
完成时间2014.5.14
教务处制
独立完成与诚信声明
本人郑重声明:
所提交的毕业设计(论文)是本人在指导教师的指导下,独立工作所取得的成果并撰写完成的,郑重确认没有剽窃、抄袭等违反学术道德、学术规范的侵权行为。
文中除已经标注引用的内容外,不包含其他人或集体已经发表或撰写过的研究成果。
对本文的研究做出重要贡献的个人和集体,均已在文中作了明确的说明并表示了谢意。
本人完全意识到本声明的法律后果由本人承担。
毕业设计(论文)作者签名:
指导导师签名:
签字日期:
签字日期:
毕业设计(论文)版权使用授权书
本人完全了解华北水利水电大学有关保管、使用毕业设计(论文)的规定。
特授权华北水利水电大学可以将毕业设计(论文)的全部或部分内容公开和编入有关数据库提供检索,并采用影印、缩印或扫描等复制手段复制、保存、汇编以供查阅和借阅。
同意学校向国家有关部门或机构送交毕业设计(论文)原件或复印件和电子文档(涉密的成果在解密后应遵守此规定)。
毕业设计(论文)作者签名:
导师签名:
签字日期:
签字日期:
目录
摘要1
Abstract2
第一章绪论3
1.1开发背景3
1.2设计目的4
第二章方案论证与设计5
2.1设计指标5
2.2方案论证与设计5
第三章硬件模块介绍8
3.1主控及运算模块8
3.2显示模块13
3.3输入模块16
第四章软件设计18
4.1主程序的设计18
4.2键盘扫描的程序设计19
4.3显示模块程序设计21
4.4运算模块程序设计23
第五章仿真及调试24
结束语25
致谢26
参考文献27
附录一:
硬件实物图28
附录二:
系统程序29
附录三:
任务书40
附录四:
开题报告42
附录五:
外文原文与外文译文47
基于AT89C51单片机的简易计算器的设计
摘要
计算器在人们的日常生活中是较为常见的电子产品之一。
初期的计算器仅仅能实现简单的加减乘除运算,而现在人们所广泛使用的科学计算器功能已不再停留于此,除了加减乘除运算外,它还能进行乘方,开方,指数,对数,三角函数,反三角函数等的存储和运算。
而且计算器的种类和模式也在逐渐多样化,如使用太阳能电池的计算器,使用ASIC制作的计算器,使用纯软件设计的计算器和被集成到手机、平板电脑等电子产品中的计算器。
可以说计算器还正在发展之中而且还将有很大的发展空间,未来必将出现功能更加强大的计算器。
基于这样的理念,本设计以AT89C51单片机为核心,以软硬件结合的方式设计了一个简易计算器。
该计算器以4*4矩阵键盘为输入方式,可以进行4位带符号数的加减乘除运算,并在LCD1602液晶显示器上显示操作过程。
该论文详细介绍了整个系统的硬件组成结构、工作原理和软件设计思想与流程。
关键词:
计算器AT89C51LCD1602矩阵键盘
SimplecalculatordesignedbasedonAT89C51
Abstract
ThecalculatorinPeople'sDailylifeisoneofthemostcommonelectronicproducts.Earlycomputingcalculatorcanonlyimplementsimpleaddition,subtraction,multiplication,anddivision,butnowthescientificcalculatorwhichwidelyusedbypeople’sfunctionsarenolongerstay,operationbesidesaddition,subtraction,multiplication,anddivision,itcanalsopower,prescribe,index,logarithmic,trigonometricfunction,inversetrigonometricfunctionsuchasstorageandcomputation.Andthetypesofthecalculatorandpatternhasalsobeengraduallydiversified,suchasusingsolarcalculator,usingASICproductioncalculator,usingpuresoftwaredesignofthecalculatorandbeintegratedintomobilephones,tablets,andotherelectronicproductsinthecalculator.Wecansaythatcalculatorsareunderdevelopmentandwillalsohaveverybigdevelopmentspace,thefuturewillappearmorepowerfulcalculators.Basedonthisidea,IdesignasimplecalculatorwhichuseAT89C51single-chipmicrocomputerasthecore,andusethewaythatcombinethehardwareandsoftware.Thecalculatoruse4*4matrixkeyboardasinputmode,itcancarryoutfoursignedseveraloperationsofaddition,subtraction,multiplication,anddivision,anditdisplayoperationprocessontheLCD1602.Thepaperintroducesindetailthesystemstructure,workingprincipleofthehardwareandthesoftwaredesignideaandprocess.
keywords:
calculatorAT89C51LCD1602matrixkeyboard
第一章绪论
1.1开发背景
计算器是日常生活中比较常见的电子产品之一,它已在数十年间遍布千家万户。
计算器(calculator;counter)一般是指“电子计算器”,该名词由日文传入中国。
它是能进行数学运算的手持机器,拥有集成电路芯片,但结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑),且功能也较弱,但较为方便与廉价,可广泛运用于商业交易中,是必备的办公用品之一。
除显示计算结果外,还常有溢出指示、错误指示等。
对于计算器的百年历史,1946年2月15日,在美国宾夕法尼亚大学,世界上第一台电子计算器ENIAC正式投入了运行。
在隆重的揭幕仪式上,ENIAC表演了它的“绝招”:
在1秒钟内进行5000次加法运算;在1秒钟内进行500次乘法运算。
这比当时最快的电器计算器的运算速度要快1000多倍。
全场起立欢呼,欢呼科学技术进入了一个新的历史发展时期。
电子计算器不仅是一种工具,它与其它的工具都不相同:
电子计算器是人脑的一个侧面的延伸。
因为电子计算器不仅具有非凡的计算能力,速度之快令人望尘莫及,而且还能够仿真人的某些思维功能,按照一定的规则进行逻辑判和逻辑推理,代替人的部分脑力劳动。
1976年,数学家凭借电子计算器去证明四色定理,“依靠机器完成了人没有能够完成的事情”,轰动了整个国际数学界。
随着社会的发展和科学技术的进步,电子产品变得越来越先进,功能变得越来越强大,集成化程度也变得越来越高,其更新速度令人吃惊。
对于计算器人们也在不断地对它进行改进,然而技术的进步是无止境的,如何让计算器技术更加的成熟,充分利用现有的软件和硬件条件,制作出更加好用的计算器,让我们更方便的使用它,让它更好的为我们的生活服务,始终是当今电子领域的重要研究课题。
而另一方面,近年来,单片机以其体积小、价格廉、面向控制等诸多优点,在各种工业控制、仪器仪表、产品、设备的自动化、智能化方面获得了极为广泛的应用。
与此同时,单片机系统的可靠性成为人们越来越关注的重要课题。
影响系统可靠性的因素是多方面的,如构成系统的各种元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。
其中抗干扰性能是系统可靠性的重要指标。
本设计采用AT89C51芯片和LCD1602液晶显示器,实现了利用单片机来设计一个简易计算器的目的。
该计算器允许对四位输入数据进行带符号加减乘除运算,用C语言编写程序驱动整个系统的运行,便于移植和升级。
如果所要设计的对象是更为复杂的计算器系统,其实际原理和实现方法与本设计基本相同。
本设计关键在于必须非常熟悉单片机的原理与结构,并能熟练的运用51C语言来编写程序,同时还要对整个系统的设计流程有很好的把握,从而将单片机和其他模块完整的衔接。
在现今的日常生活中,计算器毫无疑问是人们的最重要工具之一,它的身影遍布在社会的各个角落,例如商店,学校等等。
所以设计一款简单但却极其实用的计算器具有很大的实际意义,而本文中利用单片机和LCD1602液晶结合设计的计算器充分利用了以上所讲的单片机的诸多优点,具有很好的实用价值。
1.2设计目的
本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。
通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。
第二章
方案论证与设计
2.1设计指标
本次设计的简易计算器的基本性能如下:
1、能够进行4位整数的加减乘除运算(除法的结果中可以有小数)。
2、能够将计算结果输出到LCD1602液晶显示屏中以便于观察。
3、能够实现清除数据的功能。
4、能够进行错误提示(比如当输入数据除数为0时会在LCD1602上显示error)。
2.2方案论证与设计
根据功能和以上对设计指标的描述,本系统采用AT89C51单片机为控制芯片,LCD1602为显示芯片,辅以其他电路所需基本器件,完成对简易计算器的设计。
具体的设计考虑如下:
1、由于本次所要设计的是一个简易计算器,要求能够进行4位整数的加减乘除运算,功能较为简单,所编写程序不会太长,故使用AT89C51单片机即可满足需求。
2、由于LCD1602液晶显示器相比于8段数码管而言,拥有更大的显示量,更好的显示效果,更全面的显示字符类型,因此这里选用LCD1602液晶显示器作为显示模块。
3、根据计算器的功能要求,键盘包括数字键(0-9)、符号键(+、—、*、÷)、清除键(CE)和等号键,故需要16个按键(4*4键盘)。
系统模块图如图2.1所示:
图2.1系统模块图
为了更好的实现系统的功能,硬件电路的设计应该遵循以下原则:
1、优化硬件电路
采用软件设计与硬件设计相结合的方法;尽管采用软件来实现硬件系统的功能时,也许响应时间会比单纯使用硬件时长,而且还要占用微处理器(MCU)的时间;但是,用软件实现硬件的功能可以简化硬件结构,提高电路的可靠性。
所以,在设计本系统得时候,在满足可靠性和实时性的前提下,尽可能的通过软件来实现硬件功能。
2、可靠性及抗干扰设计
根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长。
而且,所用芯片数量越少,地址和数据总线在电路板上受干扰的可能性也就越小。
因此,系统的设计思想是在满足功能的情况下力争使用较少数量的芯片。
3、灵活的功能扩展
功能扩展是否灵活是衡量一个系统优劣的重要指标。
一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善以及进行功能升级。
进行功能扩展时,应该在原有设计的基础上,通过修改软件程序和少量硬件完成。
对于本系统而言,就是要求在系统硬件不变的情况下,能够通过修改软件程序,完成功能的升级和扩展。
而在软件方面根据设计需要我们可以采用自上而下的程序设计方法,这种方法先从主程序开始设计,之后再编制各从属程序和子程序,层层细化逐步求精,最后完成一个复杂程序的设计。
这种设计方法比较符合人们的日常思维,但是缺点是一级的程序错误将会对整个程序产生影响。
计算器的程序流程图如图2.2所示:
图2.2程序流程图
第三章
硬件模块介绍
3
3.1主控及运算模块
AT89C51单片机是将微处理器(CPU),数据存储器(RAM)、程序存储器(4KBFlashROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)这些一台计算机所需要的基本功能部件集成在了一块芯片上,它靠程序运行,并可以修改程序以通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过单片机及其程序可以实现高智能,高效率,以及高可靠性!
所以设计采用单片机作为该计算器的主控及运算模块,可以很好的实现控制和运算功能。
AT89C51单片机引脚图如图3.1,其实际外观图如图3.2:
图3.1AT89C51单片机引脚图
图3.2AT89C51单片机实际外观图
其各引脚功能如下:
一、电源引脚
1、Vcc:
正电源脚,接+5V电源。
2、GND:
接地端。
二、外接晶体引脚
外接晶体引脚图如图3.3所示:
图3.3外接晶体管引脚
1、XTAL1:
片内振荡器反相放大器和时钟发生器电路的输入端。
使用片内振荡器时,该引脚连接外部石英晶体和微调电容。
2、XTAL2:
片内振荡器反相放大器和时钟发生器电路的输出端,当使用片内振荡器时,该引脚连接外部石英晶体和微调电容。
当采用外部时钟源时,引脚XTAL1接收外部时钟振荡器的信号,XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,比如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择,而电容则取30PF左右。
型号同样是AT89C51的芯片,在其后面还会有频率编号,有12,16,20,24MHz可选,在购买和选用时需注意。
比如AT89C5124PC就是最高振荡频率24MHz,40P封装的普通商用芯片。
三、控制引脚
1、RST
复位信号输入端,高电平有效。
当单片机运行时,在此引脚加上持续时间大于2个机器周期(24个时钟振荡周期)的高电平时,就可以对单片机完成复位操作且只要这个脚保持高电平,51芯片便循环复位。
在单片机复位后P0-P3口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当RST脚电平由高变低时,单片机开始从ROM的0000H处开始运行程序。
在单片机正常工作时,此引脚应为<=0.5V的低电平。
比较常用的复位电路如图3.4所示。
图3.4复位电路图
复位操作并不会对内部RAM有影响。
当AT89C51通电后,时钟电路开始工作,在RST引脚上出现24个时钟周期以上的高电平,系统便初始复位,也就是说单片机开始重新执行程序代码。
AT89C51的复位方式可以是自动复位,也同样可以是手动复位,如图3.5所示。
图3.5复位方式
2、EA/Vpp
EA为外部程序存储器访问控制端。
当EA引脚为高电平时,单片机读片内程序存储器,但在PC值超过0FFFH时,将自动转向访问外部程序存储器中的程序。
当EA引脚为低电平时,对程序存储器的读操作只限定在外部程序存储器,地址为0000H~FFFFH,片内的4KBFlash程序存储器不起作用。
Vpp为该引脚的第二功能,为编程电压输入端。
对于89C51,在片内Flash固化编程时,加在Vpp引脚的编程电压为+5V或+12V。
在编程校验时,该引脚接Vcc。
3、ALE/PROG
ALE为低8位地址锁存允许信号。
在系统扩展时ALE的负跳沿将P0口发出的低8位地址锁存在外接的地址锁存器中,然后P0口再作为数据端口,以实现P0口的低8位地址和数据的分时传送。
PROG为该引脚的第二功能,在对片内Flash存储器编程时,该引脚作为编程脉冲输入端。
4、PSEN
片外程序存储器的读选通信号。
在单片机读外部程序存储器时,此引脚输出脉冲的负跳沿作为读外部程序存储器的选通信号。
此引脚接外部程序存储器的OE端;在访问外部RAM时,PSEN信号无效。
四、I/O引脚
1)
P0口:
8位,漏极开路的双向I/O口。
当89C51扩展外部存储器及I/O接口芯片时,P0口作为地址总线(低8位)及数据总线的分时复用端口。
P0口也可作为通用的I/O口使用,但需加上拉电阻,这时为准双向口。
当作为普通的I/O口输入时,应先向端口的输出锁存器写入1。
P0口可驱动8个LS型的TTL负载。
2)P1口:
8位,准双向I/O口,具有内部上拉电阻。
P1口是专为用户使用的准双向I/O口,当作为普通的I/O口输入时,应先向端口的输出锁存器写入1,P1口可驱动4个LS型TTL负载。
3)P2口:
8位,准双向I/O口,具有内部上拉电阻。
当89C51扩展外部存储器及I/O口时,P2口可输出高8位地址。
P2口也可作为普通的I/O口使用。
当作为普通的I/O口输入时,应先向端口的输出锁存器写入1。
P2口可驱动4个LS型TTL负载。
4)P3口:
8位,准双向I/O口,具有内部上拉电阻。
P3口可作为通用I/O口使用,当作为通用的I/O口输入时应先向端口的输出锁存器写入1。
P2口可驱动4个LS型TTL负载。
P3口还可提供第二功能。
其第二功能定义如下表:
表3.1P3口第二功能定义
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外部中断0)
P3.3
/INT1(外部中断1)
P3.4
T0(记时器0外部输入)
P3.5
T1(记时器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
3.2
显示模块
在本设计中使用LCD1602液晶显示器作为显示模块。
其实际外观如图3.6所示:
图3.6LCD1602实际外观图
LCD1602模块内部自带字符发生存储器(CGROM),字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是(41H),显示时模块把代码41H发给液晶模块,我们就能在液晶上看到字母“A”。
1602液晶模块内部的控制器共有11条控制指令,丰富的指令可以完成液晶的时序控制、工作方式式设置和数据显示等。
采用的LCD1602液晶模块是标准16针插座,接口电路如图3.7所示:
图3.7LCD1602接口接口电路
LCD1602的引脚功能和指令分别如表3.1和表3.2所示:
表3.2LCD1602引脚功能
第1脚
VSS为地电源
第2脚
VDD接5V正电源
第3脚
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
实际电路中采用2K电阻到地,比较理想。
第4脚
RS为寄存器选择,高电平选择数据寄存器、低电平选择指令寄存器。
第5脚
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时(00)可以写入指令或者显示地址;
当RS为低电平RW为高电平时(01)可以读入忙信号;
当RS为高电平RW为低电平时(10)可以写入数据。
第6脚
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚
D0~D7为8位双向数据线。
第15~16脚
背光阳极和背光阴极。
表3.3LCD1602指令表
指令1
清显示指令码01H,光标复位到地址00H位置;
指令2
光标复位指令码02H,光标返回到地址00H位置;
指令3
光标和显示模式设置
I/D位→光标移动方向,高电平右移,低电平左移;
S位→屏幕上所有文字是否左移或者右移,高电平有效,低电平无效;
指令4
显示开关控制
D位→控制整体显示的开与关,高电平表示开显示,低电平表示关显示;
C位→控制光标的开与关,高电平表示有光标,低电平表示无光标;
B位→控制光标是否闪烁,高电平闪烁,低电平不闪烁;
指令5
光标或显示移位
S/C位→高电平时移动显示的文字,低电平时移动光标
指令6
功能命令设置
DL位---高电平时为4位数据总线,低电平时为8位总线;
N—位低电平时为单行显示,高电平时为双行显示;
F—位低电平时显示5x7的点阵字符,高电平时为5x10的点阵字符;
指令7
字符发生器RAM地址设置
指令8
DDRAM地址设置
指令9
读忙信号和光标地址
BF位→为忙标志位,高电平表示忙,此时模块不能接收命令或者数据
指令10
写数据
指令11
读数据
LCD的特点:
1、低压微功耗;
2、平板型结构;
3、被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳);
4、显示信息量大(因为像素可以做得很小);
5、易于彩色化(在色谱上可以非常准确的复现);
6、无电磁辐射(对人体安全,利于信息保密);
7、长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换)。
3.3输入模块
计算器输入数字和其他功能按键要用到很多按键,假如采用独立按键的方式,这种情况下,编程会比较简单,但却会占用大量的I/O口资源,所以在很多情况下都不采用这种方式。
为此,我们引入矩阵键盘,即采用四条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每一个交叉点上设置一个按键。
这样键盘上按键的个数就为4×4个。
这种行列式的键盘结构能够有效地提高单片机系统中I/O口的利用率。
矩阵键盘的按键设在行列线交点上,键盘的行线或列线接上正电。
假如键盘的行线接上正电,则无按键按下时,行线处于高电平状态;当有按键按下时,行线电平状态将由与此行线相连的列线决定。
列线的电平如果为低,则行线电平为低;列线电平如果为高,则行线的电平也为高,这一点是识别行列式键盘按键是否按下的关键所在。
由于行列式键盘中行列线为多键共用,各按键均影响该键所在行和列的电平,因此各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并做适当的处理,才能确定闭合键的位置。
本设计中所用到的键盘电路如图3.8所示:
图3.8键盘电路
综合以上模块的设计介绍,可以确定系统硬件的设计。
其设计图如图3.9所示:
图3.9系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 计算器 制作