毕业设计简易加减乘除计算器.docx
- 文档编号:26612455
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:36
- 大小:526.26KB
毕业设计简易加减乘除计算器.docx
《毕业设计简易加减乘除计算器.docx》由会员分享,可在线阅读,更多相关《毕业设计简易加减乘除计算器.docx(36页珍藏版)》请在冰豆网上搜索。
毕业设计简易加减乘除计算器
毕业设计
题目
简易加减乘除计算器
系别
专业
班级
姓名
学号
指导教师
日期
设计任务书
设计题目:
简易加减乘除计算器
设计要求:
1.根据所学内容运用编程做一个简易加减乘除计算器,实现加、减、乘、除、等以及清零的功能。
2.设置一组数码管,使其能够显示程序运行,按键动作的内容。
3.设置一组按键,使其键依次对应0——9、“+”、“-”、“*”、“/”、“=”和清除键。
4.可以进行小于255的数的加减乘除运算,并可连续运算。
当键入值大于255时,将自动清零,可重新输入。
设计进度要求:
第一周:
确定题目,寻找单片机和计算器设计的相关资料;
第二周:
读懂资料,有初步的设计思路;
第三周:
绘制硬件电路图;
第三周:
设计软件框图;
第四周:
相应软件设计(程序设计);
第五周:
进行程序调试并且修改;
第六周:
写毕业设计论文;
第七周:
修改并提交毕业设计;
第八周:
准备论文答辩;
指导教师(签名):
摘 要
在很多领域的数据处理中要用到数学运算,作为计算机自动处理系统更显得重要。
此项目设计以单片机为核心部件的计算器,采用4*4矩阵式键盘,16个键依次对应0——9、“+”、“-”、“*”、“/”、“=”和清除键。
使用单片机最小使用系统1模块,简单方便。
采用静态显示,显示器由5个共阴极数码管组成。
输入只有两个信号,它们是串行数据线DIN和移位信号CLK。
5个串/并行移位寄存器芯片74LS164首尾相连。
每片的并行输出作为LED数码管的段码。
本计算器系统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。
关键词:
单片机,计算器,键盘,静态显示
前 言
随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。
在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS–51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、NEC、Atmel、AMD、华邦等,这些公司都在保持和80C51单片机兼容的基础上改善了80C51的许多特性。
这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。
80C51单片机已成为单片机发展的主流。
专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。
本设计采用的是ATMEL公司的AT89C51芯片,此芯片根据了充分的静止CMOS控制器和三级节目记忆锁,共有:
32条I/O线,2定时计数器,6个中断来源,
4K闪存,128个字节在芯片RAM。
由于本设计所做的是一个会加减乘除的计算器,所以要用到单片机的最小使用系统模块1,还需要用到矩阵式键盘和静态显示模块。
而我的硬件设计详见第二章,主要介绍了需要哪几部分硬件电路和硬件系统的概叙。
在2.1节介绍了主要的框架;2.2节简单的介绍了单片机最小使用系统的性能和附属电路;2.3节详细介绍了键盘控制电路;2.4节介绍了静态显示电路。
在第三章中我们详细的解说了软件系统的设计。
3.1节介绍了我们做这个设计的程序设计思路;3.2节画出了总的程序设计框图;3.3节分别罗列出各个子程序的框图。
第四章是我对此设计的调试过程和结果显示。
第五章就是我对此设计的总体概括,体会和心得。
我所设计的这个计算器可适用于比较简单的加减乘除运算,比如小学生可以借助它进行较大数目的四则运算,并运用它来探索有关规律,有利于帮助学生形成初步的探索和解决问题的能力。
目 录
1单片机的发展及使用
1.1单片机的发展
单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃和颇具有生命力的机种。
单片微型计算机简称单片机,特别适用于工业控制领域,因此又称为微控器。
1971年微处理器研制成功不久,就出现了单片微型计算机即单片机,但最早的单片机是1位的,处理能力有限。
果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:
第一阶段(1976—1978):
单片机的探索阶段。
以Intel公司的MCS-48为代表。
MCS-48的推出是在工控领域的探索,参和这一探索的公司还有Motorola、Zilog等。
都取得了满意的效果。
这就是SCM的诞生年代,“单片机”一词即由此而来。
第二阶段(1978—1982):
单片机的完善阶段。
Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。
它在以下几个方面奠定了典型的通用总线型单片机体系结构。
(1).完善的外部总线。
MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。
(2).CPU外围功能单元的集中管理模式。
(3).体现工控特性的地址空间及位操作方式。
(4).指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。
第三阶段(1982—1990):
8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。
Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。
第四阶段(1990—):
微控制器的全面发展阶段。
随着单片机在各个领域全面、深入地发展和使用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。
1.2单片机的使用
单片机的使用很广,分别在以下领域中得到了广泛的使用。
工业自动化:
在自动化技术中,无论是过程控制技术、数据采集技术还是测控技术,都离不开单片机。
在工业自动化的领域中,机电一体化技术将发挥愈来愈重要的作用,在这种机械、微电子和计算机技术为一体的综合技术(例如机器人技术、数控技术)中,单片机将发挥非常重要的作用特别是近些年来,随着计算机技术的发展,工业自动化也发展到了一个新的高度,出现了无人工厂、机器人作业、网络化工厂等,不仅将人从繁重、重复和危险的工业现场解放出来,还大大提高了生产效率,降低了生产成本。
仪器仪表:
目前对仪器仪表的自动化和智能化要求越来越高。
在自动化测量仪器中,单片机使用十分普及。
单片机的使用有助于提高仪器仪表的精度和准确度,简化结构,减小体积,易于携带和使用,加速仪器仪表向数字化、智能化和多功能化方向发展。
消费类电子产品:
该使用主要反映在家电领域。
目前家电产品的一个重要发展趋势是不断提高其智能化程度。
例如,电子游戏、照相机、洗衣机、电冰箱、空调、电视机、微波炉、手机、IC卡、汽车电子设备等。
在这些设备中使用了单片机后,其功能和性能大大提高,并实现了智能化、最优化控制
信方面:
较高档的单片机都具有通信接口,因而为单片机在通信设备中的使用创造了很好的条件。
例如,在微波通信、短波通信、载波通信、光纤通信、程控交换等通信设备和仪器中都能找到单片机的使用。
武器装备:
在现代化的武器装备中,如飞机、军舰、坦克、导单、鱼雷制导、智能武器设备、航天飞机导航系统,都有单片机在其中发挥重要作用。
终端及外部设备控制:
计算机网络终端设备,如银行终端,以及计算机外部设备如打印机、硬盘驱动器、绘图机、传真机、复印机等,在这些设备中都使用了单片机。
近年来随着科技的飞速发展,同时带动自动控制系统日新月异更新,单片机的使用正在不断地走向深入。
2总体方案设计
2.1系统框图
计算器的总体设计框图如图2.1所示。
图2.1系统框图
2.2显示控制方案
在单片机使用系统中,显示分为静态示和动态显示,本次设计采用静态显示。
静态显示数码管中的各位相互独立,而且各位的显示字符一经确定相应的输出将维持不变,直到显示另一个字符为止。
正因为如此,静态显示的亮度都比较高。
各位分别由一个8位I/O接口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。
这种显示方式接口,较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,便于监测和控制,本设计所需显示位数不多,故采用静态显示模块,在实验箱上连接简单、方便。
2.3键盘控制方案
键盘分为独立式键盘和行列式键盘,独立式键盘接口电路配置灵活,硬件结构简单,工作可靠但每个按键必须占用一跟I/O接口线,I/O接口线浪费较大,在单片机使用系统中,有时只需要几个简单的按键向系统输入信息,可将按键直接在一根I/O接口线上,故只在按键数量不多时采用。
而行列式键盘每条行线和列线在交叉处不直接相通,而是通过一个按键加以连接,当按键较多时可采用行列式键盘以节省I/O接口。
本次设计计算器所用按键较多,为节省I/O接口,方便设计,故采用矩阵式键盘。
3硬件设计
3.189S51单片机的简介
AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片内4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。
AT89C51单片机可为你提供许多高性价的使用场合,可灵活的使用于各种控制领域。
主要性能参数:
·和MCS-51产品指令系统的全兼容
·4k字节可重擦写Flash闪速存储器
·1000次可擦写周期
·全静态操作:
0Hz-24MHz
·三级加密程序存储器
·128×8字节内部RAM
·32个可编程I/O口线
·2个16位定时/计数器
·6个中断源
·可编程串行UART通道
·低功耗空闲和掉电模式
3.1.1AT89C51功能特性描述:
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内震荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,窜行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但震荡器停止工作并禁止所有部件工作直到下一个硬件复位。
AT89C51
图3.1.1单片机AT89C51
3.1.2AT89C51引脚功能说明:
3.289S51单片机的引脚
89S51单片机内部总线是单总线结构,即数据总线和地址总线是公用的.89S51有40条引脚,和其他51系列单片机引脚是兼容的.这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分。
89S51单片机为双列直插式封装结构,如图3.2所示。
图3.289S51引脚分配图
89S51单机的电源线有以下两种:
(1)VCC:
+5V电源线。
电源线
(2)GND:
接地线。
89S51单片机的外接晶体引脚有以下两种:
(1)XTAL1:
片内振荡器反相放大器的输入端和内部时钟工作的输入端。
采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。
(2)XTAL2:
片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。
采用外部振荡器时,该引脚悬空。
外接晶体引脚。
控制线89S51单片机的控制线有以下几种:
(1)RST:
复位输入端,高电平有效。
(2)ALE/PROG:
地址锁存允许/编程线。
(3)PSEN:
外部程序存储器的读选通线。
(4)EA/Vpp:
片外ROM允许访问端/编程电源端。
3.389S51I/O接口组成及功能
8051共有4I/O端口,为P0,P1,P2,P3;4个I/O口都是双向的,且每个口都具有锁存器。
每个端口有8条线,共计32条I/O线。
P0.0~P0.7;P1.0~P1.7;P2.0~P2.7;P3.0~P3.7
(1)P0有三个功能
1)外部扩充存储器时,作数据总线(D0~D7)
2)外部扩充存储器时,作地址总线(A0~A7)
3)不扩充时,作一般I/O使用,内部无上拉电阻,作为输出/输入使用时应加上拉电阻.。
(2)P1只做I/O口使用,有内部上拉电阻。
(3) P2有两个功能
1)扩充外部存储器时,作地址总线(A8~A15)使用。
2)作一般I/O口使用,有内部上拉电阻。
3) P3有两个功能
除作为I/O口(有内部上拉电阻)外,还有一些特殊功能。
3.474LS164的功能
74LS164是一个串入并出的8位移位寄存器,他常用于单片机系统中,用来驱动数码管。
它内部有一个的8位移位寄存器,先一位一位地移入,等到8个移满了,再给出个信号将8位数据一起输出,就是所谓的串转并。
其管脚图如下所示
图3.374Ls164管脚图
其中A、B(第1、2脚)为串行数据输入端,2个引脚按逻辑和运算规律输入信号,共一个输入信号时可并接。
T(第8脚)为时钟输入端,可连接到串行口的TXD端。
每一个时钟信号的上升沿加到T端时,移位寄存器移一位,8个时钟脉冲过后,8位二进制数全部移入74LS164中。
R(第9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。
Q0…Q7(第3-6和10-13引脚)并行输出端分别接LED显示器的HG···A各段对应的引脚上。
在给出了8个脉冲后,最先进入74LS164的第一个数据到达了最高位,然后再来一个脉冲,第一个脉冲就会从最高位移出。
这就是它的工作原理。
其功能表如图3.4所示
图3.474LS164功能图
3.5键盘接口工作原理
在单片机使用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机通信。
3.6.1按键开关的去除抖动功能
目前,MCS—51单片机使用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3.6所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短和开关的机械特性有关,一般为5~10ms。
由于抖动,会造成被查询的开关状态无法准确读出。
例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。
为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。
图3.6按键过程
3.6.2阵列式键盘的接口电路
阵列式键盘每条行线和列线在交叉处不直接相通,而是通过一个按键加以连接,在按键数较多的时候,为减少I/O接口线数,通常采用这种方式,设计计算器主要用到按键,选用阵列式键盘方便易行。
1.键盘工作原理
行列式键盘电路原理如图3.7所示。
按键设置在行列式交点上,行列线分别连接到按键开关的两端。
当行线通过上拉电阻接+5伏时,被钳位在高电平状态。
键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。
键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。
图3.7阵列式键盘原理电路
2.键盘工作方式
键盘的工作方式:
编程扫描方式、定时扫描方式、中断扫描方式三种。
在键盘扫描子程序中完成下述几个功能。
(1)判断键盘上有无键按下
(2)去键的机械抖动影响。
(3)求按下键的键号。
(4)键闭合一次仅进行一次键功能操作
3.键盘扫描方式
扫描法:
在判定有键按下后逐列(或逐行)置低电平,同时读入行(或列)的状态,如果行(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。
特点是逐列(或逐行)扫描查询。
这时相应行(或列)应有上拉电阻接高电平。
反转法:
只要经过两个步骤就可获得键值。
3.6七段LED显示工作原理
LED显示器是由发光二极管显示字段的MCS-51单片机输出设备。
单片机使用系统常采用七段LED数码管作为显示器,这重显示器具有耗电低、配置灵活、线路简单、安装方便、耐转动、价格低廉且寿命长等优点。
因此使用比较广泛。
LED数码管显示器可以分为共阴极和共阳极两种结构。
(1)共阴极结构:
如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光,如图3.8A所示。
(2)共阳极结构:
如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低平有效,当某段输入低电平该段便发光,如图3.8b所示。
A.共阴极b.共阳极
图3.8七段LED显示器
(3)LED静态显示方式:
LED静态显示是指当数码管显示某一字符时,相应段的发光二极管处于恒定的导通或截止状态,直到需要显示另一个字符为止。
数码管工作在静态显示方式下,共阴极或共阳极连接在一起,若为共阴极则接地;为共阳极则接+5V电源。
每位的段选线和一个8位的并行接口相连。
只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。
数码管中的各位相互独立,而且各位的显示字符一经确定,相应的输出将维持不变,直到显示另一个字符为止。
也正因为如此,静态显示的亮度都比较高。
静态显示方式各位可独立显示。
由于各位分别由一个8未I/O接口控制段选码,故在同一时间里,每一位显示的字符可以各不相同。
这种显示方式接口,较小的电流即可获得较高的亮度,且占用CPU的时间少,编程简单,便于监测和控制,但其占用的接口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。
用MCS-51单片机构建七段数码管静态显示系统时,5位数码管均采用共阴极LED,利用74LS1S164串入并出的特性,构成静态显示电路,单片机的P3.6作数据串行输出,P3.7作移位脉冲输出,用导线连接P3.6、P3.7到串行静态显示模块的DIN、CLK端,这样就构成了计算器的显示部分。
3.7电路原理
电路的核心是89S51单片机,其内部带有4KB的FLAsHROM,无须扩展程序存储器;电脑没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必扩展片外RAM,系统配备5位LED显示和4*4键盘,采用P1口接阵列式键盘,5个串/并移位寄存器芯片74LS164首尾相连,每片的并行输出作为LED数码管的段码控制驱动信号,把P3.6、P3.7连接到串行静态显示模块的DIN、CLK端。
整个系统采用查表的方法,将数码管的段码定义和按键的键码定义分别以代码的形式送到LED数码管和键盘中。
这样就构成了计算器的电路连接部分。
如图3.9所示
图3.9电路原理图
4设计思路
关于这个设计,需要我们理解计算器的工作原理,熟练掌握编程指令的运用掌握算术运算指令及运算功能程序的编写方法。
计算器简而言之,就是要实现加、减、乘、除的功能,其中键盘和显示很重要。
4.1主程序模块
首先,初始化参数,调显示子程序,判断是否有键按下,判断键码,看是否是数字键、功能键还是清零键然后对每一种情况进行分别处理。
如图4.1所示
图4.1主程序流程图
4.2静态显示模块
如图4.2所示。
图4.2中断程序流程图
4.3按键程序模块
如图4.3所示
图4.3按键程序流程图
5系统调试
完成了硬件的设计、制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系统调试。
系统调试包括硬件调试和软件调试两个部分。
不过,作为一个单片机系统,其运行是软硬件相结合的,因此,软硬件的调试也是绝对不可能分开的。
5.1在伟福中的调试
首先打开伟福仿真软件的界面对仿真器的参数值进行设置。
其设置如图5.1所示
图5.1仿真器的选择
我所选的是8751的仿真器,在目标生成文件中选择生成BIN和HEX文件(即二进制和十六进制文件)其设置如图5.2所示,设置完成后点“好”就可以了。
图5.2
5.2在Keil中的调试并连接实验箱
1.打开项目
在伟福内调试通过以后,再在Keil中下载到实验箱上进行验证,显现出所要求的效果。
而在Keil中也要进行一些参数的设置,首先打开Keil仿真软件,首先要新建一个项目,点菜单Project→NewProject,在弹出的对话框中选择保存的路径并输入项目名称“BYSJ”后保存,然后在弹出新的项目窗口中选择参数,其参数的设置如下,由于我们使用的是Atmel公司的芯片,所以要选Atmel后确定。
如图5.3所示:
图4.4
在弹出的对话框中选择AT89C51这个芯片,确定。
如图4.5所示:
图4.5
然后开始设置它的参数值,如图4.6所示:
图4.6
在Xtal中输入频率为11.0592MHZ,然后再选Debug这个标签,选中第二个Use复选框后点击Setting在弹出的对话框中选择Baudrate这一项,设置它的参数为38400,后OK。
如图4.7所示:
图4.7
把以上的参数设置完成以后把程序添加进来编译,编译通过后接上实验箱进行验显。
在Keil中的编译结果如图4.8所示:
图4.8
我们接上实验箱后的效果如下图4.9所示:
图4.9
6结论
当今科技发展迅速,单片机嵌入式开发有着光明的前景。
由于单片机经济实用、开发简便等特点依然在工业控制、家电等领域占据了广泛的市场。
我选择这样的毕业设计课题,经过近2个月的设计,通过此次设计提高了自己软件编制和硬件电路设计的能力。
在我完成这次毕业设计的过程中,当看到自己将专业知识用于解决实际的问题时,那份成就感和喜悦感是难以形容的。
但是,在实际的编程以及调试程序过程中,我发现自己所应该学的太多太多。
光靠自己在书本上所学过的这点知识是远远不够的,真正地认识到了工作就是学习的道理。
毕业设计的目的是了解基本电路设计的流程,丰富自己的知识和理论,巩固所学的知识,提高自己的动手能力和实验能力,从而具备一定的设计能力。
我做得的毕业设计注重于对单片机实际使用的理解,明白其基本的工作原理,以便以后单片机领域的开发和工作打下基础,提高自己的设计能力,培养创新能力,丰富自己的知识理论,做到理论和实际结合。
本课题的重要意义还在于能在进一步层次了解单片机的工作原理,内部结构和工作状态。
理解单片机的接口技术,中断技术,存储方式,时钟方式和控制方式,这样才能更好的利用单片机来做有效的设计。
致 谢
。
这次的毕业设计之所以能很好的完成,除了自己的努力外,非常感谢张咏梅老师的帮助,她非常体谅我们,知道我工作学习忙,为我们在毕业设计方面花了很多心血,尽心尽力的帮助、指导我完成毕业设计,在日常教学工作非常繁忙的情况下,还为我们的毕业设计操心,在此表示万分的敬意!
其次,这几年来多谢学校对我们的关心和培养,也多谢各位老师对我们关心和帮助。
通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。
使我在单片机的基本原理、单片机使用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的使用型人才打下良好的基础。
我在指导老师张老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,这对我今后进一步学习单片机方面的知识有极大的帮助。
在此,我忠心感谢张咏梅指导和支持。
在未来的工作和学习中,我将以更好的成绩来回报老师。
在此,我还要感谢在一起愉快的度过大学生生活的机电系全体老师和同学,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。
最后,祝各位老师各位同学:
身体健康、工作顺利、万事如意、心想事成、天天开心!
参考文献
[1].孙建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 简易 加减乘除 计算器