
简易计算器设计课程设计.doc
30页课程设计(论文)题 目 名 称 简易计算器设计 课 程 名 称 单片机原理及应用 学 生 姓 名 学 号 系 、专 业 指 导 教 师 2013 年 6 月 24 日摘要本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果设计过程在硬件与软件方面进行同步设计硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘显示采用3位7段共阴极LED动态显示软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计编程语言方体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,采用汇编语言进行编程,并用proteus仿真。
关键词:计算器;AT89C51芯片;数码管;矩阵键盘 目录第 1 章 设计说明 ...........................................11.1 设计要求............................................11.2 性能指标 ...........................................11.3 设计方案的确定 .....................................1第 2 章 单片机主要原理 .....................................22.1 单片机概述 .........................................22.2 单片机最小系统 .....................................42.3 七段共阳极数码管 ...................................5第 3 章 硬件设计 ...........................................63.1 键盘电路的设计 .....................................63.2 显示电路的设计 .....................................7第 4 章 软件设计 ...........................................84.1 系统设计 ...........................................84.2 显示与按键设计 .....................................9第 5 章 调试与仿真 ........................................125.1 Keil C51 单片机软件开发系统........................125.2 proteus 的操作.....................................12第 6 章 心得体会 ..........................................17参考文献...................................................................................................18致谢...........................................................................................................19附录 程序清单.........................................................................................200第 1 章 设计说明1.1 设计要求要求能实现小于255的数的加减乘除运算,采用4×4键盘,根据输入键的按下实现不同的功能,最终结果通过LED显示。
1.2 性能指标 本课程设计的十进制加法计算器的计算范围为0~255,计算结果全为整数,计算结果溢出结果不显示1.加法:三位加法,计算结果超过255溢出不显示2.减法:三位减法,计算结果若小于零溢出不显示3.乘法:三位数乘法4.除法:整数除法5.有清零功能1.3 设计方案的确定 按照设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于AT89C51芯片的I/O口不够多,而且为了硬件电路设计的简单化,故选择串行动态显示和用P1口扩展4*4键盘,扩展的4*4键盘定义十个数字键,六个功能键,使用串行动态显示显示运算结果 主程序进行初始化,采用行列扫描进行查表得出键值,每次按键后调用显示子程序 1第 2 章 单片机主要原理在该课程设计中,主要用到一个AT89C51芯片和串接的共阴数码管作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明2.1 单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统单片机经过1、2、3,3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗MSC-51芯片简介:8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:(1)中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作2)数据存储器(RAM):8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表3)程序存储器(ROM) :8051单片机具有64KB程序存储器寻址空间,程序存储器内外统一编址,用来存放用户程序、表格、常数。
当引脚EA=1时,程序从内部的程序存储器开始执行,当内部程序存储器中的程序执行完毕后,在转向外部的程序存储器当引脚EA=0时,程序从外部程序存储器开始执行2(4)并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输当P0口作为通用的I/O接口使用时,漏极处于开路状态,所以需接上拉电阻5)全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用6)中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择7)MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,下图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用现在我们对这些引脚的功能加以说明:如图1.1图 1.1 单片机引脚1.电源引脚:VCC:电源正(一般接+5V电源)GND:电源接地端2.复位引脚:RST:复位引脚。
当该引脚保持两个机器周期以上的高电平时,单片机就可恢复初始状态33.端口引脚:P0.0-P0.7:P0口,8位双向线P1.0-P1.7:P0口,8位双向线P2.0-P2.7:P0口,8位双向线P3.0-P3.7:P0口,8位双向线4.时钟电路:XTAL1和XTAL2:外接晶振引脚晶振信号直接加在XTAL1和XTAL2两端5.控制引脚:ALE/、、EA/Vpp组成MCS控制总线EA/Vpp(31引脚):程序存储器的内外部选通线当EA =1时,选通内部程序存储器中的程序,当片内程序存储器存放的指令读完后再读外部存储器指令;当EA=0时,不管片内有无程序存储器,一律读取外部程序存储器程序ALE/(30引脚):地址锁存信号访问外部程序存储控制信号2.2 单片机最小系统单片机最小系统就是支持主芯片正常工作的最小部分,是单片机工作的最基本的配置,包括主控芯片、复位电路和晶振电路如图2.1图2.1 单片机最小系统42.3 七段共阳极数码管图2.2 七段共阳数码管图为七段共阳数码管的引脚图,从左到右数码管的段码分别为a,b,c,d,e,f,g和小数点dp,低电平时点亮,最右边为位选端第 3 章 硬件设计简易数字计算器系统硬件设计主要包括:键盘电路,显示电路以及其他辅助电路。
下面分别进行设计 3.1 键盘电路的设计 键盘可分为两类:编码键盘和非编码键盘编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预通用计算机使用的标准键盘就是编码键盘当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计但大多数智能仪器和电子产品的按键数目都不太多(20个以内) ,为了降低成本和简化电路通常采用非编码键盘非编码键盘的接口电路有设计者根据需要自行决定,按键信息通过接口软件来获取本课题需要的是16个按键,故选择用非编码键盘5计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键这样键盘上按键的个数就为4×4个这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率矩阵键盘的工作原理:计算器的键盘布局如图五所示:一般有16个键组成,在单片机中正好可以用一个P1口实现16个按键功能,这种形式在单片机系统中也最常用。
具体电路连接如图3.1所示:图3.1 4*4键盘接口电路3.2 显示电路的设计 当系统需要显示少量数据时,采用LED数码管进行显示是一种经济实用的方法数码管显示有静态显示和动态显示两种方法为了减少端口的使用,故选择动态显示 电路如下图3.2所示:6图3.2 三位数码管显示电路第 4 章 软件设计在十进制加法计算器的软件规划要求下,简易计算器的程序主要包括以下功能模块:(1)主模块,为系统的初始化2)显示与读键模块,分为判键程序段、运算操作子程序、显示子程序等部分;4.1 系统设计(1)系统模块图单片机输入模块运算模块7图4.1 系统模块图此系统包括输入、运算和显示模块,由单片机控制其中通过输入键盘模块将数字0~9和运算符号“+”、“-”、“*”、“/”输入单片机进行运算;运算模块分别根据输入的运算符进行加减乘除运算;显示模块将运算后的数值通过动态扫描使之在数码管上输出2)系统总流程图主程序主要是用来进行初始化的,调用其他子程序,清空各个标。












