简单计算器的设计.docx
《简单计算器的设计.docx》由会员分享,可在线阅读,更多相关《简单计算器的设计.docx(29页珍藏版)》请在冰豆网上搜索。
![简单计算器的设计.docx](https://file1.bdocx.com/fileroot1/2023-1/24/529f5f69-355d-43c9-ac6e-1ae4712695c3/529f5f69-355d-43c9-ac6e-1ae4712695c31.gif)
简单计算器的设计
常州信息职业技术学院
学生毕业设计(论文)报告
系别:
机电工程系
专业:
机电一体化
班号:
机电094
学生姓名:
华祥
学生学号:
0904053409
设计(论文)题目:
简单计算器的设计
指导教师:
宫亚梅
设计地点:
常州信息职业技术学院
起迄日期:
9.06~10.30
毕业设计(论文)任务书
专业机电一体化班级机电094姓名华祥
一、课题名称:
简单计算器的设计
二、主要技术指标:
1、采用4×4键盘,16个键依次对应0~9、“+”、“-”、“×”、“÷”、“=”和清零键
2、可以进行小于255的数的加减乘除运算,并可以连续运算
3、当键入值大于255时,将自动清零,可以重新输入
三、工作内容和要求:
1、系统硬件实现
2、系统软件实现,包括流程图、源程序
3、加载程序进行整体调试
四、主要参考文献:
[1]李广弟.单片机基础[M].北京:
北京航空航天大学出版,2005
[2]秦曾煌.电工学/电子技术[M].北京:
高等教育出版社,2004
[3]周润景.基于Proteus的电路及单片机设计与仿真[M].北京:
北京航空航天大学出版社,2010
学生(签名)年月日
指导教师(签名)宫亚梅2011年9月5日
教研室主任(签名)年月日
系主任(签名)年月日
毕业设计(论文)开题报告
设计(论文)题目
简单计算器的设计
一、选题的背景和意义:
计算器已经融入了现代社会,它给人们解决生活中的具体计算问题带来了方便。
而计算器的系统也有很多种,c语言计算器vb计算器java计算器等等,随着计算器的发展,讲能进行更复杂更智能的运算。
基于单片机的计算器有很多,单片机在我国进行高速的发展。
我们这次设计的C51单片机制作,该计算器采用c语言实现少于255之内的四则运算。
该计算器也比较实用和方便。
二、课题研究的主要内容:
1、采用4×4键盘,16个键依次对应0~9、“+”、“-”、“×”、“÷”、“=”和清零键
2、可以进行小于255的数的加减乘除运算,并可以连续运算
3、当键入值大于255时,将自动清零,可以重新输入
三、主要研究(设计)方法论述:
1.上网和图书馆查找相关资料,分析问题
2.完成本次设计的原理框架、结构组成、功能模块的设计。
3.对软件的程序进行编写。
绘制电路图,流程图。
4对本次的设计进行仿真、调试。
四、设计(论文)进度安排:
时间(迄止日期)
工作内容
9.12~9.15
进行材料的收集
9.16~9.18
理清思路,确定总方案,开始撰写开题报告
9.19~9.25
简单计算器系统设计方案比较和选取
9.25~10.9
进行原理框架、结构组成、功能模块的设计
10.10~10.15
对程序进行编写。
绘制电路图。
10.16~10.21
对设计进行仿真与调试.
10.22~10.26
整理并撰写论文初稿
10.27~10.30
审核.定稿
五、指导教师意见:
指导教师签名:
年月日
六、系部意见:
系主任签名:
年月日
简单计算器的设计
目录
摘 要6
前 言6
第一章单片机的发展及应用7
1.1单片机的发展7
1.2单片机的应用7
第二章方案论证与设计8
2.1总体设计9
2.2显示控制方案9
2.3键盘控制方案9
第三章硬件模块介绍9
3.1AT89C51单片机简介9
3.2AT89C51单片机引脚介绍11
3.3AT89C51I/o接口组成及功能11
3.474LS164的功能12
3.5输入模块13
3.6键盘介绍13
3.7七段LED显示工作原理14
3.8电路原理16
第四章软件设计17
4.1主程序模块17
4.2静态显示模块18
4.3按键程序模块19
第五章仿真与调试20
结论20
参考文献21
致谢21
附录:
程序编写21
摘 要
计算器在人们的日常中是比较的常见的电子产品之一,更高级的计算器还在发展之中,以后还会有功能更强大的计算器的出现。
本次设计是用单片机来设计的,该设计系统是以AT89C51为单片机,用74LS164为显示位控制,P1口作为输入端,外接4X4的键盘,通过键盘扫描来对输入数的控制,并外接驱动电路,系统采用LED数码管作为显示器,软件程序采用均采用C语言编写,便于移植与升级。
报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。
计算器将完成的功能有整数的加,减,乘,除等功能。
关键字计算器数码管AT89C51
Calculatorinpeople'severydayismorecommonintheelectronicsoneofthemoreadvancedcalculatorisstillevolving,therewillbemorepowerfulafterthecalculatortoappear.Thisdesignisusedtodesignthechip,thedesignforthesystemisbasedonAT89C51SCMsinglechip.withthe74LS164todisplaydigitalcontrol,P1portasaninput,anexternal4X4keyboard,thekeyboardscancontrolthenumberofinputs,andexternaldrivecircuit,thesystemusesLEDdigitaltubeasdisplay.SoftwareprogramusingClanguageareusedtofacilitatemigrationandupgrade.Thereportdetailsthestructureofthesystemhardwarecomponents,workingprincipleandsystemsoftwareprogramming.Calculatorwillcompletethefunctionintegeraddition,subtraction,multiplication,divisionandotherfunctions.
KeyWords:
calculatorcounterNixietubeAT89C51
前 言
随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。
电子产品的更新速度快就不足惊奇了,单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。
然而简单计算器已经成为不可或缺。
本设计采用80S51芯片,实现了利用单片机进行了一个简单计算器设计。
允许对输入数据进行加减乘除运算及LED显示。
设计的关键所在就是必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。
第一章单片机的发展及应用
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.1AT89C51单片机的简介
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中的内容,但震荡器停止工作并禁止所有部件工作直到下一个硬件复位。
单片机如图3-1所示
图3-1单片机AT89C51
3.1.2AT89C51引脚功能说明:
表3-1引脚说明
3.2AT89C51单片机的引脚介绍
89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的.89C51有40条引脚,与其他51系列单片机引脚是兼容的.这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分。
89S51单片机为双列直插式封装结构,如图3-2所示
图3-289C51引脚分配图
89C51单机的电源线有以下两种:
(1)VCC:
+5V电源线。
电源线
(2)GND:
接地线。
89S51单片机的外接晶体引脚有以下两种:
(1)XTAL1:
片内振荡器反相放大器的输入端和内部时钟工作的输入端。
采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。
(2)XTAL2:
片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。
采用外部振荡器时,该引脚悬空。
外接晶体引脚。
控制线89S51单片机的控制线有以下几种:
(1)RST:
复位输入端,高电平有效。
(2)ALE/PROG:
地址锁存允许/编程线。
(3)PSEN:
外部程序存储器的读选通线。
(4)EA/Vpp:
片外ROM允许访问端/编程电源端。
3.3AT89C51I/O接口组成及功能
8951共有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-3如下所示
图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输入模块
计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式。
为此,我们引入了矩阵键盘的应用,采用四条I/O线作为行线,四条I/O线作为列线组成键盘。
在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4×4个。
这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率,如图3-5所示:
图3-5键盘按键
3.5.1阵列式键盘的接口电路
阵列式键盘每条行线与列线在交叉处不直接相通,而是通过一个按键加以连接,在按键数较多的时候,为减少I/O接口线数,通常采用这种方式,设计计算器主要用到按键,选用阵列式键盘方便易行。
1.键盘工作原理
行列式键盘电路原理如图3-6所示。
按键设置在行列式交点上,行列线分别连接到按键开关的两端。
当行线通过上拉电阻接+5伏时,被钳位在高电平状态。
键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的。
键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断。
图3-6阵列式键盘原理电路
2.键盘工作方式
键盘的工作方式:
编程扫描方式、定时扫描方式、中断扫描方式三种。
在键盘扫描子程序中完成下述几个功能。
(1)判断键盘上有无键按下
(2)去键的机械抖动影响。
(3)求按下键的键号。
(4)键闭合一次仅进行一次键功能操作
3.键盘扫描方式
扫描法:
在判定有键按下后逐列(或逐行)置低电平,同时读入行(或列)的状态,如果行(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。
特点是逐列(或逐行)扫描查询。
这时相应行(或列)应有上拉电阻接高电平。
反转法:
只要经过两个步骤就可获得键值。
3.6七段LED显示工作原理
LED显示器是由发光二极管显示字段的MCS-51单片机输出设备。
单片机应用系统常采用七段LED数码管作为显示器,这重显示器具有耗电低、配置灵活、线路简单、安装方便、耐转动、价格低廉且寿命长等优点。
因此应用比较广泛。
LED数码管显示器可以分为共阴极和共阳极两种结构。
数码管如图3-7所示
图3-7数码管
(1)共阴极结构:
如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光,如图3-8a所示。
(2)共阳极结构:
如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低平有效,当某段输入低电平该段便发光,如图3-8b所示。
3-8a.共阴极3-8b.共阳极
(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.1主程序模块
首先,初始化参数,调显示子程序,判断是否有键按下,判断键码,看是否是数字键、功能键还是清零键然后对每一种情况进行分别处理。
如图4-1所示
图4-1主程序流程图
4.2静态显示模块
如图4-2所示。
图4-2显示模块流程图
4.3按键程序模块
如图4-3所示
图4-3按键程序流程图
第五章仿真及调试
在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。
设计的中心思想是把一个复杂应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程和调试,然后组合起来。
这种方法便于设计和调试,容易实现多个程序共存,但各个模块之间的连接有一定的难度。
根据需要我们可以采用自上而下的程序设计方法,此方法先从主程序开始设计,然后再编制各从属程序和子程序,层层细化逐步求精,最终完成一个复杂程序的设计。
这种方法比较符合人们的日常思维,缺点是一级的程序错误会对整个程序产生影响。
功能和操作:
加减乘除运算和显示。
①上电后,屏幕初始化。
②计算。
按下数字键,屏幕