基于单片机控制的简单计算器设计与仿真.docx
- 文档编号:8171623
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:31
- 大小:876.78KB
基于单片机控制的简单计算器设计与仿真.docx
《基于单片机控制的简单计算器设计与仿真.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的简单计算器设计与仿真.docx(31页珍藏版)》请在冰豆网上搜索。
基于单片机控制的简单计算器设计与仿真
毕业论文
基于单片机控制的简单计算器设计与仿真
Design and Simulation of a Simple Calculator Based on
Single Chip Microcomputer Control
摘要
随着社会的不断发展,科技的不断创新。
计算器已在数十年间遍布千家万户,对于计算器的百年历史,1946年2月15日,在美国宾夕法尼亚大学,世界上第一台电子计算器ENIAC正式投入了运行。
在隆重的揭幕仪式上,ENIAC表演了它的“绝招”:
在1秒钟内进行5000次加法运算;在1秒钟内进行500次乘法运算。
这比当时最快的电器计算器的运算速度要抉1000多倍。
全场起立欢呼,欢呼科学技术进入了一个新的历史发展时期。
数学家把聪明给了电子计算器,电子计算器将使数学家变得更加明。
而且电子计算器不仅是一种工具,它与其它的工具都不相同:
电子计算器是人脑的一个侧面的延伸。
因为电子计算器不仅具有非凡的计算能力,速度之快令人望尘莫及,而且还能够仿真人的某些思维功能,按照一定的规则进行逻辑判和逻辑推理,代替人的部分脑力劳动。
1976年,数学家凭借电子计算器去证明四色定理,“依靠机器完成了人没有能够完成的事情”,轰动了整个国际数学界。
计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器,使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。
国内外研究现状、发展动态
(1)研究现状与发展动态单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机,以及程控玩具等等,这些都离不开单片机。
单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。
在这几方面,较为典型地说明了数字单片机的水平。
在目前,用户对单片机的需要越来越多,但是,要求也越来越高。
在单片机应用中,可靠性是首要因素为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。
近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术:
EFT(EllectricalFastTransient)技术,低噪声布线技术及驱动技术,采用低频时钟。
同时单片机在目前的发展形势下还表现出可靠性及应用越来越水平高和互联网连接,所集成的部件越来越多,功耗越来越低和模拟电路结合越来越多等发展趋势。
本设计采用80S52芯片,实现了利用单片机进行了一个简单计算器设计。
允许对输入数据进行加减乘除运算及LED显示。
如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。
另外,实例所设计的计算器是用LED数码管显示的,当然也可以用其他的器件显示,如LED显示屏,这样就可以显示出更多的字符,在此基础上,还可以编写更加完善的程序来实现更多的计算功能。
设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。
Abstract
内容应与“中文摘要”对应。
使用第三人称,最好采用现在时态编写。
书写格式说明:
标题“Abstract”可设置成字体:
TimesNewRoman,居中。
字号:
小二,1.5倍行距。
段后11磅,段前为0。
Abstract正文选用设置成每段落首行缩进2字,字体:
TimesNewRoman,字号:
小四,行距:
多倍行距1.3,间距:
前段、后段均为0行。
Keywords与Abstract之间空一行。
Keywords与中文“关键词”一致。
词间用分号间隔,末尾不加标点,3-5个,TimesNewRoman,小四,加粗。
示例:
DecisionSupportandDataWarehouseSystemsisintendedasatextbookforaone-semestercourseindecisionsupportsystems,withdatawarehousingplayingthesamestarringroleinthecourseasitdoesintoday’sdecisionsupportpicture.Withtheadditionofenrichmentmaterialindatawarehousing,muchofwhichcanbefoundontheWeb,italsofitsaquartersystems:
theDSSportionofthebookfitsonequarter,andthedatawarehousingportioncanexpandedtofillanother.
DecisionSupportandDataWarehouseSystemsisintendedasatextbookforaone-semestercourseindecisionsupportsystems,withdatawarehousingplayingthesamestarringroleinthecourseasitdoesintoday’sdecisionsupportpicture.Withtheadditionofenrichmentmaterialindatawarehousing,muchofwhichcanbefoundontheWeb,italsofitsaquartersystems:
theDSSportionofthebookfitsonequarter,andthedatawarehousingportioncanexpandedtofillanother.
KeyWords:
Content;Request;Format
第1章绪论
单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。
其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机作为计算机发展的一个重要分支领域,根据发展情况,从不同角度,单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。
通用型与专用型
这是按单片机适用范围来区分的。
例如,80C51是通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路
线型
这是按单片机是否提供并行总线来区分的。
总线型单片机普遍设置有并行地址总线、数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。
汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!
单片机的数量远远超过PC机和其他计算机的总和。
本设计采用80S52芯片,实现了利用单片机进行了一个简单计算器设计。
允许对输入数据进行加减乘除运算及LED显示。
第2章设计方案
2.1设计方案
本系统选用AT89C51单片机为主控机。
通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下:
(1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LCD显示数据和结果。
(2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16个按键即可,设计中采用集成的计算键盘。
(3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。
(4)错误提示:
当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:
当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示overflow;当除数为0时,计算器会在LCD上提示error。
为了满足计算器的基本要求,可以基本的运算(加减乘除),数据归零和出错警告提示,我们采用基于单片机设计计算器,并用LED数码管显示数据,4*4的矩阵键盘实现数据输入。
设计仿真和调试要用到Protues、Keil等软件。
2.2模块设计
一、系统模块图
2-1系统模块图
二、算数运算流程图
2-2算数运算流程图
三、系统总流程图
2-3系统总流程图
第3章AT89C52单片机的简单介绍
3.1AT89C52单片机的简单介绍
AT89C52是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。
3-1AT89C52实物图
3-2AT89C52实物引脚图
主要性能参数:
与MCS-51产品指令和引脚完全兼容
8k字节可重擦写Flash闪速存储器
1000次擦写周期
全静态操作:
0Hz-24MHz
三级加密程序存储器
256×8字节内部RAM
32个可编程I/O口线
3个16位定时/计数器
8个中断源
可编程串行UART通道
低功耗空闲和掉电模式
功能特性概述:
AT89C52提供以下标准功能:
8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
AT89C51单片机引脚介绍:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,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.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,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.2MM94C22芯片介绍
MM94C22是一个16位的译码器,4×4 的键盘,在单片机系统中,是很常见的。
一般都是占用一个单片机的 8 位接口。
对于这种输入设备,通常是由单片机来识别某行某列的按键是否按下,还需要延时消抖等等。
为了节省单片机的 IO 接口,也可以使用外接芯片来驱动 4×4 的键盘。
MM74C922,就是一块较好的 4×4 的键盘编码芯片。
它能够自己独立地进行键盘检测、消抖,以 8421 码给出键值。
它还能给出按键是否按下的标志,其数据线还具有三态输出的功能,便于进行总线连接
3-3MM94C22硬件图
MM74C922引脚说明:
(1)Y1~Y4(脚1~脚4):
4*4键盘第一列至第四。
(2)X1~X4(脚11、10、8、7):
4*4键盘第一行至第四行。
(3)DOA~DOD(DataoutA~D,脚14~17):
按键之BCD码输出,其中DOA为LSB,DOD为MSB。
(4)VCC(脚18):
电源脚,+3V~+15V。
ab126计算公式大全
(5)GND(脚9):
接地管脚。
新艺图库
(6)OSC(Oscillator,脚5):
键盘扫描电路之频率所需外加电容的连引脚。
(7)KBM(KeyboardMask,脚6):
内部消除开关弹跳电路所外加电容的引脚。
(8)OE(OutputEnable,脚13):
芯片使能脚,接低电位可使芯片使能。
(9)DA(DataAvailable,脚12):
数据有效输出脚。
任一按键按下时,此脚位会输出高电位,按键释放后此脚又会恢复为低电位。
MM74C922对各按键的响应如下表所示:
3.3LED介绍
发光二极管LED是单片机应用系统中的一宗简单而常用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等。
因而作为典型的外围器件,LED显示单元是反映系统输出和操作输入的有效器件。
LED具备数字接口可以方便的和大年纪系统连接;它的优点是价格低,寿命长,对电压电流的要求低及容易实现多路等,因而在单片机应用系统中获得了广泛的应用,所以在此设计中我首先选用了LED为基础的LCD作为显示器件。
3-4LCD引脚图
下面是LCD的引脚功能介绍:
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
3.4键盘模块介绍
每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。
矩阵的行线和列线分别通过两并行接口和CPU通信。
键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。
键盘处理程序的任务是:
确定有无键按下,判断哪一个键按下,键的功能是什么?
还要消除按键在闭合或断开时的抖动。
两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。
计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。
矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4×4个。
这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。
矩阵键盘的工作原理:
计算器的键盘布局如图1所示:
一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用
键盘电路:
3-5键盘电路
第4章总体电路图介绍
4.1总体电路图
根据设计方案要求以选择的器件设计出下面的电路图:
4-1单片机控制的简单计算器
4.2各模块的简单介绍
一、手动上电复位电路
4-2手动复位电路
当VCC上电时,C充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。
工作期间,按下S,C放电。
S松手,C又充电,在10K电阻上出现电压,使得单片机复位。
几个毫秒后,单片机进入工作状态。
二、内部时钟模式电路:
当单片机工作于内部时钟模式的时候,只需在XTAL1和XTAL2引脚连接一个晶体振荡器或者陶瓷振荡器,并接两个电容后接地即可,在使用时对于电容的选择有一定的要求:
当外接晶体振荡器的时候,电容值一般选择C1=C2=30+10pF或30-10pF;
当外接陶瓷振荡器的时候,电容值一般选择C1=C2=40+10pF或40-10pF;
三、键盘接口电路
在本设计中,计算器输入键盘的4条行线、列线分别连接到MM74C922的X1-X4、Y1-Y4引脚,MM74C922的数据输出口与单片机的P2口相连,MM74C922的DA引脚经过一个非门连接到单片机的/INT0脚,当MM74C922检测到键盘输入时,DA产生高电平,与之相连的/INT0检测到低电平,给单片机一个中断,单片机从P2口的低四位读入键盘上按下的键的值。
四、运算模块(单片机控制):
MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。
如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!
因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。
第5章软件介绍
5.1C51语言介绍
本次实习运用C语言编程来对单片机进行静态显示的控制、信号的传输转换控制。
C语言编程具有以下特点:
1)C语言简洁、紧凑,使用方便、灵活。
C语言程序比其他许多高级语言简练,源程序短,因此输入程序时工作量少.
2)运算符丰富。
共有34种。
C把括号、赋值、逗号等都作为运算符处理。
从而使C的运算类型极为丰富,可以实现其他高级语言难以实现的运算。
3)数据结构类型丰富,C语言提供的数据类型有:
整形、浮点型、字符型、数组类型、指针类型、结构体类型、共用体等。
4)具有结构化的控制语句。
5)语法限制不太严格,程序设计自由度大。
6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
因此有人把它称为中级语言。
7)生成目标代码质量高,程序执行效率高。
8)与汇编语言相比,用C语言写的程序可移植性好。
5.2Keil开发环境
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
一、KeilC51的概述
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Wi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 简单 计算器 设计 仿真
![提示](https://static.bdocx.com/images/bang_tan.gif)